Vim のカレントディレクトリは、最初に開いたファイルがあるディレクトリに設定されます。 カレントディレクトリは、例えば下記のようなコマンドを実行したときに、始点となるディレクトリとして使用されます。
:vim pattern **/*.txt
などで複数ファイルを grep するとき:e sample.txt
でファイルを開くとき:cd dirname
でカレントディレクトリを移動するとき:terminal
でターミナルを開くときこのカレントディレクトリは、別のディレクトリにあるファイルを開いた場合も変化しません。
:vim (:vimgrep)
コマンドでファイルを検索してもなぜかヒットしないというときは、カレントディレクトリが正しくセットされてない可能性があります。
カレントディレクトリは :pwd
で確認することができます。
:cd %:h
と実行すると、現在編集中のファイルがあるディレクトリ (%:h
) へ移動することができます。
カレントウィンドウ(カーソルのあるウィンドウ)のみを対象にカレントディレクトリを移動したいときは、:cd
の代わりに :lcd
を使用します。
autochdir
オプションをセットしておくと、新しくウィンドウを開いた時や、タブを切り替えたときなどに、そのファイルがあるディレクトリへ自動で移動してくれるようになります。
" Change the current working directory automatically
set autochdir
現在の設定は :set autochdir?
で確認できます。
autocmd を使ってディレクトリ移動を自動化する方法 もありますが、autochdir
が使える Vim 環境であればそちらを使った方が簡単です。