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

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


当前回答

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

:e ++enc=cp1250 %:p

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

其他回答

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

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

我确信有人已经发布了这篇文章,但这里是这样的。

请选择任何构建系统;制造,mvn,蚂蚁,随便什么。在项目目录的根目录中,创建一个始终使用的命令文件,如下所示:

根项目上进行构建mvn清洁安装等等

要进行构建,请将光标放在线上并键入!!即过滤该线路;将其写入shell并替换为结果。

构建日志将替换行,随时可以滚动、搜索等。

查看完日志后,键入u以撤消,然后返回命令文件。

我什么都用Vim。编辑电子邮件时,我使用:

gqap(或gwap)

即使使用引号引导字符,也可以在逐段基础上轻松正确地重新格式化。为了实现此功能,我还添加了:

-c’集合fo=tcrq’-c’集合tw=76’

到外部调用编辑器的命令。一个值得注意的添加是将“a”添加到fo(formatoptions)参数中。这将在您键入和浏览内容时自动重新格式化段落,但可能会干扰或导致消息中错误或奇怪格式的问题。

假设您已经编译了Perl和/或Ruby支持,:rubydo和:perldo将在范围内的每一行(默认为整个缓冲区)运行一个Ruby或Perl一行,$_绑定到当前行的文本(减去换行符)。操纵$_将更改该行的文本。

您可以使用它来完成某些在脚本语言中很容易做到的事情,但使用Vim内置程序就不那么明显了。例如,要颠倒一行中单词的顺序:

:perldo $_ = join ' ', reverse split

要在每行末尾插入8个字符(a-Z)的随机字符串,请执行以下操作:

:rubydo $_ += ' ' + (1..8).collect{('A'..'Z').to_a[rand 26]}.join

一次只能执行一行操作,不能添加新行。