一、vim编辑器的相关知识
vim 编辑器是vi的提高升级版本,是一个模式化的编辑器,适用范围非常广泛,可以使用vim 实现各种脚本的编写等。
vim 的三种模式:编辑模式(命令模式)、输入模式(插入模式)、末行模式。
vim三种模式之间的转换:
1.从编辑模式转换到输入模式:可以使用i ,o ,a,c,I ,O,A,C
i :insert 插入,在当前光标所在处插入(插入字符在光标之前)
a :append 追加 ,在光标所在处的后面插入
o : 在当前光标所在行的下方打开一个新的行
O : 在当前光标所在行的上方打开一个新的行
I : 在当前光标所在行的行首转换为插入模式
A : 在当前光标所在行的行尾转换为插入模式
vim 编辑器也可以实现一些特殊的操作如下:
vim [option ] FILE
+n 打开vim编辑器后,光标会出现在第n行
+/pattern 打开vim编辑器后,光标出现在与pattern(模式)匹配的行
例如: vim +/wait /etc/inittab
2.从输入模式转换到编辑模式:按下键盘上的ESC键;从编辑模式转换到末行模式:输入 :即可 ,从末行模式转换到编辑模式,按下键盘上的ESC键两次。
在末行模式下可以做一些特殊的操作:
:set nu 为显示的内容编号,
:!ls directory 查看指定目录下的内容
:!mkdir directory 创建目录
3.保存并退出编辑器使用命令 :wq 或者 :wqall
不保存并退出编辑器使用命令 : q 或 q!(强制退出)、qall !
4.如何在vim中实现光标的移动:(是在vim的编辑模式下才能使用,不是输入模式)
h 光变向左移动 ; l 向右移动 ;k 向上移动 ;j 向下移动
w 跳到下一个单词的词首, #w 跳到第#个单词的词首
e 从单词首跳到单词尾 ;
b 从单词尾跳到单词首 ;
( 从光标处向前跳一行 ;
) 从光标处向后跳一行;
{ 从光标处向前跳一个段落 ;
} 从光标处向后跳一个段落;
^或者0 跳到一行的行首 。^ 是跳到行首的第一个非空白字符,0 是跳到绝对行首
$ 跳到一行的绝对行尾
G 跳到文件的最后一行 ,#G 跳到第n行
在末行模式下输入 # 就可以将光标跳到第#行
5.如何在vim 中实现翻屏
ctrl + f :向文件尾部翻一屏 ctrl + b :向文件首部翻一屏
ctrl + d :向文件尾部翻半屏 ctrl+ u :向文件首部翻半屏
6.如何在vim 中实现修改、删除、替换、复制、粘贴等操作
<1> 修改字符:c (change)是指在转换到插入模式之前可以先删除一些内容
cw : 删除光标所在的字母,如果光标在一个字母的中间,只删除光标后面的。
C =c$ :删除至行尾
c0 :删除至行首
cc :删除光标所在的行
#cc :可以一次删除# 行
<2> 删除字符 : d (delet) ,和c 类似但是删除后不转入插入模式
连续按两次d 键可以删除光标所在的行
d$ : 删除光标所在位置到行尾
#dd : 删除光标所在位置及后(# -1) 行
x : 删除光标所在处的字符
#x : 删除包括光标本身所在字符的#个字符
X : 删除光标前方的单个字符
#X : 删除光标前方的# 个字符
<3> 替换字符:r (replace) 替换当前光标所在处字符
#r[ a-z /A-Z] :替换包括光标本身所在字符的#个字符
<4> 复制 :y (yank)
y$ : 复制当前光标到行尾的内容
yy : 复制当前光标所在行的内容
#yy : 复制# 行,包括光标所在的行
粘贴 :按下p键进行粘贴
p : 如果复制的是一整行,粘贴时粘贴在当前光标所在行的下一行
如果复制的是字符,粘贴时粘贴到当前光标的后面
大写P :如果复制的是一整行,粘贴时粘贴在当前光标所在行的上一行
如果复制的是字符,粘贴时粘贴到当前光标的前面
<5> 撤销所做的操作:u (undo)
u : 撤销最近一次的编辑操作
#u :撤销最近#次的操作
ctrl + r :撤销刚才的撤销操作
<6> 在末行模式下可以实现字符的查找
:/keyword 或者 :?keyword
:addr1,addr2s/form/to/flags :
其中addr1是开始行,addr2是结束行,from 是查找什么,to 是替换成什么。flags: 可以使用g 表示全局查找,i表示忽略大小写的查找。