セクション

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

作者: 小見 拓 最終変更 2009年12月25日 11時06分
— カテゴリ:

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キーを押しておくと、 そのファイルのディレクトリに移動することができます。

ドキュメントアクション
コメント
{no}. {user_name}  {posted}
{message_body}

(必須)
氏名を入力してください。
Eメールアドレスを入力してください。
(必須)
送りたいメッセージを入力してください。
Recent Comment
EnhCommentify.vim : 複数のファイルタイプに対応したソースコメントアウト、コメントアウト解除スクリプト — 名無しのvim使い
==> anonymous [2010/03/22 06:32:47]
vimエディタから外部のプログラムやコマンドを実行する。 — 名無しのvim使い
==> 通りすがりnoです [2010/02/04 18:28:49]
==> 通りすがりの者です [2010/02/04 18:30:28]
==> 通りすがりのものです2 [2010/02/04 18:41:38]
PCに昨日初めてさわった人でもわかるgvim超々入門 (Windows、vim6) — 名無しのvim使い
==> anonymous [2009/11/05 11:57:11]
==> 佐藤 よしお [2009/11/27 15:53:34]
==> 小見 拓 [2009/11/27 18:40:42]
==> anonymous [2010/01/06 19:48:09]
Update Feed
RSS1.0 / RSS2.0 / ATOM