Vim学习笔记
一、Vim模式
Normal模式(所有输入都当成命令):操作文本、定位和移动等
Insert模式(编辑器模式):文本编辑等
模式 | 进入方法 |
---|---|
Normal 模式 |
Esc 进入Normal 模式(Ctrl+[ ) |
Insert 模式 |
i 进入Insert 模式(o 、O 、a 、A ) |
进入Normal模式推荐使用
Ctrl+[
,这样手可以不用离开主键区进入Insert模式上述5种方法的区别:
i
在当前光标前面输入文本;a
在当前光标后面输入文本;o
在当前光标所在行下面新建一行进行输入;O
在当前光标所在行上面一行新建一行进行输入;A
在当前光标所在行末尾进行输入
1.Normal/Insert模式
- 方向类
操作 | 命令 |
---|---|
上下左右方向 | hjkl (左下上右) |
跳转到对应行 | LineNumber gg |
页首(第一行) | gg |
页尾(最后一行) | G |
行首 | 0 |
行尾 | $ |
下一个词组开头 | w &W (小写w 以字符和空格划分词组,大写W 以空格划分词组) |
下一个词组末尾 | e &E |
向前移到词组开头(返回到上一个词组) | b &B |
- 查找类
操作 | 命令 |
---|---|
当前行向后查找 | f |
当前行向前查找 | F |
查找一对类如([{ |
% |
全局查找单词 | /+单词 n (查找下一个结果) N (查找上一个结果) |
查找当前光标下的单词 | * (查找下一个) # (查找上一个) |
- 删除、替换、粘贴、复制操作
操作 | 命令 |
---|---|
删除一个字母 | x &X (小写x 表示向后删除,大写X 表示向前删除) |
替换当前字母 | r 规则 r +a-zA-Z |
替换模式 | R (进入该模式,光标变为下划线模式,替换好后按Esc 或Ctrl [ 进入Normal模式) |
复制 | y |
粘贴 | p |
删除 | d |
dd
表示删除一行,也可以和其他”方向”等例如dw
表示删除一个词组,d$
表示从当前行光标处删除到末尾
yy
表示复制当前行yw
表示复制一个词组y$
表示复制当前光标到行尾粘贴/删除命令都会将内容放入寄存器中,可以使用
p
来粘贴
- 重复、数字+指令
操作 | 命令 |
---|---|
重复上一次命令 | . |
数字+指令 | 例如:3dd d8j (删除当前行下面的8行) |
- 撤销、重做、保存
操作 | 命令 |
---|---|
撤销(undo) | u |
重做(redo) | Ctrl+r |
保存 | :w |
退出 | :q |
保存并退出 | wq |
强制退出 | :q! |
2.Visual模式
使用
v
进入该模式,相当于使用鼠标按住选择段落,选择后再使用命令对选择的段落进行处理,如d
、x
的删除操作
二、进阶操作
1.非Ctrl指令
操作 | 命令 |
---|---|
删除当前光标至行尾并进入插入模式 | c /c$ (与d$a 等价) |
删除当前光标再进入插入模式 | s (与xi 等价) |
对齐(行首输入=G 将该文件进行对齐) |
= (=num 将光标到num 行进行对齐) |
跳转到行首(与0 不同的是该命令会忽略开头前的空格) |
^ |
跳转到行尾(与$ 不同的是该命令会忽略行尾后的空格) |
g_ |
向左缩进/向右缩进 | << />> (num << :包括光标在内num 行向左缩进) |
删除一行并进入插入模式 | cc /S |
合并行(将下一行合并到当前行) | J |
选中一行进入visual mode |
V |
visual mode 模式下大小写转换 |
u&U |
当前光标下的字母大小写互相转换 | ~ |
2.Noraml模式下ctrl指令
操作 | 命令 |
---|---|
向下翻一页 | ctrl f |
向上翻一页 | ctrl b |
向下翻半页 | ctrl d |
向上翻半页 | ctrl u |
计数加一(光标往后寻找到的第一个数字加一) | ctrl a |
3.vi/yi/ci/di/va…
i
表示in
vi(
可以选中括号中的内容,若想把()
包含进去则使用va(
常用如下:
1
2
3 vi( vi[ vi< vi" vi' vi{ viw viW
va( va[ va< va" va' va{
ci( ciw等等
4.替换
1 | :s/search/replace # 当前行替换匹配第一个 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 theeの博客 🎉!