行号设置
设置行号set nu
取消行号set nonu
设置相对行号set rnu
进入插入模式
键位 | 作用 |
---|---|
i | insert |
I | insert before the line |
a | append |
A | append after the line |
o | open a new line |
O | open a new line above |
进阶:通过修改进入插入模式
键位 | 作用 |
---|---|
r | 替换一个字符 |
R | 不断替换 |
s | 替换并进入插入模式 |
4s | 删除4个字符并进入插入模式 |
S | 删除整行并进入插入模式 |
ct{char} | 删除到{char}并进入插入模式 |
C | 删除至行末并进入插入模式 |
单词间飞舞
键位 | 作用 |
---|---|
w/W | 下一个word/WORD开头 |
e/E | 下一个word/WORD结尾 |
b/B | 上一个/当前word/word开头 |
其中word是以非空白符分割的单词 | |
WORD是以空白符分割的单词 |
插入模式下的操作
键位 | 作用 |
---|---|
c-h | 删除 |
c-w | 删除前一个单词 |
c-u | 删除至行头 |
c-t | 增加缩进 |
d-d | 减少缩进 |
c-y | 复制上一行相同列的字符 |
c-e | 复制下一行相同列的字符 |
缩进大全
normal模式下:>>
visual模式下:选择好缩进的行以后,按一次>号
insert模式下:向右缩进c-t,向左缩进c-d
两字符对调
xp
寄存器操作指南
"{register} 可指定寄存器
:reg 查看所有寄存器的内容
"+ 系统剪贴板
宏的操作指南
录制
q{register} q结束
回放
@{register} 回放
合并下一行
s-j 合并下一行,中间带空格
行间快速移动
f{char} 移动到某个char上,;下一个,,上一个
F{char}反向移动到某个char上,;下一个,,上一个
t{char}移动到某一个char的前一个字符
0移动到行首的第一个字符
$移动到行尾
删除大法
键位 | 功能 |
---|---|
x | 快速删除一个字符 |
diw | 不删除空格 |
dd | 删除一行 |
dt{char} | 删除到{char} |
d0 | 快速删除到行头 |
d$ | 快速删除到行尾 |
查找大全
键位 | 功能 |
---|---|
/ | 前向搜索 |
? | 反向搜索 |
n/N | 前一个/后一个 |
*/# | 当前单词的前向/后向匹配 |
取消高亮
:noh
vim替换命令
:[range] s[ubstitute]/[pattern]/{string}/[flags]
:1,6 s/abc/bcd/g
flags: g 全局范围内执行、c 表确认、n 报告次数而不进行替换
粘贴
键位 | 作用 |
---|---|
p | 从该字符后面开始粘贴 |
P | 粘贴到这一行的上面 |
格式化
==
全部格式化gg=G
小案例
比如将a.txt中的3-5行粘贴到b.txt
vim a.txt b.txt
:3,5 w! >> b.txt