noppochan

院生のちょぼちょぼメモ

vimで編集中のファイルのディレクトリに移動する

概要
vimでファイル操作しながらコマンドモードでコンパイルや別のファイル操作をすることが頻繁である.随時変わる編集ファイルのパスをコマンドモードからカレントディレクトリに楽々設定する方法のメモ.

コマンドを指定して移動

予備知識として,%は現在編集中のバッファ(カレントファイル名),:hはファイル名の先頭(末尾の部分とすべての区切りが除かれたもの.つまりファイルがあるディレクトリを指定している感じ)であるから,%:hは開いているファイルのディレクトリに展開される.

従ってvimコマンドモードから以下のように操作すればよい.

:cd %:h

:cdはグローバルなカレントディレクトリを変更する.(他のウィンドウやバッファも変更される.) カレントウィンドウのカレントディレクトリ(localなカレントディレクトリ)だけを変えたい場合には,

:lcd %:h

と操作する.

%:hの部分は他に指定ができて,

バッファ 説明
% 現在編集中のバッファ
# 一つ前に編集していたバッファ(裏バッファ)
#{バッファ番号} 指定のバッファ(番号は:lsとかでとれるアレ)

また

パス指定 説明
:h ファイルのあるディレクトリへのパス
:t ファイル名を取得

KaoriyaのVimであれば

:CdCurrent

でカレントディレクトリの変更(:cd %:h)を行える.

現在のディレクトリパスを確認

: pwd

以上.