- 2010-06-01 (火) 0:00
- Vim Hacks
問題
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
- Newer: Hack #152: VimとGVimの相違点について知る
- Older: Hack #149: コーディングスタイルを切り替える
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://vim-users.jp/2010/06/hack151/trackback/
- Listed below are links to weblogs that reference
- Hack #151: 編集中のファイルがあるディレクトリを開く from Vim-users.jp

