title: Vim常用快捷键
date: 2018-11-27 12:49:03
tags: shortcut
categories: Vim
Vim按键说明
注意:按钮是大小写分明的,字母大写或小写具有不同的功能。
在描述快捷键之前,先描述一下这三种模式,因为这个能更好的理解相应的快捷键。
vim三种模式简述
一般模式
- 这个模式就是用键盘快捷键的模式 (最重要的一个模式)
编辑模式
- 这个模式就是在一般模式下,按下了i,o..(注:大小写都行,效果相反)其中一个键之后,进入可以编辑的模式
命令行模式
- 一般模式下,按下 “/”或者 “:” 之类的,在编辑器的最底层会有一行显示,也再此操作
注意:只有一般模式可以与编辑或者命令行模式切换,编辑模式和命令行模式是不可以切换
第一部分:一般模式下的按键说明
在一般模式下可用的按钮说明,光标移动,复制粘贴,查找替换等
移动光标的方法
h或左键头
- 向左移动一个字符
j或下箭头
- 向下移动一个字符
k或上箭头
- 向上移动一个字符
l或右箭头
- 向右移动一个字符
技巧提示:
如果想要进行多次移动的话(列如:向下移动30行)
可以使用30j 或者 30下箭头
ctrl + f
- 向下翻一页
ctrl + b
- 向上翻一页
+
- 光标移动到非空格符的下一行
-
- 光标移动到非空格符的上一行
n\
- n表示数字,后面是空格,例如20\
,光标会想后面移动20个字符距离
- n表示数字,后面是空格,例如20\
0或功能键【Home】
- 这是数字0,移动到这一行的最前面字符处
$或功能键【End】
- 移动到这一行的最后面字符处
H
- 光标移动到这个屏幕的最上方那一行的一个字符
M
- 光标移动到这个屏幕的中央那一行的第一个字符
L
- 光标移动到这个屏幕的最下方那一行的第一个字符
G
- 光标移动这个文件的最后一行
nG
- n为数字,移动到这个文件的第n行 //可以配合:set nu (显示行号)
gg
- 移动到这个文件的第一行 ,相当于1G
N【Enter】
- N为数字,光标向下移动n行
查找与替换
/word
- 向下寻找一个名称为word的字符串
?word
- 向上寻找一个名称为word的字符串
n
- 代表重复前一个操作。比如查找了一个word,又点击了一次,就是查找下一个word
N
- 相反的,向上查找word
技巧小提示:
使用/word配合n或者N是非常有帮助的,可以查找重复的关键字
n1,n2s/word1/word2/g
- n1,n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2.
:1,$s/word1/word2/g
- 从第一行到最后一行查找word1字符串,并将该字符串替换为word2
:1,$s/word1/word2/gc
- 和上面一样,只是多了一步,替换前显示提示字符给用户确认(confirm)是否需要替换
删除,复制与粘贴
x,X
- 在一行字当中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])
nx
- n为数字,向后删除n个字符
dd
- 删除光标所在的整行
ndd
- n为数字,删除光标所在的向下n行
d1G
- 删除光标所在到第一行的所有数据
dG
- 删除光标所在到最后一行的所有数据
d$
- 删除从光标所在处到该行的最后一个字符
d0
- 删除从光标所在处到该行的最前面的一个字符
yy
- 复制光标所在的哪一行
nyy
- n为数字,复制光标所在的向下n行
y1G
- 复制光标所在行到第一行的所有数据
yG
- 复制光标所在行到最后一行的所有数据
y0
- 复制光标所在的那个字符到该行行首的所有数据
y$
- 复制光标所在的那个字符到该行行尾的所有数据
p,P
- p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标上一行
J
- 将光标所在行与下一行的数据结合成同一行
u
- 复原前一个操作
ctrl + r
- 重做上一个操作
.
- 不要怀疑。这就是小数点。意思是重复前一个操作的意思。如果你想要重复删除,重复粘贴等。
第二部分:一般模式切换编辑模式
进入插入或替换的编辑模式
i,I
- 进入插入模式(insert mode)
- i为从目前光标处插入,I为在目前所在行的第一个非空格符处开始插入
a,A
- 进入插入模式(insert mode)
- a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
o,O
- 进入插入模式(insert mode)
- o为在目前光标的所在的下一行处插入新的一行;O为在目前光标所在处的上一行插入新的一行。
r,R
- 进入替换模式 (Replace mode)
- r只会替换光标所在的哪一个字符一次;R会一直替换光标所在的文字,直到按下【Esc】键为止
注意:上面这些按键中,在vi界面的左下角会出现“–INSERT–”或“–REPLEACE”的字样。如果我们想要在文件中输入字符时,也就是在编辑模式中,一定会有上述这两种提示。
[Esc]
- 退出编辑模式,回到一般模式中;
第三部分:一般模式切换到命令行模式
命令行的保存、离开等命令
:w
- 将编辑的数据写入硬盘文件中
:q
- 离开vi
:q!
- 若曾经修改过文件,又不想存储,使用“!”为强制离开不保存文件
注意:感叹号(!),在vi中经常都是强制的意思
:wq
- 保存后离开
:w[fileName]
- 将编辑的数据保存成另一个文件(类似于另存为)
:! command
- 暂时离开vi到命令行模式下执行command的显示结果
:set nu
- 显示行号,设置之后,会在每一行的前缀显示该行的行号
注意:在vi中,数字是很有意义的,数字通常代表重复做几次的意思,也有可能是代表去到第几个什么什么的意思。
例如:要删除50行, 50dd
向下移动30行, 30j