2014-01-25 3 views
0

": help", ": NERDTree"또는 ": TlistOpen"과 같은 창 입력/종료 창에 대한 autocmd를 어떻게 비활성화 할 수 있습니까?특수 창에 대한 autocmd 사용 안 함

지금 당장 "eventignore"명령을 호출하기 전과 후에 (": help"이외에는 어떻게해야할지 모르겠다.) 명령을 호출했지만, 이동하는 동안 그 명령을 수행 할 방법을 알 수 없다. "CTRL-w"를 사용하여 그 결과, 내 autocmd는 입력 할 때마다 해고 당할 수 있습니다.

이 창과 공통점은 읽기 전용이거나 수행 할 수있는 작업에 대한 제한이 있다는 것입니다. 이 정보를 얻을 수 있다면 필자의 autocmd에 if 문을 넣을 수 있습니다.

+0

예, 이러한 플러그인을 인식하는 데 사용할 수있는 버퍼/창 정보 (창 이름, 버퍼 이름, 'b : something' 버퍼 로컬 옵션 ...)를 찾아야합니다.) 자동 커맨드에 의해 실행되는 함수에서 그것을 사용하십시오. – romainl

답변

0

먼저 설정 어떤 버퍼 로컬 변수 :

augroup MyAutocommands 
au! 
au BufNewFile,BufRead * let b:my_autocommands = DoMyAutocommands() 
" other autocommands 
augroup END 

DoMyAutocommands 기능을 만든다. 그럼 우선,

function! DoMyAutocommands() 
    if @buftype == 'help' 
    return 1 
    endif 
    " other conditions ... 
    return 0 
endfun 

당신의 autocommands의 각, 또는 전화 기능의 경우, exists('b:my_autocommands') && b:my_autocommands를 확인할 수 있습니다.

+0

저는 buftype에 대해 몰랐습니다. 그게 실제로 필요한 전부입니다. –

관련 문제