此文介绍了vim中常用的命令,用熟练后可以提高工作效率哦。
1.多行注释:
1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;
2. 在行首使用上下键选择需要注释的多行;
3. 按下键盘(大写)“I”键,进入插入模式;
4. 然后输入注释符(“//”、“#”等);
5. 最后按下“Esc”键。注:在按下esc键后,会稍等一会才会出现注释
2.删除多行注释:
1. 首先按esc进入命令行模式下,按下Ctrl + v, 进入列模式;
2. 选定要取消注释的多行;
3. 按下“x”或者“d”.注意:如果是“//”注释,那需要执行两次该操作,如果是“#”注释,一次即可
3.多行删除:
1.首先在命令模式下,输入“:set nu”显示行号;
2.通过行号确定你要删除的行;
3.命令输入“:32,65d”,回车键,32-65行就被删除了
如果无意中删除错了,可以使用‘u’键恢复(命令模式下)
或者非命令行模式下:Ndd 例如5dd就是删除包含光标所在行往下的共5行
4.快捷键
w保存 q退出 !强制
wq保存退出,等价于 x(小写的x)还等价于在命令模式下 shit+2个z
q!不保存退出 在命令模式下 shit+zq
hjkl控制上下作用 M中间位置 L当前屏幕的最后一行
yy 复制,8yy:表示从当前光标所在的行开始复制8行
p 粘贴
dd 剪切,8dd:表示从当前光标所在的行开始剪切8行
x 删除单个字符
u 撤销 ctl+r 反撤销
G 调到最后一行 :
15G 表示跳转到第15行, 1G表示跳转到第1行。 输入:n,代表跳转到第n行,如:79,就跳转到第79行。
gg:跳转到第1行。
set nu:显示行号
set nonu:不显示行号
移至行首:home键或者"^"(即Shift+6)或0
移至行尾:end键或者"$"(Shift+4)
5.翻页
整页翻页 ctrl-f ctrl-b f就是forword b就是backward。
翻半页ctrl-d ctlr-u d=down u=up。
Ctrl + E:向上翻滚一行
Ctrl + Y:向下翻滚一行
5.在vim中快速复制粘贴多行
https://www.cnblogs.com/MMLoveMeMM/articles/3707287.html
6.vim插入空行
命令模式下按o键,可以新建一个空行并进入i模式。
yy复制空行,然后p粘贴
7.vim 替换模式
R命令让你一步到位进入替换模式,不会进入插入模式。屏幕左下角出现--REPLACE--字样。注意:退格键(Backspace)在替换模式中被解释为如果左边的内容被替换过,则恢复到原来的样子;如果没有被替换过,则简单的向左移动。修改完毕后,按下Esc键回到普通模式。
8.vim字符串替换命令
基本语法是 :[range]s/目标字符串/替换字符串/[option],其中range和option字段都可以缺省不填。
range:表示搜索范围,默认表示当前行;
range字段值1,10表示从第1到第10行;
%表示整个文件(相当于1,$);
而.,$代表从当前行到本文件的末尾
s:substitute的简写,表示执行替换字符串操作;
option:表示操作类型,默认只对第一个匹配的字符进行替换;
option字段值g(global)表示全局替换;
c(comfirm)表示操作时需要确认;
i(ignorecase)表示不区分大小写;
如想把所有的username换成login_name,那么:%s/username/login_name/g就可以了。
例子:
一:将光标所在行出现的所有包含line的字符串中line替换为lines :s/line/lines/g表示将光标所在当前行的line全局替换为lines 二:将从2行到10行中出现的所有包含line的字符串中的line替换为lines :2,10s/line/lines/g表示将2~3行的line全局替换为lines 三:全文的行首加入//字符,批量注释时非常有用 :%s/^////表示在全文范围行首替换插入//,注意在Vim中需要将/进行转义后才可以替换 四:将所有行尾多余的空格删除 :%s= *$==表示全局替换行尾的一个或多个空格,更多正则表达式的说明可以参考Vim正则表达式2d
9.vim刷新当前文件:e
您可以在:edit不指定文件名的情况下使用该命令来重新加载当前文件。如果对文件进行了修改,则可以:edit!用来强制重新加载当前文件(您将丢失所做 的修改)。
该命令:edit可以用缩写:e。因此,可以通过以下方式进行强制编辑:e!
10.移动光标
删除:
ctrl + u :从光标处向前删除指令串
ctrl + k : 从光标处向后删除指令串
删除(具体可以说是剪切)的字符串可以 ctrl + y 进行粘贴
移动:
ctrl + a :光标移动到整个指令串的最前面
ctrl + e :光标移动到整个指令串的最后面