人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
人们谈论常见技巧的问题很多,特别是“Vim+ctags提示和技巧”。
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我所说的是一位经验丰富的Unix用户(无论是开发人员、管理员,还是两者都有),他们认为自己知道99%的人从未听说过或梦想过的东西。这不仅让他们的工作更容易,而且很酷,很粗糙。毕竟,Vim位于世界上最黑暗的角落丰富的操作系统中,因此它应该具有只有少数特权人士知道并想与我们分享的复杂性。
当前回答
我的方法是使用宏而不是搜索-将宏与视觉模式相结合有时会更有效。
其他回答
当我在项目中工作时,我经常使用许多窗口,有时我需要调整它们的大小。以下是我使用的:
map + <C-W>+
map - <C-W>-
这些映射允许增加和减少当前窗口的大小。这很简单,但很快。
我使用vim进行几乎所有的文本编辑,所以我经常使用复制和粘贴。问题是默认情况下vim经常会通过粘贴扭曲导入的文本。阻止这种情况的方法是使用
:set paste
在粘贴数据之前。这将使它不致混乱。
注意,您必须发出:set nopaste以恢复自动缩进。粘贴预格式化文本的替代方法是剪贴板寄存器(*和+)和:r!cat(您必须用^D结束粘贴的片段)。
打开高对比度配色方案有时也很有用。这可以通过
:color blue
我注意到它不适用于我使用的所有版本的vim,但它适用于大多数版本。
:r! <command>
将外部命令的输出粘贴到缓冲区中。
做一些数学运算,直接在文本中得到结果:
:r! echo $((3 + 5 + 8))
获取编写Makefile时要编译的文件列表:
:r! ls *.c
不要在维基百科上查找你阅读的事实,直接将其粘贴到你正在编写的文档中:
:r! lynx -dump http://en.wikipedia.org/wiki/Whatever
使用shebang创建一个函数来执行当前缓冲区(假设设置了一个),并使用crtl-x调用它。
map <C-X> :call CallInterpreter()<CR>
au BufEnter *
\ if match (getline(1) , '^\#!') == 0 |
\ execute("let b:interpreter = getline(1)[2:]") |
\ endif
fun! CallInterpreter()
if exists("b:interpreter")
exec("! ".b:interpreter." %")
endif
endfun
我经常想突出显示一个特定的单词/函数名,但还不想搜索到它的下一个实例:
map m* *#