编辑模式—>输入模式
i 在光标左侧输入
I 在光标所在行的行首输入
a 在光标的右侧输入
A 在光标所在行的行尾输入
o 在光标的下一行增添一行
O 在光标的上一行增添一行
末行模式
10d :删除第10行
10,20d:删除10到20行
set nu:每一行显示行号
! ls /etc:执行shell命令
打开文件
vim +# /path/to/somefile # 打开文件,并定位于第#行,如果+后不指定数字文件将定位至最后一行
vim +12 inittab 打开文件处于第12行
vim + inittab 打开文件处于最后一行
vim +/PATTERN # 打开文件,定位至第一次被PATTERN匹配到的行的行首
vim +/oot inittab定位到第一次匹配到的包含oot位置
关闭文件
末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存并退出
:w 保存但不退出
:w! 只读属性的文件对管理员来说是可以强行的保存的,这时可以使用该强行保存命令
:wq --> :x保存退出
编辑模式下退出
ZZ: 保存并退出
移动光标
编辑模式移动
1. 逐字符移动(#h: 移动#个字符) h: 左 l: 右 j: 下 k: 上
2. 以单词为单位移动(#w: 一次跳#个单词)
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
3. 行内跳转:
0: 绝对行首 ^: 行首的第一个非空白字符 $: 绝对行尾
5. 行间跳转(#G:跳转至第#行;)
G:最后一行 gg:跳转到第一行
末行模式下的跳转:
在末行模式下,直接给出行号即可。比如:3
翻屏
Ctrl+f:following 向下翻一屏
Ctrl+b: back向上翻一屏
Ctrl+d: down向下翻半屏
Ctrl+u: up向上翻半屏
可视化模式
v:小写 按字符选取
V:大写 按矩形选取
按v->选择要操作的字符段落->按d删除
删除
vim最近删除的内容不会立即删除,而会保存在缓冲区中,而最近一次删除的内容还可以粘贴到另外一个地方去。粘贴也可以粘贴多次。
编辑模式的删除:
删除单个字符:
x: 删除光标所在处的单个字符
#x: 删除光标所在处及向后的共#个字符
删除命令: d
d命令跟跳转命令组合使用;
#dw, #de, #db,#3dw
dd: 删除当前光标所在行
#dd: 删除包括当前光标所在行在内的#行;
末行模式的删除:
StartADD,EndADDd 起始地址到结束地址
10,20d:删除10到20行
.d:删除当前行
.,$-3d:删除当前行到倒数第三行(.: 表示当前行 $: 最后一行 +#: 向下的#行)
复制、粘贴修改、替换(编辑模式)
粘贴命令 p
p:小写,若删除或复制为整行内容,则粘贴至光标所在行的下方,若复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P:大写,若删除或复制为整行内容,则粘贴至光标所在行的上方,若复制或删除的内容为非整行,则粘贴至光标所在字符的前面;
复制、修改、替换
复制命令 y (用法同d命令)
修改命令c(用法同d命令;先删除内容,再转换为输入模式)
替换replace(r 只能替换单个字符R: 替换模式,替换了原来的内容)
查找并替换(末行模式)
在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN@string@gi
1,$:表示全文 %:表示全文
例:将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum
%s/ftp:\/\/instructor\.example\.com\/pub/http:\/\/172.16.0.1\/yum/g
%s@ftp://instructor\.example\.com/pub@http://172.16.0.1/yum@g
Undo(撤销)
u:撤消前一次的编辑操作,连续u命令可撤消此前的n次编辑操作,一般vi编辑器只保存最近50次的变更操作。最大能撤销50次。 #u: 直接撤消最近#次编辑操作
撤消最近一次撤消操作:Ctrl+r
重复前一次编辑操作:.
查找
查找操作支持正则表达式 /PATTERN:
?PATTERN:从当前到文件首部查找 n N