h j k l 分别对应于:←,↓,↑,→
Ctrl+f 向下翻一页(forward)
Ctrl+b 向上翻一页(back)
Ctrl+d 向下翻半页(down)
Ctrl+u 向上翻半页(up)
H 屏幕顶行首字符
M 屏幕中间首字符
L 屏幕末行首字符
gg 当前文件首行首字符
G 当前文件末行首字符
【n】G 跳转到第n行
J 合并光标所在行和下一行
【n】< Enter> 下移n行
0 行首
$ 行尾
dd 删除当前行
【n】dd 删除光标以下的n行
dw 删除一个word
d0 删除从光标所在位置到该行行首
d$ 删除从光标所在位置到该行行尾
dG 删除当前行到文件末尾
d1G 删除当前行到文件首部
x 向后删除一个字符(相当于delete)
X 向前删除一个字符(相当于Backspace)
【n】x/X 向后(前)删除n个字符
yy 复制当前行
【n】yy 复制当前行以下的n行
yG 复制从当前行到最后一行
y1G 复制从当前行到第一行
y0 复制当前位置到行首
y$ 复制当前位置到行尾
p 在光标下一行粘贴
P 在光标上一行粘贴
i 在当前光标前一个字符插入
a 在当前光标后一个字符插入
I 在当前行的首个非控制字符处插入(行首)
A 在当前行的最后一个非控制字符处插入(行尾)
/word 向后查找word n 按当前方向的下一个查找结果
?word 向前查找word N 按当前方向反方向的下一个查找结果
:n1,n2s/word1/word2/gc n1行到n2之间,用word2替换word1,有c则替换前需确认
:0,$s/word1/word2/g 整个文件中查找word1,并用word2替换,没有c则替换前不需确认
v 进入字符模式,可选中连续的字符
V 进入行模式,可选中连续的行
Ctrl+v 进入块模式,可选中一个矩形块
块编辑模式下,两个很有用的命令,第一个是在行首批量插入string,第二个是在行尾批量插入string
Ctrl+v,选中行(块),I,输入string,两次ESC
Ctrl+v,选中行(块),$,A,输入string,两次ESC
vim -o file1 file2 水平分割(上下两个)窗口,同时打开两个文件
vim -O file1 file2 垂直分割(左右两个)窗口,同时打开两个文件
两次Ctrl+w可以在两个窗口间切换
:sp file 水平方向另起一个窗口打开文件file
:vs file 垂直方向另起一个窗口打开文件file
切换到某一个窗口后,输入命令 :q可以关闭某一个窗口,:qa表示关闭所有窗口(a是all的意思)
若已经打开一个文件,不想分割窗口在打开一个文件,则
:e file 可再打开一个文件
:ls 可列出当前打开的文件(查看文件编号ID)
:bd 关闭当前缓冲区(当前文件)
:bd【ID】 关闭文件号为ID的缓冲区
b【ID】 切换到编号为ID的缓冲区
Ctrl+^ 切换到下一个缓冲区(:e# 也有类似的功能)
若用:q 命令则关闭所有缓冲区
:!command 在当前环境下调用bash执行command命令
:r file 在当前光标的下一行读(插)入文件file
:r !command 调用bash执行command命令,并将结果插入到当前光标下一行
:3 !cmd 将第三行作为bash命令执行,并将结果替换为第三行上
:3 w !cmd 将第三行作为bash命令执行并显示
:1,3 !cmd 将1到3行之间的字符串作为bash命令执行,并将结果替换到1到3行之间
:1,3 w !cmd 将1到3行之间作为bash命令执行并显示结果
:w !sudo tee % 当打开一个无权限写的文件时,用此命令强制写
在代码编写时的匹配,标签与跳转
% 跳转到匹配的括号另一端([, (, { 三种)
[[ 跳转到代码块的开头(要求左大括号“{”单独成行)
''(两个反引号) 跳转到上一次光标所在位置
gD 跳转到局部变量声明处
m【x】 x=a~z,将当前位置设置为标签x
`【x】(反引号) 跳转到x标签处
:set ts=4 设置TAB缩进为4(默认为8)
Vim常用命令总结
最新推荐文章于 2024-05-08 19:53:24 发布