很多Linux指令都预设使用作为资料编辑的界面,如果不学习vi,很多指令就无法操作。vim是vi的进阶版本,是一个程式开发工具。vim可以使用颜色或者底线等方式来表示一些特殊信息。
操作系统ubuntu
##vim的下载与安装
sudo apt-get install vim
linux会自动检测并下载安装
下载安装完成后,可以尝试使用命令查看。参考下面的vim的使用,命令行输入vim,进入vim后,在命令模式下输入
:version (查看基本信息)
:q(退出命令模式)
##vi /vim的使用
基本上vi/vim共分为三种模式(更多模式请参考help):一般指令模式(command mode),编辑模式(insert mode),指令列命令模式(command-line mode)。
###一般指令模式
以vi/vim打开一个档案直接进入一般指令模式。这是预设的模式。此时敲击键盘被vim识别为命令,而不是输入字符。
常用的几个命令:
- i 切换到编辑模式,输入字符
- x/X删除当前光标所在处后/前一个字符
- nx 连续向后删除n个字符
- dd 删除光标处所在行(实际为剪切)
- ndd删除以当前行开始到n行
- :切换到指令列命令模式
- G转到文件结尾(文件长时常用)
- gg移动到文件第一行,相当于1G
- N[enter] 光标向下移动N行
在一般指令模式下,常常使用到的命令还有,例如撤销操作,复制操作,粘贴操作
- u(undo)命令取消最近一次的操作,可以使用多次恢复原有的操作(常用)
- U取消所有操作
- yy 命令复制当前整行的内容到vi的缓冲区
- yw 复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
- p(小写)粘贴至游标的下一行
- P(大写)粘贴至游标的上一行
- ^ 将光标移动至当前行的行首
- $将光标移动至当前行的行尾部,$前还可以加数字,1$表示当前行行尾, 2$表示当前行的下一行行尾。
- G 光标跳转文件最后一行
- gg 跳转文件第一行
注意:使用系统粘贴板的内容,可以直接在编辑模式Shift + Insert进行粘贴。
编辑模式
在一般命令模式中不能编辑文件内容,按下i进入编辑模式。此时左下角会有**–Insert(插入)–**提示。按下ESC回到一般指令模式
###指令列命令模式
在一般命令模式中,输入:,进入指令列命令模式,并将光标移动到最底下一列。指令列命令模式中,读取,存档,大量取代字元,离开vi等功能
- :q (quit) 退出程序
- :w(write)保存文件
- :q!或者:wq!表示强制执行操作
在指令列模式下,常用的操作还有替换和查找,多行复制,多行删除
-
:s/old/new 用new替换光标所在行中首次出现的old
-
: n1, n2 s/old/new 在n1行和n2行之间,用new字符替换首次出现的old。当然全文件操作,加上参数g(如下),即: n1, n2 s/old/new/g
-
:s/old/new/g用new替换行中所有出现的old
-
:%s/old/new/g用new替换整篇中出现的old(常用)
-
如果替换的范围比较大,可以载所有的命令末尾加上c命令,强制每个替换需要用户进行确认。例如:s/old/new/gc。
-
g是global的意思。$表示末尾的意思,s/ $$ /new/g,用new替换每一行的末尾,就是添加new的意思。
-
/要查找的字符串,例如:/work,表示向下寻找名为work的字符
-
?work向上查找一个名为work的字符
-
:line1,line2 s copy line3从line1行到line2行进行复制,并复制到line3之后
-
:line1,line2 s move line3从line1行到line2行进行复制,并移动到line3之后
-
:3, 25d,删除从第3行到第25行的内容。在这之前,先使用’:set nu’ ,显示行号。
-
:3,25>(<),3行到25行批量缩进(回)一个tab
可视化模式
可视化模式下,很方便选取文本。
一般有三种可视化模式:
- v 字符可视化。选择文本时候,以字符为单位进行选择。
- V 行可视化。选择文本的时候,以行为单位进行选择。
- ctrl+v 块可视化(列编辑模式)。选择文本的时候,以起始光标到终点光标构成的矩形框为 单位选择。
在选中文本之后可以进行下面的操作:
- x或者d剪切。
- y复制
- r+字符。所有字符替换为新字符
- u U ~。所有字母变小写,变大写,反转大小写。
- > <,选中的字符右移或者左移shiftwidth位置
- d删除选中的字符。D删除选中字符所在行的所有字符。
在可视化模式下,常用的命令有批量注释与反注释
- 批量注释:
control+v进入列编辑模式,向上或者向下移动光标,就可以把需要注释的行的开头标记起来。
之后按下I(大写的i),插入注释符号 #,
再连续按两次Esc键。就会全部注释选中的区域。 - 取消批量注释:
control+v进入列编辑模式,选中取消注释的地方,按d,就会删除注释符号。
按下ESC回到一般命令模式。
##vim的常用配置
vim初始化配置文件为vimrc,通常有两个版本,系统版本和用户版本。系统版本下,vimrc文件,一般位于/etc/vim目录下,是整个系统vim的默认配置。
进入vim,查看文件位置
:echo $VIM
一般不修改整体vim设置(即系统版本),可以通过修改~/.vimrc文件,如果不存在,手动创建,然后将希望的设置写入。根据文件位置,进入该目录后,使用如下命令进入编辑设置,然后保存该文件。
vim ~/.vimrc
set hlsearch(注意:set前面也可以加冒号,结果一样)
set backspace=2
set ruler
set showmode
set nu
syntax on
常用的环境设置参数有:
:set nu 设置行号
:set shiftwidth=4(默认是8)
:set nonu 取消行号
:set hlsearch 设置高亮度查找
:set nohlsearch 取消高亮度查找
:set backup 自动备份文件
:set ruler 开启右下角状态栏说明
:set showmode 显示左下角的INSERT之类的状态栏
:set backspace={0,1,2} 设置退格键功能。为2时可以删任意字符。为0或1时仅可以删除刚才输入的字符。
:set all 显示目前所有的环境参数值
:syntax on/off 是否开启依据相关程序语法显示不同的颜色
:set bg=dark/light 是否显示不同的颜色色调
##参考
主要命令参数设置,比如左侧显示行数,可以参考以下链接:
https://www.cnblogs.com/qiyuexin/p/6398606.html
http://linux.vbird.org/linux_basic/0310vi.php
http://www.runoob.com/linux/linux-vim.html