zl程序教程

您现在的位置是:首页 >  工具

当前栏目

3 个针对高级用户的 Vim 编辑器实用技巧

Vim编辑器 用户 高级 针对 实用技巧
2023-09-11 14:16:11 时间

毫无疑问, Vim 是一个很强大的文本编辑器。它提供了大量的特性,这意味着学习并记住 Vim 的所有功能实际上是不可能的。但是我们至少可以不断学习简单的方法来完成事情,从而随着时间的增长,我们使用编辑器的经验将会变得更好。

请记住,在这篇文章中我们将讨论的一些 Vim 编辑器技巧是针对高级用户的。

注:如果你是第一次接触 Vim,你可以首先阅读我们的入门指南。对于已经使用过 Vim 编辑器的用户,我确信 Vim 快捷键速查表将会对你很有帮助。如果你已经是一名有经验的用户,你可能对一些针对有经验用户的技巧比较感兴趣。

请注意文中提到的所有技巧绝大多数都是在简单、易于理解的代码环境中进行阐述的,因为它们在软件开发中确实很实用。但这并不意味着普通用户(非程序员、没有把 Vim 作为一般的文本编辑器)在他们的工作中用不到。

1、为文件设置特定的变量

有时候,在一个特定文件中,你可能想把输入的制表符用空格代替,或者想要把源代码文件使用两个空格缩进,即便编辑器的默认缩进是四个空格。

基本上我们在这儿讨论对针对文件的的更改。 Vim 提供的这个特性允许你对一个指定的文件更改特定的设置。这个特性叫做 “模式行Modeline” 。

比如,如果你想把输入的每一个制表符(Tab)用空格代替,那么你只需要在文件的前几行或最后几行加入下面的模式行:


# vim: set expandtab:

如果想把默认缩进从 4 个空格变成 2 个空格,可以在源文件中添加下面的模式行:


// vim: noai:ts=2:sw=2

在使用模式行时,请记住下面这几个重要的点:

模式行只能添加在文件中的前五行或者最后五行。 为了使用模式行这个特性,必须在 .vimrc 文件中添加 :set modeline 。 在以 root 用户身份对文件进行编辑的时候该特性失效。

了解更多的信息,请阅读该特性的官方文档

2、 关键字补全

当你开始写的复杂代码越来越多或者开始在一个大的源文件上编辑时,你会遇到一些变量名字。有时,要记住所有的变量名字不太容易,所以当需要输入变量名字的时候,你通常从已经使用过的地方复制过来。

幸运的是,使用 Vim 你只需要输入变量的几个起始字母即可。在’插入模式’中,按 Ctrl + n 或者Ctrl + p 可以得到一个匹配的关键词列表。 Ctrl + n 用来插入下一个匹配词; Ctrl + p 给出一个之前匹配的关键词列表。

下图是该特性的一个展示:

正如上面的屏幕截图清晰展示的那样,列表中也会出现其他源文件中包含的词。关于该特性的更多信息,请访问这儿

3、 搜索

假设你正在调试代码,其中一个需要做的工作是快速查看一个变量在一个文件中所有出现的地方。一个常用的方法是退出‘插入模式’,输入 /[变量名字] 命令,按回车 ,然后返回‘插入模式’,使用 n和 p 在关键字之间导航。

上面讲到的这种方法没毛病,但是还有一种更简单、更快捷的方法可以来完成这样的搜索。使用这种方法,首先你需要退出‘插入模式’,然后把光标移动到你想要搜索的词/变量下面,这并不费时。接下来,你只需要按 Shift + * 即可。

重复这样做,然后编辑器将会带你找到在文件中所有使用了这个词/变量的地方。

原文发布时间为:2017-01-27

本文来自云栖社区合作伙伴“Linux中国”


《Vim实用技巧(第2版)》——导读 Vim是高度可配置的,然而定制是一件很个性化的事情,因此我试图避免建议什么应该放进你的vimrc里,什么不应该。相反,本书关注的是Vim编辑器的核心功能。不管你是通过SSH登录远端服务器工作,还是在用本地安装了插件而增添了额外功能的GVim,这些功能都永远在那儿。
《Vim实用技巧(第2版)》——2.6 双剑合璧,天下无敌 如果想用 = 命令自动缩进整个文件,可以执行 gg=G (就是说,先用 gg 跳到文件开头,然后用 =G 自动缩进从光标位置到文件结尾的所有内容)。但是如果安装了textobj-entire插件的话,简单地执行 =ae 就可以了。运行这条命令时光标在哪儿并不重要,因为它总是作用于整个文件。
《Vim实用技巧(第2版)》——2.5 能够重复,就别用次数 在处理某些特定工作时,使用次数可以使按键次数变得最少,不过并不是非得这样不可。我们需要认真考虑次数与重复各自的优缺点。根据我们的讨论,d2w 和 2dw 是相同的,在执行完两者中的任一个后,可以按 u 键撤销,这样两个被删除的单词又会回来。
《Vim实用技巧(第2版)》——2.4 用次数做简单的算术运算 本节书摘来自异步社区《Vim实用技巧(第2版)》一书中的第2章,第2.4节,作者:【英】Drew Neil(尼尔)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
《Vim实用技巧(第2版)》——2.3 构造可重复的修改 要想充分利用 . 命令,事先常常需要进行一番周详的考虑。如果你发现自己要在几个地方做同样的小修改,就可以尝试构造你的修改,让它们能够被 . 命令重复执行。要识别出这类机会需要进行一定的实践,不过一旦养成了使修改可重复的习惯,你就会从 Vim 这里得到“奖赏”。
《Vim实用技巧(第2版)》——2.2 把撤销单元切成块 在不区分模式的文本编辑器中,输入一些单词后使用撤销命令,有两种可能。一种是它可能会撤销最后输入的字符;另一种做得更好点,它可能会把字符分成块,使每次撤销操作删除一个单词而不是一个字符。