問題
バッファをあちこちいったりきたりしていると、カレントディレクトリ(や、カレントディレクトリを基点にしたプロジェクト)単位でなんかやるみたいなプラグインを使ってる時にこまる。
解決
プロジェクト単位で自動的にlcd
すると便利そう。というわけで、以下のような設定をほどこす(Uniteユーザ限定だけど…)。
unite#util#path2project_directory(expand('%'))
でプロジェクトのルートを取得lcd
で移動
function! ChangeCurrentDirectoryToProjectRoot()
let root = unite#util#path2project_directory(expand('%'))
execute 'lcd' root
endfunction
:au BufEnter * :call ChangeCurrentDirectoryToProjectRoot()
lcd
ってのは、cd
とは違って、カレントウィンドウのみ変更するそうです。
:lc[d][!] {path} コマンド |:cd| と似ているが、カレントウィンドウのカレ
ントディレクトリのみを変更する。別のウィンドウのカレン
トディレクトリに変化はない。 {Vi にはない}
議論
自動的にやるとなんか困ることあるのかな。