LoginSignup
13
13

More than 5 years have passed since last update.

Vimで、バッファをを移動した時に自動的にプロジェクトルートをカレントディレクトリにする

Last updated at Posted at 2013-12-02

問題

バッファをあちこちいったりきたりしていると、カレントディレクトリ(や、カレントディレクトリを基点にしたプロジェクト)単位でなんかやるみたいなプラグインを使ってる時にこまる。

解決

プロジェクト単位で自動的に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 にはない}

議論

自動的にやるとなんか困ることあるのかな。

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13