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

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


当前回答

使用鼠标右键切换gVim中的插入模式,设置如下在~/.gvimrc中:

"
"------------------------------------------------------------------
" toggle insert mode <--> 'normal mode with the <RightMouse>-key
"------------------------------------------------------------------
nnoremap  <RightMouse> <Insert>
inoremap  <RightMouse> <ESC>
"

其他回答

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

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

command FormatXml :call FormatXml()

%当您希望在项目的两个不同副本之间比较文件而不磨损粉色(从项目1的根)时,也是很好的:

:vert diffs /project2/root/%

全部替换

  :%s/oldtext/newtext/igc

给出一个替换所有:)

在构建过程缓慢的项目上工作时,我总是在后台构建,并将输出通过管道发送到名为errors.err的文件(类似于make debug 2>&1|tee errors.err)。这使得我可以在构建过程中继续编辑或审阅源代码。当它准备好后(使用GTK上的pynotify通知我它已经完成),我可以使用quickfix在vim中查看结果。首先发出:cf[ile],读取错误文件并跳转到第一个错误。我个人喜欢使用cwindow在单独的窗口中获得构建结果。

" insert range ip's
"
"          ( O O )
" =======oOO=(_)==OOo======

:for i in range(1,255) | .put='10.0.0.'.i | endfor