パーソナルツール

CD.vim : ファイルを開くと、そのファイルと同じディレクトリに移動

— カテゴリ: ,
作者: 小見 拓 最終変更 2012年01月10日 02時01分

vimエディタでファイルをオープンした時に、エディタのカレントディレクトリを、 その編集するファイルのあるディレクトリに変更するスクリプトです。 (Windows, Mac)

概要

CD.vim : CD to whatever directory the current buffer is using.
http://www.vim.org/scripts/script.php?script_id=65

現在編集中のバッファのディレクトリに移動するスクリプトです。

次のような人には役に立つことでしょう。

  • 様々なディレクトリに散ったファイルを編集している方。
  • 普段、:CdCurrentコマンドを多用する方。
  • MacOSX版でDockにファイルを落としてgvimを開いた場合、カレントディレクトリが「/」になっていて、移動が面倒な方。

そのまま使うと、どのファイルを開いても必ず、そのファイルのあるディレクトリに移動してしまうことになるので、 その対策も用意しています。

インストール方法

ここ から、 スクリプトをダウンロードします。

ファイル URL
CD.vim http://www.vim.org/scripts/script.php?script_id=65

ファイルを開いたら、そのファイルの種類に関係無く、必ずそのファイルのディレクトリに移動して良いのなら、 ダウンロードしたスクリプトファイルは $VIMRUNTIME/macrosなどのマクロ用のディレクトリに コピーしましょう。

_vimrc設定ファイルに次の設定を書きこみます。

:source $VIMRUNTIME/macros/cd.vim

→→→ ファイルの種類に応じて、スクリプトの有効無効を切り替えたい

使用方法

ファイルを開いたり、バッファを切り替えると、 そのファイルのディレクトリに自動的に移動します。

ファイルの種類に応じて、スクリプトの有効無効を切り替えたい

そのまま使うと、バッファを開くたびに必ずディレクトリを移動してしまうので、 それで困る方はスクリプトをちょっと変更しましょう。

" スクリプト(CD.vim)
:au BufEnter * execute ":lcd " . expand("%:p:h")

スクリプトの中身はこれだけなので、これを変更して、 _vimrc設定ファイルに直接、自分用の設定を書いても大した手間ではありません。

例えば、このように_vimrc設定ファイルに書きこめば、 拡張子xml、sdocのファイルをvimエディタで開いた時のみ、移動するようになります。

:au BufEnter *.xml,*.sdoc execute ":lcd " . expand("%:p:h")

BufEnter の後に、有効にしたいファイルの種類を指定します。 , (カンマ)を使うことで、複数記述可能です。

_vimrcファイルに直接書いた場合は、cd.vimを:sourceする必要は当然ありません。

注意事項など

Windows版gvimで、ファイルをドラッグアンドドロップで開く時に、 Shiftキーを押しておくと、 そのファイルのディレクトリに移動することができます。

ドキュメントアクション
コメント
blog comments powered by Disqus