设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

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

2015-1-21 16:16| 发布者: joejoe0332| 查看: 2109| 评论: 0|原作者: wangjiezhe|来自: Linux中国

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


自动补全

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


比较两个文件的不同

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

  1. $ vimdiff [文件1] [文件2]

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

  1. :diffthis

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

  1. :vsp [文件2]

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

  1. :diffthis

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

  1. :diffthis

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

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

要停止比较,使用:

  1. :diffoff


按时间回退文件

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

  1. :earlier 1m

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

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

  1. :later

删除标记内部的文字

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

  1. di[标记]

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

  1. di(

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

  1. di{

和:

  1. di"


删除指定标记前的内容

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

  1. dt[标记]

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

  1. dt.

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


把 Vim 变为十六进制编辑器

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

  1. :%!xxd

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

  1. :%!xxd -r




酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号