人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。

然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。


当前回答

:设置本地自动读取

自动重新加载当前缓冲区。。在查看日志文件时特别有用,它几乎可以从vim中为unix中的“tail”程序提供功能。

从vim中检查编译错误。根据perl语言设置makeprg变量

:setlocal makeprg=perl\-c\%

对于PHP

设置makeprg=php\-l\%设置错误格式=%m\\%f\\line\%l

发出“:make”将运行相关的makeprg,并在快速修复窗口中显示编译错误/警告,并可以轻松导航到相应的行号。

其他回答

:r! <command>

将外部命令的输出粘贴到缓冲区中。

做一些数学运算,直接在文本中得到结果:

:r! echo $((3 + 5 + 8))

获取编写Makefile时要编译的文件列表:

:r! ls *.c

不要在维基百科上查找你阅读的事实,直接将其粘贴到你正在编写的文档中:

:r! lynx -dump http://en.wikipedia.org/wiki/Whatever

我最近发现了一件我觉得很酷的事:

:earlier 15m

将文档还原为15分钟前的状态。可以为您想要回滚的时间量提供各种参数,并且取决于撤消级别。可以用相反的命令反转:稍后

从十六进制值输入字符(插入模式):

<C-Q>x[type the hexadecimal byte]

:! [command]在Vim中执行外部命令。

但是在冒号后面加一个点:。![command],它会将命令的输出转储到当前窗口中。那就是:!

例如:

:.! ls

我经常使用此功能,例如将当前日期添加到我正在键入的文档中:

:.! date

我今天通过NSFAQ找到了这个:

注释代码块。

点击CTRL-V进入分块视觉模式。

标记要注释的块。

点击I(大写I)并在行的开头输入注释字符串。(//对于C++)

按ESC键,所选的所有行都将//前置到行的前面。