vim-users.jp

Hack #151: 編集中のファイルがあるディレクトリを開く

Posted at 2010/06/01
このエントリーをはてなブックマークに追加

問題

Vimの:e:newなどはカレントディレクトリにあるファイルを開きます。また補完対象もカレントディレクトリからのファイルです。

:e a<tab>

このようにするとカレントディレクトリのaからはじまるファイル名を対象にファイル名補完を行ないます。

編集中ファイルと同じディレクトリにある他のファイルを開く機会は多いものの、深いディレクトリに潜っているときは厄介です。 編集中ファイルのディレクトリは%:hで指定でき、なおかつ<tab>キーで展開できるものの、毎回%:h…とくに%という文字を打鍵するのかなかなか腰の折れる作業です。

解決法1

一度カレントディレクトリを編集中ファイルのディレクトリに移動するか、あるいはnetrwで編集中ファイルのディレクトリを開くかが良いでしょう。tabpagecdなどのプラグインを使用している場合、編集中ファイルのディレクトリにカレントディレクトリを移動させるのは副作用が大きすぎるため、後者の方法が好ましいでしょう。

:e %:h

で編集中ファイルのディレクトリをnetrwで開き、ファイル一覧を取得できます。この作業を頻繁に行なうならば、あいているキーにマッピングしましょう。例えば-に割り当てるならば、以下の一行を~/.vimrcに記述します。

nnoremap - :<C-u>e %:h<Cr>

解決法2

あるいは<tab>キーでの展開までを一つのキーに割り当てる方法も考えられます。

nnoremap - :<C-u> %:h<Tab>

このまま<Cr>を打鍵するとnetrwでディレクトリを開くので、こちらの解決法の方がより選択の幅が広がるといえます。

補足

netrwよりもモダンなvimfilerプラグインを用いる、あるいはvimshellに全てを委ねるなど、他にもさまざまなアプローチがあります。

ujihisa

もどる
blog comments powered by Disqus