我正在从TextMate切换到Vim进行所有文本编辑。但是,我在TextMate中经常使用的一个功能是comment banner命令(ctr-shift-b
)。它会创建一个横幅并允许您在横幅内输入文本,横幅将调整为文本的长度。 Vim中是否有任何插件或任何类似的功能?如果没有,有没有办法我可以编程vim来制作评论横幅?任何建议都会很棒。谢谢!
答案 0 :(得分:6)
我的.vimrc
:
autocmd FileType vim map <leader>ccb I"<Del> <Esc>A "<Del><Esc>yyp0lv$hhr"yykPjj
autocmd FileType javascript,php,c map <leader>ccb I// <Esc>A //<Esc>yyp0llv$hhhr-yykPjj
autocmd FileType python,ruby,sh,zsh map <leader>ccb I# <Esc>A #<Esc>yyp0lv$hhr-yykPjj
autocmd FileType css map <leader>ccb I/* <Esc>A */<Esc>yyp0llv$r-$hc$*/<Esc>yykPjj
在.vimrc
中,它转变为:
vimrc banner
进入这个:
""""""""""""""""""
" vimrc banner "
""""""""""""""""""
在JS文件中,它转为:
javascript banner
进入这个:
//---------------------//
// javascript banner //
//---------------------//
等
" Creating underline/overline headings for markup languages
" Inspired by http://sphinx.pocoo.org/rest.html#sections
nnoremap <leader>== yyP^v$r=jyyp^v$r=
nnoremap <leader>** yyP^v$r*jyyp^v$r*
nnoremap <leader>= yyp^v$r=
nnoremap <leader>- yyp^v$r-
nnoremap <leader>^ yyp^v$r^
nnoremap <leader>" yyp^v$r"
我希望我能找到我找到它的地方的链接。
答案 1 :(得分:5)
我目前使用Snipmate.vim https://github.com/msanders/snipmate.vim
虽然我不完全确定有一个符合您确切需求的代码段,但它会 添加一个会这样做的人是微不足道的!
它有非常简单的脚本来添加你需要的东西。
您必须为代码段指定一个特定的组合键,这样当您在插入模式下处于该组合并点击Tab时,该插件会插入您需要的所有内容,并且它允许您更改以前的文本集。
因此,对于您给出的示例,我会给它一个说“banner”的组合。当我输入该单词并点击Tab时,我将被置于“评论标题”中,以便我可以输入并替换标题。
这个网站有一个关于一切如何运作的非常好的视频:http://www.catonmat.net/blog/vim-plugins-snipmate-vim/