vim按键说明

写在前面

本文是vim的按键说明,参考的是《鸟哥的Linux的私房菜》。

之前健勋推荐的Office Lens是真的很好用,搭配上Office全家桶真是极品利器。

再加上正则对转换出的文字进行一下处理,23333333,爽飞了


vim的三种模式只有一般模式可以与编辑,命令行模式切换,编辑模式与命令行模式之间并不能切换的。

下面就来谈谈vim中会用到的按键功能

第一部分:一般模式可用的按钮说明,光标移动、复制粘贴、查找替换等

移动光标的方法 移动光标的方法
h或向左箭头键 光标向左移动一个字符
j或向下箭头键 光标向下移动一个字符
k或向上箭头键 光标向上移动一个字符
l或向右箭头键 光标向右移动一个字符
如果想进行多次移动的话,例如向下移动30行,可以使用“30j“或”30+向下箭头键”的组合按键,即加上想要进行的次数(数字)后,按下操作即可
[Ctrl]+[f] 屏幕向下移动一页,相当于[Page Down]按键(常用)
[Ctrl]+[b] 屏幕向上移动一页,相当于[Page Up]按键(常用)
[Ctrl]+[d] 屏幕向下移动半页
[Ctrl]+[u] 屏幕向上移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n 那个n表示“数字”,例如20。按下数字后再按空格键,光标会向右移动这一行的n个字符。例如20,则光标会向后面移动20个字符距离
0或者功能键[Home] 这是数字“0’’:移动到这一行的最前面字符处(常用)
$或功能键[End] 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个文件的最后一行 (常用)
nG n为数字。移动到这个文件的第0行。例如20G则会移动到这个文件的第20行(可配合:set nu)
gg 移动到这个文件的第一行,相当于1G(常用)
N(Enter) n为数字。光标向下移动n行(常用)
查找与替换 查找与替换
/word 向下寻找一个名称为word的字符串。例如要在文件内查找vbird这个字符串,就输入/vbird即可(常用)
?word 向上寻找一个字符串名称为word的字符串
n 这个n是英文按键。代表重复前一个查找的操作。举例来说,如果刚才我们执行/vbird去向下查找vbird这个字符串,则按下n后,会向下继续查找下一个名称为vbird的字符串。如果是执行?vbird的话,那么按下n则会向上继续查找名称为vbird的字符串
N 这个N是英文按键。与n刚好相反,为“反向”进行前一个查找操作。例如输入/vbird后,按下N则表示向上查找vbird
使用/word配合n及N是非常有帮助的。可以让你重复地找到一些关键字
:n1,n2s/word1/word2/g ni与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2。举例来说,在100到200行之间查找vbird并替换为VBRID则用“:100,200s/vbird/VBRID/g”(常用)
:1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符串替换为word2(常用)
:1,$s/word1/word2/gc 从第一行到最后一行查找word1字符串,并将该字符串替换为word2。且在替换前显示提示字符给用户确认(confirm)是否需要替换〔常用)
删除、复制与粘贴
x;X 在一行字当中,x为向后删除一个字符(相当于[DeL]按键),X为向前删除一个字符(相当于(Backspace])(常用)
nx n为数字,连续向后删除n个字符。举例来说,我要连续删除10个字符,“10x”
dd 除光标所在的那一整行(常用)
ndd n为数字。删除光标所在的向下n行,例如20dd则是删除20行(常用)
d1G 删除光标所在到第一行的所有数据
dG 删除从光标所在到最后一行的所有数据
d$ 删除从光标所在处到该行的最后一个字符
d0 那个是数字的0,删除从光标所在处到该行的最前面一个字符
yy 复制光标所在的那一行(常用)
nyy n为数字。复制光标所在的向下n行,例如20yy则是复制20行(常用)
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p为将已复制的数据在光标下一行粘贴,p则为粘贴在光标上一行。举例来说,我目前光标在第20行,且已经复制了10行数据。则按下p后,那10行数据会粘贴在原本的20行之后,也即由21行开始粘贴。但如果是按下P呢?那么原本的第20行会被变成30行(常用)
J 将光标所在行与下一行的数椐结合成同一行
c 重复删除多个数据,例如向下删除10行,[10cj]
u 复原前一个操作(常用)
[Ctrl]+r 重做上一个操作(常用)
这个u与[Ctrl]+r很常用的命令。一个复原,另一个则是重做一次,利用它们,你的编辑会更加得心应手。
. 不要怀疑。这就是小数点。意思是重复前一个操作的意思。如果你想要重复删除,重复粘贴等操作,按下小数点”.”就好了(常用)

第二部分:一般模式切涣到编辑模式的可用的按钮说明

进入插入或替换的编辑模式
i,I 进入插入模式(Insertmode):i为从目前光标所在处插入,I为在目前所在行的第一个非空格符处开始插入(常用)
a,A 进入插入模式(Insertmode):a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入(常用)
o,O 进入插入模式(insertmode):这是英文字母o的大小写。o为在目前光标所在的下一行处插入新的一行;O为在目前光标所在处的上一行插入新的一行(常用)
r,R 进入替换模式(Replacemode):r只会替换光标所在的那一个字符一次;R会一直替换光标所在的文字,直到按下[Esc]键为止(常用)
上面这些按键中,在vi界面的左下角处会出现”–INSERT–”或”–REPLACE–”的字样。由名称就知道该操作了吧。特别注意的是,我们上面也提过了,你想要在文件里面输入字符时,一定要在左下角处看到INSERT或REPLACE才能输入
(Esc) 退出编辑模式,回到一般模式中(常用)

第三部分:一般模式切换到命令行模式的可用的按钮说明

命令行的保存、离开等命令
:w 将编辑的数据写入硬盘文件中(常用)
:w! 若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入,还是跟你对该文件的文件权限有关啊
:q 离开vi(常用)
:q! 若曾修改过文件,又不想存储,使用“!”为强制离开不保存文件
注意一下啊,那个感叹号(!)在vi当中经常具有“强制”的意思
:wq 回车后离开,若为“wq!”则为强制保存后离开(常用)
ZZ 这是大写的Z。若文件没有更动,则不保存离开,若文件已经被更动过,则保存后离开
:w[filename] 将编辑的数据保存成另一个文件(类似于另存文件)
:r[filename] 在编辑的数据中,读入另一个文件的数据,即将”filename”这个文件内容加到光标所在行后面
:n1,n2 w[filename] 将ni到n2的内容保存成filename这个文件
:! command 暫时离开vi到命令行模式下执行command的显示结果。例如”:! ls/home”即可在vi当中查看/home下面以Is输出的文件信息
vim环境的更改
:set nu 显示行号,设置之后,会在每一行的前缀显示该行的行号
:set nonu 与set nu相反,为取消行号
关注我的微信公众号[李一二],即时看更多的文章