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

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


当前回答

为了将文本从Vim复制到剪贴板供其他应用程序使用,请选择要在视觉模式下复制的文本,然后按“+y”。这样,您可以轻松地将文本粘贴到其他应用程序。

如果您垂直拆分了窗口,并且希望从右侧窗口复制某些内容,则这特别有用。使用set mouse=r不会帮助您解决这种情况,因为它也会选择左侧窗口中的所有内容。

注意,必须使用xterm支持编译vim。

其他回答

我喜欢使用“sudobash”,我的系统管理员讨厌这样。他锁定了“sudo”,因此它只能与少数命令(ls、chmod、chown、vi等)一起使用,但无论如何我都能使用vim获得根shell:

bash$ sudo vi +'silent !bash' +q
Password: ******
root#

这是一个用不同编码重新打开当前文件的好技巧:

:e ++enc=cp1250 %:p

当您必须使用传统编码时,这很有用。支持的编码列在编码值下的表中(请参阅帮助编码值)。类似的事情也适用于++ff,这样您就可以使用Windows/Unix重新打开文件了。如果您第一次出错,则行结束(请参阅帮助ff)。

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

:earlier 15m

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

把这个放到.vimrc中,有一个命令来漂亮地打印xml:

function FormatXml()
    %s:\(\S\)\(<[^/]\)\|\(>\)\(</\):\1\3\r\2\4:g
    set filetype=xml
    normal gg=G
endfunction

command FormatXml :call FormatXml()

也许99%的Vim用户都不知道,但这是我每天使用的东西,任何Linux+Vim超级用户都必须知道。

基本命令,但非常有用。

:w !sudo tee %

我经常在编辑一个我没有写权限的文件之前忘记sudo。当我保存该文件时遇到权限错误时,我只需发出vim命令即可保存该文件,而无需将其保存到临时文件,然后再将其复制回来。

显然,您必须在安装了sudo的系统上,并且具有sudo权限。