5.1 vim介绍
vim是vi的升级版本
vim是带颜色显示的
安装可以用命令
yum install -y vim
vim编辑文本分为三种模式:一般模式,编辑模式,命令模式。
5.2 vim颜色显示和移动光标
/etc/目录下的文件一般是配置文件,所以一个相同的文档在/etc/会有颜色,而cp到了另一个目录就可能不带颜色了。vim显示文件内容的颜色和被打开的文件目录和后缀等有关。
vim有自己的配置的文件/etc/vimrc,也可以在自己家目录下重新配置一个.vimrc文件。
下面介绍一下vim在一般模式下的光标移动。
最简单的是使用方向键或者hjkl来移动光标,其中h是向左、j向下 、k向上,l向右。
空格也可以向右移动,退格键向左移动。
在一般模式下还可以用数字+移动键的方式来控制。
比如5k是向上移动五行,7space向右移动七个字符,以此类推。
5.3 vim一般模式下移动光标
Ctrl-b(backward)和Ctrl-f(forward)是可以按屏翻页。
Ctrl-u 和Ctrl-d 是可以按半屏翻页。
^或者0移动到行首,$移动到行末。
gg移动到首行,G移动到行末。
ngg和nG可以移动到第n行。
5.4 一般模式下复制剪切粘贴
之前在vim操作中使用过dd来删除光标所在的一行。
其实这个操作本质上是剪切。
dd剪切当前光标所在行,P将剪切板的内容复制到光标所在的上一行,p复制到下一行。
u键可以恢复一次操作,最多可以恢复50次(配置文件中可以更改),如果恢复到最旧的一次改变,会在左下方提示“Already at oldest change”。同样与之相反的是Ctrl-r,类似于word编辑时候的左右返回。
yy可以复制光标所在的一行,同样粘贴还是用P或者p。
剪切单个字符是x/X,x是剪切当前光标所在的字符(底部光标),X是剪切光标之前的字符。
如果剪切/复制一部分字符,数数字又麻烦,不妨先进去可视模式。
按v进入可视模式,此时移动光标就相当于word中的选中,然后就可以x剪切/y复制当前选中内容。
同样此类操作可以用数字+操作键来操作多行,请参考5.3最后。
5.5进入编辑模式
进入编辑模式即可编辑文本。
按i(insert)可以在光标所在位置进入编辑模式。
按I(Insert)可以在光标所在行首进入编辑模式。
o进入光标所在行的下一行(插入一个空行并开始编辑),O是上一行。
按a(after)可以在光标的后一个字符位置进入编辑模式,A可以在光标所在行的行末进入编辑模式。
进入编辑模式之后就可以“随心”编辑文档了。
#最后按Esc退出编辑模式,进入一般模式。
5.6vim命令模式
:进入命令模式###
/进入搜索模式
/word搜索下一个字符串word所在的位置,使用n键继续查找,N键反向查找。
?进入搜索模式
?word搜索上一个字符串word所在的位置,使用n键继续查找,N键反向查找。
s可以替换文本
n1,n2s/word1/word2/g 表示从n1行到n2行中所有的word1字符串替换为word2。/g不写默认只替换每行的第一个word1字符串。n1,n2除了数字以外,还可以用$表示末行(1,$s/word1/word2/g)。命令中的/为分隔符,但是对于我们要替换的字符串中也有分隔符的情况,就得使用脱意字符\。(s/\/etc/\/tmp/g)此条命令表示替换/etc为/tmp。另一种办法就是使用别的分隔符(分隔符有三种/,#,@)。上一条命令也可以写成s#/etc#/tmp#g 。
q是退出文档。
w是写入文档。
q!是强制退出,不做保存。
wq!强制保存并退出。
set nu显示行号。
set nonu不显示。
nohl不高亮上一次查询的字符串。
以上都是常用的命令。
x也可以保存退出,和wq一致。
区别在于,如果文档没有被编辑过,w会修改文件的mtime(原因是vim会先生成一个文档附件,我们编辑的是附件,然后保存会把附件的内容写入文档),x不会修改。
进入命令模式后还可以使用方向键上下选择之前输入的命令。
5.7vim实践
第(3)题也可以是49gg
第(15)题也可以是 37gg v 42gg x
(23)题有很多中做法,例如gg回到首行,O插入上一行,然后j光标移动到第二行,dd删除。
vim的补充文档:
vim的特殊用法 http://www.apelearn.com/bbs/thread-9334-1-1.html
vim常用快捷键总结 http://www.apelearn.com/bbs/thread-407-1-1.html
vim快速删除一段字符 http://www.apelearn.com/bbs/thread-842-1-1.html
vim乱码 http://www.apelearn.com/bbs/thread-6753-1-1.html
小键盘问题 http://www.apelearn.com/bbs/thread-7215-1-1.html
vim加密 http://www.apelearn.com/bbs/thread-7750-1-1.html