vim:ファイルグループコマンドの実行

vim:ファイルグループコマンドの実行

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 autochdirVimは自動的にディレクトリを切り替えます。

autocmd FileTypeが正しく拡張されません。

多くの~/.vim/ftplugin/{filetype}_whatever.vim;よりクリーンでスケーラビリティが優れていますが、必ず必要です。設定{filetype}/whatever.vim:help ftplugin-name:autocmd FileType {filetype}:filetype plugin on書くデフォルトのファイル形式プラグインのコンテンツを~/.vim/after/ftplugin/{filetype}.vim

おすすめ記事