如果我关于这个话题的最新帖子没有提醒你,我是Vim的粉丝。所以在你们中的一些人向我扔石头之前,我将向你们展示一系列“鲜为人知的Vim命令”。我的意思是,有些命令你可能以前没有遇到过,但它们可能对你有用。第二个免责声明,我不知道哪些命令你可能知道,哪些对你有用。所以这些命令实际上相对较少,但可能是非常有用的Vim命令。
保存文件退出有点丢人。最近刚学会这个命令。
:x相当于以下命令:
:wq保存当前文件并退出。
(译者注:这两个命令其实并不完全等价,在修改文件的时候是一样的。但是如果没有修改过,使用:x不会改变文件的修改时间,而使用:wq会改变文件的修改时间。)
基本计算器
在插入模式下,可以用Ctrl+r键再输入=,然后输入一个简单的公式。按Enter键,计算结果将入到文件中。例如,尝试输入:
Ctrl+r ‘=2+2’ ENTER
然后计算结果“4 ”会入到文件中。Ctrl+r ‘=2+2 ‘回车,计算结果“4”将插入到文件中。
查找重复的连续的单词
当你快速打字时,你很可能连续两次输入同一个单词,就像这样。这种错误可能骗过任何人,哪怕你自己重读。幸运的是,有一个简单的正则表达式可以用来防止这种错误。使用搜索命令(默认时间/)并输入:
\(\ & lt;\ w \+\ & gt;\)\_s*这将显示所有重复的单词。为了获得最佳结果,不要忘记输入以下命令:
将hlsearch设置为您的。vimrc文件并突出显示所有匹配项。
缩写最令人印象深刻的技巧之一是,您可以在Vim中定义缩写,它可以实时用其他东西替换您键入的内容。语法格式如下:
:ab[缩写][待替换的文本]一个常见的例子是:
:ab asap尽快会将您输入的“asap”替换为“尽快”。
在你忘记用 root 方式打开文件时的文件保存
这可能是论坛里一直流行的一个命令。每当你打开一个你没有写权限的文件(比如系统配置文件)并做了一些修改,Vim就不能被普通的“:w”命令保存了。
您不需要在root模式下重新打开文件并修改它,只需运行:
:w!Sudo tee%这将直接保存为根。
实时加密文本
如果您不希望其他人理解您屏幕上的内容,您可以通过使用ROT13和以下命令来使用内置选项对文本进行编码:
ggVGg?
gg 把光标移动到 Vim 缓冲区的第一行,V 进入可视模式,G 把光标移动到缓冲区的最后一行。因此,ggVG 使可视模式覆盖这个当前缓冲区。最后 g? 使用 ROT13 对整个区域进行编码。ggVGg?Gg将光标移动到Vim缓冲区的第一行,V进入可视模式,G将光标移动到缓冲区的最后一行。因此,ggVG使可视模式覆盖这个当前缓冲区。最后g?使用ROT13对整个区域进行编码。
请注意,它可以映射到最常用的键之一。它也适用于字母符号。撤销它的最好方法是使用撤销命令:u。
自动补全
这是另一个让我感到惭愧的功能,但是我发现身边很多人都不知道。Vim默认有自动补全的功能。确实这个功能很基础,可以用插件增强,但是也很有帮助。方法简单。Vim试图通过已经输入的单词来预测单词的结尾。比如第二次在同一个文件中输入“编译器”,只需输入“com”并保持插入模式即可。按Ctrl+n可以看到Vim已经为您完成了单词。很简单,但也很有用。
比较两个文件的不同
大多数人可能都知道Vimdiff命令,它可以在分离模式下打开vim,并比较两个文件之间的差异。语法如下:
$ Vimdiff [file 1] [file 2]但是以下vim命令也可以获得相同的结果:
:diff首先在Vim中打开原始文件。然后使用分离模式获取第二个文件:
:vsp [file 2]最后,输入:
:diff通过Ctrl+w切换缓冲区,并再次进入:
:diffthis以便突出显示两个文件的不同部分。
(译者注:您可以在缓冲区中直接使用命令:windo diffthis,而无需键入两次:diffthis。)
要停止比较,请使用:
:diffoff按时间倒回文件Vim将记录文件的更改,因此您可以轻松倒回以前的时间。这个命令非常直观。例如:
:早期1m会将文件回滚到1分钟前的状态。
请注意,您可以使用以下命令进行相反的转换:
:后来这篇文章最初由LCTT翻译,并由Linux中国首次发表。想加入翻译者的行列,为开源做点贡献?欢迎加入LCTT!
翻译工作和翻译出版物仅用于学习和交流目的。翻译工作符合CC协议。如果我们的工作侵犯了您的权益,请及时联系我们。
欢迎遵照CC协议转载。请在文中标注并保留原文/译文链接、作者/译者等信息。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。