如果我的关于这个话题的最新帖子没有提醒到你的话,那我明确地说,我是一个 Vim 的粉丝。所以在你们中的某些人向我扔石头之前,我先向你们展示一系列“鲜为人知的 Vim 命令”。我的意思是,一些你可能以前没有碰到过的命令,但可能对你来说很有用。作为第二免责声明,我不知道哪些命令是你可能知道的,以及哪些是对你来说有用的。因此这些命令实际上是一些相对少见,但很可能很有用的 Vim 命令。

 保存文件并退出

  说起来有些惭愧,我也是最近才学到这个命令

  : x

  和下面的命令是等价的:

  : wq

  都是保存当前文件并退出。

  (译者注:这两个命令实际上并不完全等价,当文件被修改时两个命令时相同的。但如果未被修改,使用 : x 不会更改文件的修改时间,而使用 :wq 会改变文件的修改时间。)

 基本计算器

  在插入模式下,你可以使用 Ctrl+r 键然后输入 =,再输入一个简单的算式。按 Enter 键,计算结果就会插入到文件中。例如,尝试输入:

  然后计算结果“4 ”会被插入到文件中。

 查找重复的连续的单词

  当你很快地打字时,很有可能会连续输入同一个单词两次,就像 this this。这种错误可能骗过任何一个人,即使是你自己重新阅读一遍也不可避免。幸运的是,有一个简单的正则表达式可以用来预防这个错误。使用搜索命令(默认是 /)然后输入:

  这会显示所有重复的单词。要达到最好的效果,不要忘记把下面的命令:

  放到你的 .vimrc 文件中高亮所有的匹配。

 缩写

  一个很可能是最令人印象深刻的窍门是你可以在 Vim 中定义缩写,它可以实时地把你输入的东西替换为另外的东西。语法格式如下:

  一个通用的例子是:

  会把你输入的 “asap” 替换为 “as soon as possible”。

 在你忘记用 root 方式打开文件时的文件保存

  这可能是一个在论坛中一直受欢迎的命令。每当你打开一个你没有写入权限的文件(比如系统配置文件)并做了一些修改,Vim 无法通过普通的 “:w” 命令来保存。

  你不需要重新以 root 方式打开文件再进行修改,只需要运行:

  这会直接以 root 方式保存。

 实时加密文本

  如果你不想让别人看懂你的屏幕上的内容,你可以使用一个内置的选项,通过下面的命令使用 ROT13来对文本进行编码:

  gg 把光标移动到 Vim 缓冲区的第一行,V 进入可视模式,G 把光标移动到缓冲区的最后一行。因此,ggVG 使可视模式覆盖这个当前缓冲区。最后 g? 使用 ROT13 对整个区域进行编码。

  注意它可以被映射到一个最常使用的键。它对字母符号也可以很好地工作。要对它进行撤销,最好的方法就是使用撤销命令:u。

 自动补全

  这是另外一个令我感到惭愧的功能,但我发现周围很多人并不知道。Vim 默认有自动补全的功能。的确这个功能是很基本的,并且可以通过插件来增强,但它也很有帮助。方法很简单。Vim 尝试通过已经输入的单词来预测单词的结尾。比如当你在同一个文件中第二次输入 “compiler” 时,仅仅输入 “com” 然后保持在插入模式,按 Ctrl+n 键就可以看到 Vim 为你补全了单词。很简单,但也很有用。

 比较两个文件的不同

  你们中的大多数很可能都知道 vimdiff 命令,它可以使用分离模式打开 Vim 并比较两个文件的不同。语法如下:

  但同样的结果也可以通过下面的 Vim 命令来获得:

  首先在 Vim 中打开原始文件。然后使用分离模式带来第二个文件:

  最后在第一个缓冲区里输入:

  通过 Ctrl+w 来切换缓冲区并再次输入:

  这样两个文件中不同的部分就会被高亮。

  (译者注:可以直接在一个缓冲区里使用命令 :windo diffthis,而不用输入 :diffthis 两次)

  要停止比较,使用:

 按时间回退文件

  Vim 会记录文件的更改,你很容易可以回退到之前某个时间。该命令是相当直观的。比如:

  会把文件回退到 1 分钟以前的状态。

  注意,你可以使用下面的命令进行相反的转换:

 删除标记内部的文字

  当我开始使用 Vim 时,一件我总是想很方便做的事情是如何轻松的删除方括号或圆括号里的内容。转到开始的标记,然后使用下面的语法:

  比如,把光标放在开始的圆括号上,使用下面的命令来删除圆括号内的文字:

  如果是方括号或者是引号,则使用:

和:

 删除指定标记前的内容

  和删除标记内部有些相似,但目的不同。命令如下:

  会删除所有光标和标记之间的内容(保持标记不动),如果在同一行有这个标记的话。例如

  会删除至句子的末尾,但保持 ‘.’ 不动。

 把 Vim 变为十六进制编辑器

  这不是我最喜欢的窍门,但有时会很有趣。你可以把 Vim 和 xxd 功能连起来来把文件转换为十六进制模式。命令如下:

  类似的,你可以通过下面的命令恢复原来的状态:

 把光标下的文字置于屏幕中央

  我们所要做的事情如标题所示。如果你想强制滚动屏幕来把光标下的文字置于屏幕的中央,在可视模式中使用命令(译者注:在普通模式中也可以):

  zz

 跳到上一个/下一个位置

  当你编辑一个很大的文件时,经常要做的事是在某处进行修改,然后跳到另外一处。如果你想跳回之前修改的地方,使用命令:

  来回到之前修改的地方

  类似的:

  会回退上面的跳动。

 把当前文件转化为网页

  这会生成一个 HTML 文件来显示文本,并在分开的窗口显示源代码:

  (译者注:原文是 :%Tohtml,但在我的电脑上是 :%TOhtml)

盘点15个不起眼但非常强大的 Vim 命令相关推荐

  1. 一些不起眼但非常有用的 Vim 命令

    如果我的关于这个话题的最新帖子没 有提醒到你的话,那我明确地说,我是一个 Vim 的粉丝.所以在你们中的某些人向我扔石头之前,我先向你们展示一系列"鲜为人知的 Vim 命令".我的 ...

  2. linux强大的convert命令(可以对图像做各种处理!)

    附:其他ImageMagic工具的应用:https://blog.csdn.net/dongfang1984/article/details/84798174 强大的convert命令  conver ...

  3. 【 Vim 配置详解 】强大的vim配置文件,让编程更随意

    Vim 配置详解 首 先安装完整版本的VIM  如果是在Linux下,可以安装VIM-Enhance使其扩展为完整版本的 VIM,如果在Windows下,直接安装它的Binary就行了. 当然自己编译 ...

  4. 超级强大的vim配置(vimplus)

    From : http://www.cnblogs.com/highway-9/p/5984285.html From : http://www.cnblogs.com/ma6174/archive/ ...

  5. linux中强大且常用命令:find、grep

    为什么80%的码农都做不了架构师?>>>    linux中强大且常用命令:find.grep 转载于:https://my.oschina.net/michao/blog/7752 ...

  6. Linux查看DNS地址以及端口,nslookup命令以及更强大的dig命令

    先说结论:DNS端口一般默认为53,默认采用UDP协议: 下面说查看方式: 一.使用nslookup命令查看 nslookup baidu.com 返回结果为: 可以看到,我的服务器DNS地址是100 ...

  7. linux批量删除screen,你不知道的linux系统中强大的screen命令

    linux系统中强大的screen命令可能很多用户还没感受到,下面介绍的就是linux系统中强大的screen命令,具体内容如下所述. 因为做二代测序分析的原因,经常需要运行很长时间的程序.由于时间很 ...

  8. chatgpt赋能python:PythonSh-一个强大的Shell命令助手

    Python Sh - 一个强大的Shell命令助手 Python Sh 是一个基于 Python 的 CLI 工具,它可以让 Python 开发人员更加便利地使用 Shell 命令.Python S ...

  9. 强大的strace命令用法详解

    强大的strace命令用法详解_Linux教程_Linux公社-Linux系统门户网站 strace是什么? 按照strace官网的描述, strace是一个可用于诊断.调试和教学的Linux用户空间 ...

最新文章

  1. 阿里2022“研究型实习生”计划公布,开放200多个科研选题
  2. python写了代码_Python写代码的用法建议
  3. js array 的理解
  4. jquery监听滚动条
  5. 老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战1-爬取汽车之家新闻数据...
  6. neon浮点运算_ARM 浮点运算详解
  7. Pycharm怎么改背景颜色(超详细)
  8. 20145106java实验四
  9. Android学习笔记---23_网络通信之网络图片查看器
  10. linux中哪个命令可以压缩部分文件,可以使用Linux解压缩命令,解压缩任意格式的压缩文件。...
  11. C# App.config 详解
  12. 20190909 SpringBoot集成Swagger
  13. Webpower中国区发布《2015年中国酒店旅游行业邮件营销市场报告》
  14. 情感分类(Sentiment Classification)
  15. 文件打不开只读或服务器未响应,Mac的Word经常未响应怎么办
  16. python求解一元二次方程
  17. Panoramic Imaging及其应用于场景理解的综述
  18. Java 求解自幂数(水仙花数)
  19. FPGA的复位设计要醒目点啦
  20. Sigmoid 与 Softmax 的区别

热门文章

  1. HALCON示例程序classify_citrus_fruits.hdev应用常规gmm分类器进行水果分类
  2. matlab常用函数——软件常用函数
  3. AWS S3 Windows系统下的文件夹上传基于python
  4. matlab铣削,基于MATLAB的微细铣削力分析
  5. js粘贴板为什么获取不到图片信息_【第1829期】复制黏贴上传图片和跨浏览器自动化测试...
  6. 两个二进制数异或的结果
  7. Markdown 基础学习
  8. 【共读Primer】55.[6.4]函数重载--重载与作用域 Page210
  9. Java中数据类型的取值范围
  10. 程序猿是如何解决SQLServer占CPU100%的