2011-11-02 5 views
7

을 열고 내가 특정 파일 형식을 열 tagbar VIM 플러그인 출시를 가지고 싶습니다 때 VIM Tagbar가 시작 받기, 그래서 내의 .vimrc에 다음과 같은 추가 : 그러나는 특정 파일 형식

if has("gui_running") 
    autocmd BufEnter *.hs nested TagbarOpen 

를이 내가 예상했던대로 작동하지 않습니다. 사이드 윈도우는 열리지 만 사이드 윈도우는 아무 것도 표시하지 않고 커서는 그 안에 트랩됩니다. 클릭 또는 CTRL-W 이동 명령으로 창을 전환 할 수 없습니다.

그러나 TagbarOpen을 수동으로 실행하면 정상적으로 작동합니다.

다른 사람이 시도 했습니까? 위의 명령을 잘못 사용하면 문제가 발생합니까?

답변

6

재미있는 점은 예상하지 못한 편의 기능의 부작용입니다. 무슨 일이 일어나는가 : 만약 TagbarOpen이 윈도우가 이미 열린 상태에서 호출된다면 Tagbar는 아무 것도하지 않고 커서를 윈도우로 점프하게한다. 따라서 Haskell 창으로 전환하여 창을 벗어나려고 할 때마다 자동 명령이이 명령을 바로 실행합니다. 이 기능을 제거한 변경을 추진했습니다. 아마도 처음부터 유용하지 않았을 것입니다. 따라서 GitHub의 개발 버전을 시험해 보면 (https://github.com/majutsushi/tagbar) 작동해야합니다.

윈도우가 비어 있다는 다른 이유가 있습니다. 하스켈은 기본적으로 Exuberant Ctags에서 지원하지 않습니다. 하지만 누가 Tagbar와 함께 작동하는 Haskell을위한 멋진 대안을 작성했습니다 : https://github.com/bitc/lushtags.

3

실제로이 정확한 구성으로 php 파일 용 vimrc가 설정되었습니다. 기능/변수는로드와 Tagbar가 열리면, 커서는 PHP 소스 파일에서 유지 될 때 빔로드 'HS'또는 원하는 다른 파일 형식에 대한

autocmd FileType php call SetPHPOptions() 
function! SetPHPOptions() 
setlocal shiftwidth=4 tabstop=4 softtabstop=4 expandtab makeprg=php-xdebug\ % 
    :call tagbar#autoopen(0) 
endfunction 

대신 'PHP'. 에서 파일 형식 목록 :

$VIMRUNTIME/filetype.vim 

그것은 https://github.com/majutsushi/tagbar

에서 MacVim (스냅 샷 (72), 빔 7.4), 및 tagbar의 최신 빌드에서 실행 했