本文首发于我的个人网站: https://hewanyue.com/
本文作者: Hechao
本文链接: https://hewanyue.com/blog/8dcd5ad7.html
VIM是linux中功能强大的文本编辑工具,因为功能强大,所以各种参数快捷键也很复杂,为方便记忆,特整理如下:
vim命令基本格式与参数
vim [OPTION] FILE
常见参数:
+# :打开文件后,让光标处于第#行,(+ 默认为行尾)。
+/PATTERN :打开文件后,让光标处于第一个被PATTERN匹配到的行的行首。
-b file :以二进制方式打开文件。
-d file1/file2 :比较多个文件的不同。
-m file :以只读方式打开文件。
-e file 或 ex file :直接进入ex模式(扩展命令模式或叫做末行模式)。
vim的几种工作模式
command模式下的光标跳转:
字符间跳转:h 左;j下;k 上;l 右。
#command 可以执行#次命令。
单词间跳转:w:下一个单词的词首;
e:当前或下一个单词的词尾。
b:当前或前一个单词的词首。
#command 可以执行#次命令。
当前页跳转:H:跳转至页首。
M:跳转至页中间行。
L:跳转至页底。
zt:将光别所在行移到屏幕顶端;
zz:将光标所在行移到屏幕中间;
zb:将光标所在行移到屏幕低端。
行首行尾跳转:^:跳转至行首的第一个非空的字符;
0:跳转至行首;
$:跳转至行尾。
行间移动:#G :移动至第#行行首。(相当于扩展命令模式下 #)
G :移至最后一行行首。
1G 或gg:移至第一行行首。
句间移动 : ) : 下一句;
( : 上一句。
段间移动 : } : 下一段;
{ : 上一段。
翻屏操作:Ctrl+f 向文件尾部翻一屏(向前翻屏);
Ctrl+b 向文件首部翻一屏(向后翻屏);
Ctrl+d 向文件尾部翻半屏(向下翻屏);
Ctrl+u 向文件尾部翻半屏(向上翻屏);
command模式下的字符编辑:
x : 删除(可认为是剪切,并非真的删除)光标处的字符;
#x:删除光标处起始的#个字符;
p :在光标所在处的后面插入储存的字符;
xp:交换光标所在处的字符及后面字符的位置;
~ : 转换大小写;
J : 删除当前行后的换行符;
替换命令
r : 替换光标所在处的字符(只能替换一个字符);
R: 切换为REPLACE模式,可持续替换多个字符。
删除命令
d : 删除命令(可结合光标跳转字符,实现范围删除);
d$: 从光标所在处,删除到行尾;
d^: 从光标所在处,删除到非空行首;
d0: 从光标所在处,删除到行首;
dw: 从光标所在处,删除到下一个单词的词首;
de: 从光标所在处,删除到下一个单词的词尾;
db: 从光标所在处,删除到前一个单词的词首;
dd: 删除光标所在的行;
#dd:多行删除;
D : 从当前光标位置一直删除到行尾,等同于d$。
改变命令
c : 改变命令(与d命令类似,执行删除后进入插入模式);
c$: 从光标所在处,删除到行尾,并进入插入模式;
c^: 从光标所在处,删除到非空行首,并进入插入模式;
c0: 从光标所在处,删除到行首,并进入插入模式;
cw: 从光标所在处,删除到下一个单词的词首,并进入插入模式;
ce: 从光标所在处,删除到下一个单词的词尾,并进入插入模式;
cb: 从光标所在处,删除到前一个单词的词首,并进入插入模式;
cc: 删除光标所在的行,并进入插入模式;
#cc:多行删除,并进入插入模式;
C : 从当前光标位置一直删除到行尾,并进入插入模式,等同于c$。
复制命令
y : 复制(yank)命令(可结合光标跳转字符,实现范围复制);
y$: 从光标所在处,复制到行尾;
y^: 从光标所在处,复制到非空行首;
y0: 从光标所在处,复制到行首;
yw: 从光标所在处,复制到下一个单词的词首;
ye: 从光标所在处,复制到下一个单词的词尾;
yb: 从光标所在处,复制到前一个单词的词首;
yy: 复制光标所在的行;
#yy:多行复制;
Y : 从当前光标位置一直复制到行尾,等同于y$。
命令模式下常用用法汇总 | 效果 |
---|---|
#ihello[ESC] | 插入“hello”#次 |
0y$ | 复制本行 |
gU | 变为大写 |
gu | 变为小写 |
di" | 当光标在" “之间时,则删除” "的内容 |
yi( | 当光标在( )之间时,则复制( )的内容 |
vi[ | 当光标在[ ]之间时,则选中[ ]的内容 |
dtx | 删除字符直到遇到光标之后的第一个x字符 |
ytx | 复制字符直到遇到光标之后的第一个x字符 |
撤销更改命令
u : 撤销命令(可撤销最近的更改);
#u: 撤销多次之前的更改;
U : 撤销光标落在这行后的所有此行的修改。
Ctrl+r:重做最后的撤销,取消撤销。
. : 重复前一个操作。
#.: 重复前一个操作#次。
调整文本颜色
Ctrl+v[[031mCOLORCtrl+v[[0m 输出红色COLOR
取消高亮显示
set nohlsearch 取消搜索后的高亮显示