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
d
0 删除从光标所在位置到该行行首
d
$ 删除从光标所在位置到该行行尾
dG 删除当前行到文件末尾
d1G 删除当前行到文件首部
x 向后删除一个字符(相当于delete)
X 向前删除一个字符(相当于
Backspace)
【n】x/
X 向后(前)删除n个字符
yy 复制当前行
【n】yy 复制当前行以下的n行
yG 复制从当前行到最后一行
y1G 复制从当前行到第一行
y
0 复制当前位置到行首
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)
转载请注明原文地址: https://ju.6miu.com/read-1302764.html