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

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


当前回答

:%TOhtml

创建当前文件的html呈现。

其他回答

这不是一个秘密,但我喜欢将以下映射放到我的.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>

使用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

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

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

command FormatXml :call FormatXml()

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

gqap(或gwap)

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

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

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

尝试使用perltdy通过=正常模式命令进行格式化

:set equalprg=perltidy