2

我想在 vim 中配置 NERDCommenter 以对某些文件类型使用替代注释样式。这样做的正确方法是什么。我不知道如何从autocmd. 我想做的是这样的:

autocmd FileType dosbatch :call NERDCommenterAltDelims

以上无法正常工作,但我发现我可以使用以下命令获取函数名称:

map <Plug>NERDCommenterAltDelims

返回:

:call <SNR>17_SwitchToAlternativeDelimiters(1)<CR>

有没有办法使用map命令来执行map的值?

4

4 回答 4

1

由于只有脚本本地功能,您必须<Plug>通过以下方式调用提供的映射:normal

:autocmd FileType dosbatch execute "normal \<Plug>NERDCommenterAltDelims"

要禁止显示Now using ... to delimit comments消息,请silent execute改用。

于 2012-09-22T08:12:59.113 回答
1

或者,您为什么不直接切换文件类型的默认和 alt 定义dosbatch,因为 NERDCommenter 提供了这个扩展点。将以下内容放入您的~/.vimrc; 它必须在之前 plugin/NERDCommenter.vim执行。

let g:NERDCustomDelimiters = {'dosbatch': { 'left': '::', 'leftAlt': 'REM ' }}
于 2012-09-22T08:24:26.887 回答
0

基于@ingo-karkat 答案:

autocmd FileType dosbatch autocmd VimEnter * execute "normal \<Plug>NERDCommenterAltDelims"

我的 vimscript 技能不存在,所以可能有一种更清洁的方法来做到这一点。随意改进它。

于 2012-09-24T20:11:05.443 回答
0

似乎现在有一种新的更好的方法可以在我们自己的映射中使用 NERDCommenter 的功能:

call NERDComment('n', 'altDelims')

看:

:h NERDComNERDComment
于 2014-01-23T08:29:45.193 回答