
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
。