我想在vim中配置NERDCommenter,以便对某些文件类型使用替代注释样式。正确的方法是什么。我不知道如何从autocmd
调用插件代码.我想做的是这样的:
autocmd FileType dosbatch :call NERDCommenterAltDelims
以上方法不起作用,但我发现我可以使用以下命令获取函数名称:
map <Plug>NERDCommenterAltDelims
返回:
:call <SNR>17_SwitchToAlternativeDelimiters(1)<CR>
有没有办法使用 map 命令来执行映射的值?
,为什么不直接切换dosbatch
文件类型的默认和alt定义,因为NERDCommenter提供了这个扩展点。将以下内容放入您的~/.vimrc
;它必须在plugin/NERDCommenter.vim
之前执行。
let g:NERDCustomDelimiters = {'dosbatch': { 'left': '::', 'leftAlt': 'REM ' }}
由于只有脚本本地函数,因此必须通过:normal
调用提供的<Plug>
映射:
:autocmd FileType dosbatch execute "normal <Plug>NERDCommenterAltDelims"
若要禁止显示Now using ... to delimit comments
消息,请改用silent execute
。
建立在@ingo-karkat 答案的基础上:
autocmd FileType dosbatch autocmd VimEnter * execute "normal <Plug>NERDCommenterAltDelims"
我的 vimscript 技能不存在,所以可能有更干净的方法来做到这一点。随意改进它。
现在似乎有一种新的更好的方法来使用NERDCommenter在我们自己的映射中:
call NERDComment('n', 'altDelims')
看:
:h NERDComNERDComment