2012-09-22 2 views
2

특정 파일 형식에 대체 설명 스타일을 사용하려면 vim에 NERDCommenter를 구성하고 싶습니다. 이렇게하는 올바른 방법은 무엇입니까? autocmd에서 플러그인 코드를 호출하는 방법을 알 수 없습니다. 난 할 노력하고있어이 같은 것입니다 :파일 형식에 따라 NERDCommenter를 다른 값으로 전환

autocmd FileType dosbatch :call NERDCommenterAltDelims 

는 위의 일을하지,하지만 난 명령으로 함수 이름을 얻을 수 있습니다 발견 :

map <Plug>NERDCommenterAltDelims 

반환

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

map 명령을 사용하여 맵 값을 실행할 수있는 방법이 있습니까? 단지 스크립트를 로컬 기능이 있기 때문에

답변

1

또는 NERDCommenter가이 확장 점을 제공하므로 dosbatch 파일 유형에 대한 기본 정의와 alt 정의를 전환하지 않는 이유는 무엇입니까? ~/.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

건물 @ 잉고 - karkat 대답 오프 :

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

내 vim 스크립트 기술이 존재하지 않는, 그래서이 할 수있는 청소기 방법이있을 수 있습니다. 기분 전환하십시오.

0

우리 자신의 매핑에 NERDCommenter의 기능을 사용하는 새로운 더 좋은 방법은 지금이 보인다 :

call NERDComment('n', 'altDelims') 

참조 :

:h NERDComNERDComment 
관련 문제