2012-09-22 31 views
2

我想在vim中配置NERDCommenter以對某些文件類型使用替代評論樣式。什麼是這樣做的正確方法。我無法弄清楚如何調用autocmd的插件代碼。我正在試圖做的是這樣的:以上根據文件類型將NERDCommenter切換爲替代值

autocmd FileType dosbatch :call NERDCommenterAltDelims 

無法工作,但我發現我可以用命令獲取函數名稱:

map <Plug>NERDCommenterAltDelims 

返回:

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

有沒有方法可以使用map命令來執行地圖的值?

回答

1

或者,您爲什麼不只是切換dosbatch文件類型的默認和alt定義,因爲NERDCommenter提供了此擴展點。將以下內容放入~/.vimrc;必須在plugin/NERDCommenter.vim之前執行

let g:NERDCustomDelimiters = {'dosbatch': { 'left': '::', 'leftAlt': 'REM ' }} 
1

由於只有腳本中的本地函數,你必須通過:normal調用提供<Plug>映射:

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

爲了抑制Now using ... to delimit comments消息,使用silent execute代替。

+0

偉大的答案,因爲它要求有問題的功能。唯一的問題是,當autocmd執行時,我不認爲插件已經加載。無論如何,這與VimEnter鏈接? – cmcginty

+0

咦?只要檢測到批處理文件,就會觸發'FileType'事件。插件的初始負載發生在那之前(並且在啓動之前'VimEnter'之前,無論如何,我更喜歡我的其他解決方案,因爲它只需要運行一次。 –

0

大廈關閉@ INGO-karkat答案:

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

我的vim腳本技能是不存在的,所以有可能做到這一點更清潔的方式。隨意改善它。

0

看來,現在有一種新的更好的方式來使用NERDCommenter的功能,在我們自己的映射:

call NERDComment('n', 'altDelims') 

參見:

:h NERDComNERDComment