好用到哭!8个技巧让Vim菜鸟变专家

原文: https://juejin.im/post/5da68cb8f265da5b8c03c4a1web

Vim只不过是一个文本编辑器,但若是你曾见过真正的高手是如何使用vim的,你就会知道,这个软件出人意料地强大、高效、迅捷。对于高水平使用者而言,vim可以帮助其更清晰、明确地表达操做指令。一旦熟练掌握vim语言,使用者就能更加快速地和本身的电脑交流。vim

必备条件dom

在开始阅读本文以前,你应该至少知道vim有哪些简单的指令,例如基本动做、导入操做和查找信息。若是你还不了解这些知识,你能够打开软件终端并运行:编辑器

sudo apt-get install vimide

接着,你就能够运行如下指令来自学vim:post

vimtutorspa

1. 宏指令orm

不得不重复进行的某些文本编辑任务会让人以为很烦躁,作那些须要操做者重复几十次的任务就更糟糕了。宏指令可以有效地解除这些麻烦。你只须要敲击一个记录键,输入须要改变的指令,而后在指令结束时中止记录就能够了。以后,你就能够重复使用在这个记录里的动做了,而这只需你按下一个键。cdn

• 按下‘q’键让vim开始记录,而后按任意键,来告诉vim你想把保存的记录下次经过这个键来调出。本次案例中,这个键设置为‘a’,因此完整的指令就是‘qa’。ip

• 执行你的命令。

• 按下‘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 <C-C>

cnoremap jk <C-C>

这样,你就能够经过键入’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 <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>

imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>

从而能够只经过键入F3来给文档加日期和时间。

相关文章
相关标签/搜索