[大咖. 来了 第 7 期] 10 月 24 日晚 8 点观看《智能导购对话机器人实践》
VIM 只不过是一个文本编辑器, 但如果你曾见过真正的高手是如何使用 VIM 的, 你就会知道, 这个软件出人意料地强大, 高效, 迅捷. 对于高水平使用者而言, VIM 能够帮助其更清晰, 明确地表达操作指令. 一旦熟练掌握 VIM 语言, 使用者就能更加快速地和自己的电脑交流.
必备条件
在开始阅读本文之前, 你应该至少知道 VIM 有哪些简单的指令, 例如基本动作, 导入操作和查找信息. 如果你还不了解这些知识, 你可以打开软件终端并运行:
sudo apt-get install VIM
接着, 你就可以运行以下指令来自学 VIM:
vimtutor
1. 宏指令
不得不重复进行的某些文本编辑任务会让人觉得很烦躁, 做那些需要操作者重复几十次的任务就更糟糕了. 宏指令能够有效地解除这些麻烦. 你只需要敲击一个记录键, 输入需要改变的指令, 然后在指令结束时停止记录就可以了. 之后, 你就可以重复使用在这个记录里的动作了, 而这只需你按下一个键.
按下'q'键让 VIM 开始记录, 然后按任意键, 来告诉 VIM 你想把保存的记录下次通过这个键来调出. 本次案例中, 这个键设置为'a', 所以完整的指令就是'qa'.
执行你的命令.
按下'q'来结束记录.
需要重复保存的系列动作时, 输入'@a'即可.
2. 相对行号
没人喜欢心算. 即使你能心算得很快, 算出 23=23 总要快于 141-118=23. 相对行号和绝对行号不同, 它显示的是你光标所在行的相对数字. 这个功能不仅便利了删除行的操作, 也使跳到指定位置的过程变得更为简洁. 你可以在. vimrc 中加入以下指令来得到这个结果:
set relativenumber
举例来讲, 你可以通过输入下列 VIM 指令来删除其后的 25 行:
25dd
3. 寄存器(Registers)
寄存器是在复制文本后, 临时储存要粘贴内容的空间. 每台电脑都有很多寄存器. VIM 会自动地使用一个寄存器来储存它的文本, 这些文本和电脑里其他临时储存的复制文本不一样. 向你的. vimrc 中加入以下指令:
- set clipboard=unnamed
- set clipboard=unnamedplus
加入这项指令后, 在 VIM 中复制粘贴文本就从 "CTRL+V", 和 "CTRL+C" 这一过程变为简单地输入'p'.
如果你想在不重写你的寄存器的情况下删除文本, 你可以在指令前加上 "_符号:"_dd 来删除一行.
4. 重映射 Escape 操作
Escape 键和主键 (home row) 离得很远. 因此, 它并不是一个离开当前指令很好的选择. 你可以在你的. vimrc 中加入:
- cnoremap kj
- cnoremap jk
这样, 你就可以通过键入'jk'或者'kj'来离开一个指令, 同时, 你的手一直呆在主键区.
5. 动词 + 修饰词 + 宾语
VIM 有一套自己特殊的语法, 这套语法遵循'动词 + 修饰词 + 宾语'结构.
动词举例:
'd'删除(delete)
'c'改变(change)
修饰词举例:
't'直到(till)
'f'找到(find)
'i'里(inside)
宾语举例:
'w'词(Word)
'('插入语(parenthesis)
't'标签(tag)
's'句子(sentence)
'"'引用
举个例子,'diw'就是删除光标所在的词, 无论光标是在词首还是词尾.'dt)'删除光标所在位置和下括号之间的文本.'cfp'能删除光标所在位置到该段落结束前的所有文本, 之后自动载入插入模式. 和'.'(重复前序指令)一起使用, 这套语法就非常强大.
6. 处理空白格(White space fixing)
软件工程中最让人受不了的情况, 就是遇到 tabs 而不是空和空白格 (white space) 在一行的结尾. 为了解决这个问题, 你可以向. vimrc 加入:
set list
这个指令会在每行结尾显示一个 $ 符号, 并且用 ^I 代替 tabs. 你从而能更容易地识别出 tabs 和行尾. 除此之外, 下面的例子中, 使用了空代替所有的 tabs, 这也让空白格更加便于处理:
https://vim.fandom.com/wiki/Example_vimrc.
7. 快速查找(navigate)
你习得的有关 VIM 的第一个操作, 就是如何使用 hjkl 键来查找信息. 但是, 这其实是很慢的查找方式. 这里列出了能帮助你快速查找的指令:
敲击'gg'来移动到文档的顶部,'G'来移动到最底部.
敲击 CTRL+F 来快速向前移动, CTRL+B 来快速向后移动.
敲击'zz'来重新定位页的中心, 这也你的光标就成为新的中心.
遇到上括号像'{'或者'(', 你可以敲击'%'来移动到它们所匹配的下括号.
'/'可以开始查找你想要的词.
8. 日期(date)
在许多场景下, 你需要给文件加上日期. 这一操作缓慢且乏味. 这时, 你可以向你的. vimrc 中加入:
- nmap i=strftime("%Y-%m-%d %a %I:%M %p")
- imap =strftime("%Y-%m-%d %a %I:%M %p")
从而可以只通过键入 F3 来给文档加日期和时间.
来源: http://os.51cto.com/art/201910/604495.htm