VI与VIM的常用命令
注:由于VI与VIM在命令上几乎相同,所以这里那VIM为例。
1、模式转换
正常–>输入:以下这几个参数实现的功能都是转为输入模式,只不过转换后的光标所在的位置不同(感兴趣可以试一试,虽然意义不大!)
-
i:在当前光标所在字符的前面,转为输入模式;
-
a:在当前光标所在字符的后面,转为输入模式;
-
o:在当前光标所在行的下方,新建一行,并转为输入模式;
-
I:在当前光标所在行的行首,转为输入模式;
-
A:在当前光标所在行的行尾,转为输入模式;
-
O:在当前光标所在行的上方,新建一行,并转为输入模式;
输入–>正常:
-
ESC
正常–>末行:
-
:(英文冒号)
末行–>正常:
-
ESC,ESC
== 注意:输入模式和末行模式之间不能直接切换。==
2、关闭文件(末行模式)
-
:q 退出;
-
:q! 不保存退出;
-
:w 保存;
-
:w! 强行保存;
-
:wq 保存退出
-
:wq! 强制保存并退出
注意:在正常模式下按组合键shift zz可以保存并退出
3、移动光标(正常模式)
1)逐字符移动:
-
h: 左;
-
l: 右;
-
j: 下;
-
k: 上;
-
#h: 移动#个字符
2)以单词为单位移动
-
w: 移至下一个单词的词首;
-
e: 跳至当前或下一个单词的词尾;
-
b: 跳至当前或前一个单词的词首;
-
#w: 移动#个单词
3)行内跳转:
-
0: 绝对行首;
-
^: 行首的第一个非空白字符;
-
$: 绝对行尾
4)行间跳转
-
#G:跳转至第#行
-
gg: 第一行;
-
G:最后一行
5)末行模式
-
.: 表示当前行;
-
$: 最后一行;
-
#:第#行;
-
+#: 向下的#行
4、翻屏(正常模式)
-
Ctrl+f: 向下翻一屏;
-
Ctrl+b: 向上翻一屏;
-
Ctrl+d: 向下翻半屏;
-
Ctrl+u: 向上翻半屏
5、复制字符
1)正常模式
复制:
-
yy:复制当前行
-
nyy:复制当前行至下面的n行
粘贴:
-
p:粘贴到光标的后面
-
P:粘贴到光标的前面
2)可视模式
复制:
-
y:复制当前行
-
ny:复制当前行至下面的n行
粘贴:
-
p:粘贴到光标的后面
-
P:粘贴到光标的前面
6、删除字符(正常模式)
-
x: 删除光标所在处的单个字符;
-
#x: 删除光标所在处及向后的共#个字符;
-
d$或D:从当前光标处删除至行尾;
-
d^:从当前光标处删除之行首;
-
dd: 删除当前光标所在行;
-
#dd: 删除包括当前光标所在行在内的#行;
注:dd相当于剪切操作,如果你dd之后按p或者P可以进行粘贴。
7、替换字符
-
r:替换单个字符(按完r在按你要替换的字符即可)
-
R:替换多个字符(从你要替换的位置开始替换,直至你退出正常模式)
8、撤销编辑操作:u
-
u:撤消前一次的编辑操作;
-
#u:直接撤消最近#次编辑操作;
温馨提示:连续u命令可撤消此前的n次编辑操作;
9、将另外一个文件(/path/sunhui.txt)的内容填充在当前文件夹中
-
:r /path/sunhui.txt :填充到当前文件所在光标的后面
10、修改vim配置文件
-
vim ~/.vimrc:修改当前用户的vim配置文件
-
vim /etc/vimrc:修改所有用户的vim配置文件
- 例:在当前用户的vim配置文件中添加显示行数的命令
-
vim ~/.vimrc:在末行添加 set nu 即可
11、拓展(末行模式)
1)显示或取消显示行号
-
:set nu //显示
-
:set number //显示
-
:set nonu //取消
2)设置语法高亮
-
:syntax on //开启
-
:syntax off //关闭
3)分屏
-
:vsp xxx.x //将两个文件垂直分屏
-
:ctrl+w w //切屏