人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
当前回答
%当您希望在项目的两个不同副本之间比较文件而不磨损粉色(从项目1的根)时,也是很好的:
:vert diffs /project2/root/%
其他回答
有时,.vimrc中的设置会被插件或自动命令覆盖。要调试这一点,一个有用的技巧是将:verbose命令与:set结合使用。例如,要确定cindent在何处设置/取消设置:
:verbose set cindent?
这将输出如下内容:
cindent
Last set from /usr/share/vim/vim71/indent/c.vim
这也适用于地图和高光。(感谢joeytwiddle指出这一点。)例如:
:verbose nmap U
n U <C-R>
Last set from ~/.vimrc
:verbose highlight Normal
Normal xxx guifg=#dddddd guibg=#111111 font=Inconsolata Medium 14
Last set from ~/src/vim-holodark/colors/holodark.vim
让我们看看一些非常小的IDE编辑器如何进行列转换。
:%s/\(.*\)^I\(.*\)/\2^I\1/
解释
\(和\)是如何记住正则表达式中的内容。1、2等是如何检索记忆中的内容。
>>> \(.*\)^I\(.*\)
记住所有内容,然后是^I(tab),然后是所有内容。
>>> \2^I\1
用“你记得的第二件事”替换上面的东西,然后是“你记得第一件事”——本质上是做一个换位。
:sp%:h-目录列表/文件选择器,使用当前文件的目录
(属于rampion的cd提示下的评论,但我还没有评论权限)
我确信有人已经发布了这篇文章,但这里是这样的。
请选择任何构建系统;制造,mvn,蚂蚁,随便什么。在项目目录的根目录中,创建一个始终使用的命令文件,如下所示:
根项目上进行构建mvn清洁安装等等
要进行构建,请将光标放在线上并键入!!即过滤该线路;将其写入shell并替换为结果。
构建日志将替换行,随时可以滚动、搜索等。
查看完日志后,键入u以撤消,然后返回命令文件。
我的方法是使用宏而不是搜索-将宏与视觉模式相结合有时会更有效。