1、撤销与恢复撤销

命令说明
u撤销上一命令对编辑缓冲区的修改。
U恢复当前行(即一次撤销对当前行的全部操作)。
.重复上一命令对编辑缓冲区的修改。
ctrl + ru 的逆向操作,恢复上一命令对编辑缓冲区的修改。

2、复制与粘贴

命令说明
y0复制从当前光标(不包含)左侧开始到该行行首的所有数据。
y$复制从当前光标(包含)开始到该行行尾的所有数据。
yy复制当前行。
nyy复制从当前行(包含)开始的n行。
y1G复制从当前行(包含)开始到第一行(包含)的所有数据。
yG复制从当前行(包含)开始到最后一行(包含)的所有数据。
p将复制的内容粘贴到下一行,原有的内容按顺序后移。
np将复制的内容粘贴到下一行,粘贴n次,原有的内容按顺序后移。
P将复制的内容粘贴到上一行,原有的内容按顺序后移。
nP将复制的内容粘贴到上一行,粘贴n次,原有的内容按顺序后移。
J将当前行与下一行数据合并成一行。

3、行内删除

命令说明
x删除当前光标处的字符。
nx删除当前光标处的n个字符。
X删除当前光标左侧的字符。
nX删除当前光标左侧的n个字符。
d0删除从当前光标左侧到本行行首的字符。
d^删除从当前光标左侧到本行行首的字符。
d$删除从当前光标到本行末尾的字符。
D删除从当前光标到本行末尾的字符。
dh删除当前光标左侧的字符。
dl删除当前光标处的字符。
d->move删除当前光标到新光标位置的字符。
dw向后删除从当前光标到下一个单词起始处的字符,不包含下一个单词的第一个字符,单词以空格分隔。
dnw向后删除从当前光标开始,包含当前单词在内的n个单词,单词以空格分隔。
de向后删除从当前光标到当前单词结尾处的字符,包含当前单词的最后一个字符,单词以空格分隔。
dne向后删除从当前光标开始,包含当前单词在内的n个单词,单词以空格分隔。
db向前删除从当前光标(不包含)左侧到当前单词起始处的字符,包含当前单词的第一个字符,单词以空格分隔。
dnb向前删除从当前光标(不包含)左侧开始,包含当前单词在内的n个单词,单词以空格分隔。
df[x]删除当前光标(包含)至字符x(包含)的所有数据。

4、行间删除

命令说明
dd删除当前。
ndd删除从当前行开始的n行。
dj删除当前行和下一行。
dk删除当前行和上一行。
d1G或dgg或:1,.d删除当前行(包含)所在行到第一行(包含)的所有数据。
dG或:.,$d删除当前行(包含)所在行到最后一行(包含)的所有数据。
:nd删除指定的第n行。
:n1,n2d删除指定范围[n1,n2]的行。
:1,$d或:%d删除所有行。
:g/^$/d删除所有空行。

5、正则表达式删除
正则表达式删除的原理是通过正则表达式查找内容,然后将对应的内容替换为空,看起来像删除一样。

命令说明
:%s/\d//g删除所有数字。
:%s/\s//g删除所有空格。
:%s/\n+$//g删除文档末尾回车产生的空行。

6、进入 Insert 模式

命令说明
i在当前光标处进行编辑。
I在行首插入。
A在行末插入。
a在当前光标后插入。
o在当前行后插入一个新行。
O在当前行前插入一个新行。

7、退出并保存

命令说明
:q!强制退出,不保存。
:q退出。
:wq!强制保存并退出。
:w保存文件。
:w <文件路径>另存为。
:saveas <文件路径>另存为。
:x保存并退出。
:wq保存并退出。

8、替换
语法为:
:[addr]s/src/dist/[option]

命令说明
[addr]表示检索范围,省略时表示当前行。
[addr]“1,20” :表示从第1行到20行。
[addr]“%” :表示整个文件,同“1,”。
[addr]“. ,” :从当前行到文件尾。
s表示替换操作。英文全称:substitute
src源字符串:如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 如 \t。
dist目的字符串:如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 如 \t。
[option]表示操作类型,g 表示全局替换。
[option]c 表示进行确认。我们有很多时候会需要某个字符(串)在文章中某些位置出现时被替换,而其它位置不被替换的有选择的操作,这就需要用户来进行确认。
[option]p 表示替代结果逐行显示。
: s/vivian/sky/替换当前行第一个 vivian 为 sky
: s/vivian/sky/g替换当前行所有 vivian 为 sky
:%s/vivian/sky/替换每一行第一个 vivian 为 sky
:%s/vivian/sky/g替换每一行所有 vivian 为 sky

9、g命令
表示查找到 pattern 匹配的内容,然后对其执行 cmd 命令。语法为:
:g/pattern/cmd

命令说明
g表示检索命令,我推测是 grep 的缩写。
pattern正则表达式
cmd命令行,表示查找到 pattern 匹配的内容,然后对其执行 cmd 命令。
:g/vivian/s//sky/替换每一行第一个 vivian 为 sky
:g/vivian/s//sky/g替换每一行所有 vivian 为 sky

注意注意注意:n表示阿拉伯数字

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐