Golang 파일을 열 때마다 NERDtree를 열려고 합니다.
au FileType go exe 'NERDTree'
그러나 다른 디렉터리에서 Go 파일을 열면 여전히 현재 디렉터리가 표시됩니다. 디렉터리를 매개 변수로 전달할 수 있지만 열려는 파일의 디렉터리를 가져오는 방법을 모르겠습니다.
답변1
현재 파일 이름은 특수 %
이름(:help cmdline-special
); 전체 경로로 수정될 수 있으며 파일 이름 자체가 잘려 경로를 얻습니다: %:p:h
, cp.:help filename-modifiers
.
이는 내장 명령(예: )에 직접 전달될 수 있지만 :edit
불행히도 에는 그렇지 않습니다 :NERDTree
. 이렇게 하려면 명시적으로 표현한 expand()
다음 다음을 통해 결과를 명령줄에 삽입 해야 합니다 :execute
(귀하의 질문에는 필요하지 않음).
autocmd FileType go execute 'NERDTree' expand('%:p:h')
또는 직접 수행하면 :set autochdir
Vim이 자동으로 디렉토리를 전환합니다.
autocmd FileType이 제대로 확장되지 않습니다.
많은 ~/.vim/ftplugin/{filetype}_whatever.vim
;{filetype}/whatever.vim
:help ftplugin-name
:autocmd FileType {filetype}
더 깨끗하고 확장성이 뛰어나지만 반드시 필요합니다 :filetype plugin on
. 설정씌우다기본 파일 형식 플러그인의 콘텐츠를 ~/.vim/after/ftplugin/{filetype}.vim
.