人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
当前回答
这不是一个秘密,但我喜欢将以下映射放到我的.vimrc文件中,这样我可以随时点击“-”(减号)打开文件浏览器,显示与我刚才编辑的文件相邻的文件。在文件浏览器中,我可以点击另一个“-”来向上移动一个目录,提供对复杂目录结构的无缝浏览(就像现在MVC框架所使用的那样):
map - :Explore<cr>
这些可能对某人也有用。我喜欢滚动屏幕并同时移动光标:
map <c-j> j<c-e>
map <c-k> k<c-y>
选项卡导航-我喜欢选项卡,我需要在它们之间轻松移动:
map <c-l> :tabnext<enter>
map <c-h> :tabprevious<enter>
仅在Mac OS X上:类似Safari的选项卡导航:
map <S-D-Right> :tabnext<cr>
map <S-D-Left> :tabprevious<cr>
其他回答
我的方法是使用宏而不是搜索-将宏与视觉模式相结合有时会更有效。
In Insert mode
<C-A> - Increments the number under cursor
<C-X> - Decrements the number under cursor
如果我们想在vim中生成序列号,这将非常有用假设我们想插入1-10行,数字从1到10[如第1行的“1”,第2行的“2”…]在第一行插入“0”并复制该行和过去的9次因此,所有行都将显示“0”。
运行以下Ex命令
:g/^/exe "norm " . line(".") . "\<C-A>"
让我们看看一些非常小的IDE编辑器如何进行列转换。
:%s/\(.*\)^I\(.*\)/\2^I\1/
解释
\(和\)是如何记住正则表达式中的内容。1、2等是如何检索记忆中的内容。
>>> \(.*\)^I\(.*\)
记住所有内容,然后是^I(tab),然后是所有内容。
>>> \2^I\1
用“你记得的第二件事”替换上面的东西,然后是“你记得第一件事”——本质上是做一个换位。
我确信有人已经发布了这篇文章,但这里是这样的。
请选择任何构建系统;制造,mvn,蚂蚁,随便什么。在项目目录的根目录中,创建一个始终使用的命令文件,如下所示:
根项目上进行构建mvn清洁安装等等
要进行构建,请将光标放在线上并键入!!即过滤该线路;将其写入shell并替换为结果。
构建日志将替换行,随时可以滚动、搜索等。
查看完日志后,键入u以撤消,然后返回命令文件。
也许99%的Vim用户都不知道,但这是我每天使用的东西,任何Linux+Vim超级用户都必须知道。
基本命令,但非常有用。
:w !sudo tee %
我经常在编辑一个我没有写权限的文件之前忘记sudo。当我保存该文件时遇到权限错误时,我只需发出vim命令即可保存该文件,而无需将其保存到临时文件,然后再将其复制回来。
显然,您必须在安装了sudo的系统上,并且具有sudo权限。