vim快捷键

191 阅读2分钟

编辑模式—>输入模式

i 在光标左侧输入
I 在光标所在行的行首输入

a 在光标的右侧输入
A 在光标所在行的行尾输入


o 在光标的下一行增添一行
O 在光标的上一行增添一行

末行模式

10d :删除第1010,20d:删除1020行
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