特定のバッファの現在の作業ディレクトリを変更し、他のバッファの以前の値に変更するにはどうすればよいですか?VIM:現在のバッファの作業ディレクトリのみを変更する
より正確には、ファイルタイプを含むバッファがアクティブなときに現在の作業ディレクトリを変更する特定のファイルタイプに対して自動コマンドを使用することです。他のバッファを使って作業するときは元に戻してください。
私は私のvimrcでそのようなものを持っていた:
autocmd BufEnter *.py :lcd%:p:h
autocmd BufLeave *.py :lcd-
ここでの考え方は、私はPythonのファイルで作業する場合、ファイルのディレクトリに切り替えて、何か他のもの、例えば上で作業するときに、前のディレクトリに移動したかったということですテキスト、vimLなど。明らかに、それは動作しませんでした。私もBufWinLeave
を使ってみましたが、何も変わっていませんでした。
ここで何が間違っていると指摘できますか?それとも簡単な解決法がありますか?
augroup CDRooter
autocmd!
autocmd BufWinEnter * if &filetype == 'python' | lcd %:p:h | else | lcd! | endif
augroup END
注:
::より多くのヘルプを参照してください
lcd'はのみ*の.pyファイルに影響を与え、なぜあなたも他のバッファのためのCWDを元に戻すことを試みます!そのバッファのCWDが決して変更されなかった場合、あなたは何に戻りますか? –
':lcd'はバッファローカルではなくウィンドウローカルであることに注意してください。 – romainl
@ work.bin romainlとして言及されたウィンドウローカル、バッファまたはファイルローカルではありません。同じウィンドウで、私はさまざまなファイルタイプのいくつかのバッファを持つことができます。そして、私はcwdを.pyファイルを除いてすべてのバッファで同じにしたいので、CWDを.pyファイルを含むディレクトリに変更したい。 – mfedoten