目录

vim 常用指令

常规

:4 跳到第4行开头
:$ 跳到最后一行开头
p 在后面粘贴
P 在前面粘贴
a 在当前字符前面添加文本,与 i 相反
A 在当前行的最后添加文本
i 在当前字符后面添加文本
I 在当前行最前面添加文本
o 当前行后面插入行
O 当前行前面插入行
r 替换当前字符
R 替换字符直到按下Esc

移动、删除、复制

wW 下个单词字首
bB 前一个单词字首
eE 下一个单词字尾
() 光标移至 句首、句尾
{} 光标移至 段首、段尾
HML 屏幕顶行、中间行、最后行
crtl+u d f 分别为 屏幕上移半屏、下移半屏、下移一屏

x 删除后一个字符,相当于 Delete
X 删除前一个字符,相当于 Backspace
(n)D 清空当前行的字符,n可以指定行数
(n)dd 删除本行
dw 删除到下一词开头
db 删除到前一词开头
de 删除到下一词结束
nS 删除n行并开始插入

:n1,n2 co n3 n1-n2复制到n3下面
:n1,n2 mv n3 n1-n2移动到n3下面
:n1,n2 d 删除n1-n2
nyy 复制 n 行
nyw 复制 n 单词
nyl 复制 n 字符

搜索

/pattern 向文件尾搜索
?pattern 向文件首搜索
n 同一方向重复搜索
N 反方向重复搜索

替换

:s/p1/p2/g 将当前行所有 p1 替换为 p2,不加"g"则只替换第一个
:n1,n2/s/p1/p2/g 将n1-n2行所有 p1 替换为 p2
:n1,$/s/p1/p2/g 从n1到文件尾
:n1,$#p1#p2#g 用 # 替换 /,则可以把 / 用在字符串中

多文件

vsp file 纵向分屏
sp file 横向分屏
:e file 换一个文件去编辑

执行命令

:n1,n2w!command 以n1-n2行为输入执行command
:!command 执行 shell 命令 command
r!command 将命令 command 的结果放到当前行

Visual 模式

使用v进入
使用V进 行可视化模式
h l j k 移动光标
w b e 移动至下一词首、前一词首、下一词尾
dy 删除、复制选中的
o 切换选择开头还是选择结尾