VIM进阶一
前序:vim之所以强大,与他的快捷组合密不可分。两个功能键拆分开用,可能平平无奇,但如果组合在一起,我们将发现操作会如此奇妙,就让我们开启新世界的大门,尽情的探索把。
# 整理
移动
vim移动有很多技巧,通用的快捷按键
n:对匹配的字符/字符串,向下移动
N:对匹配的字符/字符串,向上移动
序号 | 名称 | 操作 | 备注 |
---|---|---|---|
1 | 上 | k | 光标向上一行 |
2 | 下 | j | 光标向下一行 |
3 | 左 | h | 光标向左一个字符 |
4 | 右 | l | 光标向右一个字符(小写L) |
5 | 相同单词向下移动 | * | return关键字,向下移动到另一个return关键字 |
6 | 相同单词向上移动 | # | return关键字,向上移动到另一个return关键字 |
7 | 向下移动半页 | ctrl + d | down |
8 | 向上移动半页 | ctrl + u | up |
9 | 向下移动一整页 | ctrl + f | full |
10 | 向上移动一整页 | ctrl + b | back full |
11 | 闭合符号间移动 | % | 从开跳到闭( (), {}, [] ) |
12 | 单词间向后 移动 | w | 光标处在单词的首 字母跳动 |
13 | 单词间向前 移动 | b | 光标处在单词的首 字母跳动 |
14 | 单词间向后 移动 | e | 光标处在单词的尾 字母跳动 |
15 | 向后寻找,跳到单行指定字符上 | f字符 | 结合;和,可以在单行实现相同字符快速前/后移动 |
16 | 向后寻找,跳到单行指定字符前 | t字符 | 结合;和,可以在单行实现相同字符快速前/后移动 |
17 | 向前寻找,跳到单行指定字符上 | F字符 | ;和,的移动方向与15(序号)相反 |
18 | 向前寻找,跳到单行指定字符前 | T字符 | ;和,的移动方向与16(序号)相反 |
插入模式
插入字符分3大类,6小种,每一类的大小写格两种
序号 | 名称 | 操作 |
---|---|---|
1 | 字符前插入 | i |
2 | 字符后插入 | a |
3 | 行首插入 | I |
4 | 行尾插入 | A |
5 | 在下方另起一行插入 | o |
6 | 在上方另起一行插入 | O |
可视化
通过锁定可视化的字符,可以做一些快捷操作。
可视完之后,依据上下左右移动按键,可扩大可视区,再结合剪切、复制、删除按键可以实现快捷操作
序号 | 名称 | 操作 |
---|---|---|
1 | 可视当前字符 | v |
2 | 可视当前行 | V |
3 | 向左扩大可视区 | vh |
4 | 向右扩大可视区 | vl |
5 | 向上扩大可视区 | vk |
6 | 向下扩大可视区 | vj |
7 | 对可视区剪切 | v + … + d,或v + … + x |
8 | 对可视区剪切,进入插入模式 | v + … + c,或v + … + s |
9 | 垂直可视 | ctrl + v |
字符操作
vim之所以效率高,与快捷的字符操作密不可分
剪切1
序号 | 名称 | 操作 |
---|---|---|
1 | 向后,剪切单个字符 | x |
2 | 向后,剪切N个字符 | nx |
3 | 向前,剪切单个字符 | X |
4 | 向前,剪切N个字符 | nX |
5 | 剪切整行 | dd |
6 | 剪切单词 | dw |
7 | 向下,剪切N行 | dnd, 或 nD |
8 | 向后,剪切单个字符,进入插入模式 | s |
9 | 剪切整行,进入插入模式 | S,或C |
10 | 向后,剪切N个字符,进入插入模式 | ns |
11 | 剪切N行,进入插入模式 | nS,或nC |
剪切2
剪切命令可以配置vim的基础移动命令实现快捷操作, h j k l
序号 | 名称 | 操作 |
---|---|---|
1 | 剪切前一个字符 | dh |
2 | 剪切后一个字符 | dl |
3 | 剪切本行 + 上一行 | dk |
4 | 剪切本行 + 下一行 | dj |
5 | 剪切前一个字符,进入插入模式 | ch |
6 | 剪切后一个字符,进入插入模式 | cl |
7 | 剪切本行 + 上一行,进入插入模式 | ck |
8 | 剪切本行 + 下一行,进入插入模式 | cj |
复制
序号 | 名称 | 操作 |
---|---|---|
1 | 复制单词 | yw |
2 | 复制n个字符 | yny |
3 | 复制整行 | yy |
替换
序号 | 名称 | 操作 |
---|---|---|
1 | 替换单个字符 | r |
2 | 从光标开始一直替换 | R |
粘贴
序号 | 名称 | 操作 |
---|---|---|
1 | 向后粘贴 | p |
2 | 向前粘贴 | P |
骚操作—删插
目前已经学会了移动、插入、复制、剪切、粘贴的命令后,这些命令之间的组合使用可以实现令人惊叹的一系列骚操作。
i:可以理解为inner,方便记忆
c:可以理解为change,方便记忆
闭合符号: 指的是(), [], {}, <>,下面表格的操作以()符号为例
序号 | 名称 | 操作 | 备注 |
---|---|---|---|
1 | 剪切闭合符号内内容 | di( | 条件:光标处在()符号之上/内 |
2 | 剪切闭合符号内内容,进入插入模式 | ci( | 条件:光标处在()符号之上/内 |
3 | 剪切光标到后一个字符的内容 | df字符 | f是向后查找,剪切到字符 |
4 | 剪切光标到前一个字符的内容 | dF字符 | F是向前查找,剪切到字符 |
5 | 剪切光标到后一个字符的内容,进入插入模式 | cf字符 | |
6 | 剪切光标到前一个字符的内容,进入插入模式 | cF字符 |
页面移动
往往有的时候想让匹配的字符、行移动到屏幕合适的位置
序号 | 名称 | 操作 |
---|---|---|
1 | 光标处,调整到屏幕正中 | zz |
2 | 光标处,调整到屏幕第一行 | zt |
3 | 光标处,调整到屏幕最后行 | zb |
操作难点
命令行复制文本内容操作
方法一
-
切到普通模式,使用
“*yy
命令复制内容“
: 是vim选择存储寄存器的符号,后面可以跟[a-z*0-9]*
: 表示共用系统的剪切板yy
: 复制当前整行,也可以用其他复制命令代替 -
切换命令模式
:
按快捷键:
Ctrl + r
, 然后在按*
即可能复制到命令行中
方法二
推荐
在Vim拷贝到字符串,然后切换到命令行,Ctrl + r + “
方法三
纯快捷键操作
- 先把光标定位到关键词,
Ctrl + r
+Ctrl + w
- 切到命令行,
Ctrl + r
+Ctrl + w
方法四
把系统剪切板的内容粘贴到命令行
Ctrl - r - +
# vim复制粘贴与系统的剪切板协作命令
1.复制vim文本到系统粘贴板
" * y
2.复制系统剪切板到vim文本内容
" + p
骚操作 — 代码
序号 | 名称 | 操作 |
---|---|---|
1 | 代码全部折叠 | zM |
2 | 代码全部展开 | zR |
3 | 格式代码 | == |
后续后继续追加进阶二篇,尽情期待😁!
(此文完!如引用转载,必须附此文链接,谢谢!)