Vim 学习记录

Posted1 by 呼延十 on January 11, 2019 Hot:

快捷键

快捷键 作用 备注
删除当前行 dd  
查找某个内容 /content 使用n下一个,N上一个
保存离开 ZZ  
复制粘贴 y p  
撤回上一次操作 u  
移动到单词末尾 e  
移动到行末 $  
移动到行首 0  
跳转至最后一行 G  
跳转至第一行 gg  
向下/上翻页 ctrl + f/ctrl + b  
向下/上翻半页 ctrl + d/ctrl + u  
跳转至第多少行 数字 + G  
百分比跳转 直接输入10%,50%  
跳转多少行/多少字 数字 + hjkl  
选中当前行 V 其实是进入行编辑模式,进入会自动选择当前行
ctrl + v 块选择,可以用来多行注释和取消注释  
w 下一个单词  
b 上一个单词  
d + G 删除到文件结束  
d + $ 删除到行末 d + 其他东西的操作较多,不再列举。
cc 删除当前行并且在当前行进入插入模式。  
C 清除当前光标之后的内容(本行), 进入插入模式  
ma 标记此处为 a  
`a 去到 a 标记那里。  
^ 移到行首(不包括空格的行首)  
{ } 上一个段落和下一个段落  
% 在成对的括号之间进行移动  
r re 将当前指针所在的字符替换为 e.  
viw 选中一个单词 (TextObject)  
ciw 删除一个单词 (以及其他的 TextObject 操作)  
`. 跳转到最后一次编辑的地方。 . 这个 mark 代表了最后一次编辑
’. 跳转到最后一次编辑的那一行  
g; g, 可以在 changelist 来回跳转 (就是在你编辑过的地方来回跳转)  
zz 将光标所在行移动到屏幕中间  
s 删除当前字符并进入编辑模式  
c 删除当前字符  
qaq , @q 录制一个宏并使用  

vim 宏的使用

vim 提供了录制一个 宏,并且不断回放的功能。

比如 按下 qh 开始录制一个名为h的宏,录制结束按下q. 之后移动到每一个想做同样操作的地方,按下@h即可。

栗子:

对于下面的文本,我们想要删除所有的引号,由于单词长度不一样,使用列编辑模式比较麻烦。

"word"
"hello"
"test"
"an"

此时,我们进行以下操作

1. 将光标放在 word 前面的`"`上。
2. 按下 `qh` , 开始录制一个名为 `h` 的宏。
3. 按下`x`, 删除当前位置的引号,之后按两次`e`, 光标移动到了 word 后面的引号。
4. 再次按下`x`, 删除当前位置的引号,
5. 按下`q`, 结束录制。
6. 之后将光标移动到第二行的第一个引号处,按下`@h`, 使用刚才录制的宏。
7. 逐行操作即可。

录制了一个简易的 gif 如下~:

显示不可见字符

处理纯文本的时候,可能为了格式我们想看到类似于换行,制表符等平时不可见的符号。此时输入:set invlist, 即可显示。查看完毕后,输入:set nolist, 即可恢复。

使用效果如下图:

图中 ^I是制表符, $是换行符.


完。


ChangeLog

2019-01-11 完成 2019-04-02 格式重构 2019-11-20 录制宏 2019-12-04 查看不可见字符

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com

更多学习笔记见个人博客——>呼延十