Hatena::ブログ(Diary)

Alone Like a Rhinoceros Horn

2010-06-11

vimfiler のデフォルトキーバインドまとめ(機能別)

感想文の副産物

プログラムノ~ト:VimFilerのデフォルトキーバインドまとめ」の焼き直しですが、デフォルトキーバインドアップデートをフォローしつつ、機能別に整理してみました。キーバインドはもちろん各自で自由に設定できますので、キーバインドのまとめそれ自体にはあまり意味はありませんが、vimfiler の機能を概観するには役立つだろうと思います。

現時点*1で用意されている機能はすべて網羅していると思いますが、漏れがありましたらツッコミお願いします。

起動/終了

:VimFiler

で起動。netrw を置き換えるように設定していれば

:e .

でも vimfiler が起動する。

キー機能
o別の vimfiler を起動
既に二画面になっているときはディレクトリを同期
(他方の vimfiler を現在の vimfiler に同期)
O別の vimfiler とディレクトリを同期
(現在の vimfiler を他方の vimfiler に同期)
?キーバインド一覧を表示
qvimfiler を終了

カーソル操作/ファイル選択

キー機能
Tabバッファ切り替え
jカーソルを下に移動
kカーソルを上に移動
Spaceファイルの選択/解除
*全ファイルの選択をトグル
Mファイルマスクを設定
vファイルをプレビュー表示(vim の別バッファで開く)
sファイルの整列順を変更
Ctrl-Gファイル名を表示
.隠しファイルを表示/非表示
ファイルマスクの設定

M による「ファイルマスクの設定」とは、要するに「グロブパターンによる表示ファイルのフィルタリング」のことで、例えばマスクを「 *.rb 」とすれば拡張子が「 .rb 」なファイルだけが一覧に表示される。

プレビュー表示

v による「ファイルのプレビュー表示」は、デフォルトでは「小さなバッファでファイルを開く」という動作になっているが、変数 g:vimfiler_pedit_command の設定を変更することでこの動作はカスタマイズが可能。

整列順の変更

s による「ファイルの整列順の変更」は、一覧に表示されるファイルの整列キーを指定する機能で、実行すると以下のようなプロンプトが表示される↓

n[one]
s[ize]
e[xtension]
f[ilename]
t[ime]
m[anual]
Select sort type(Upper case is descending order) none -> 

プロンプトにある通り、大文字で指定すると降順になる。

ファイルを開く(関連付けを実行)

キー対象機能
eカーソル下ファイル → vim で開く
ディレクトリ → vimfiler で開く
xカーソル下システムの関連付けを実行
Enterカーソル下vimfiler の関連付けを実行
ディレクトリの場合は移動)
lカーソル下vimfiler の関連づけを実行
E--外部ファイラでディレクトリを開く (Mac なら Finder など)
システムの関連付けを実行

x による「システムの関連付けを実行」とは、HTMLファイルなら既定の Webブラウザでそれを開き、画像ファイルなら既定の画像ビューアでそれを開く、といったこと。

vimfiler の関連付けを実行

vimfiler の関連付けは設定ファイルにて以下のように設定できる↓

call vimfiler#set_execute_file('vim', 'vim')
call vimfiler#set_execute_file('txt', 'notepad')

この例の場合だと、拡張子が「 txt 」なファイルは「メモ帳」で開くという設定になる。(もちろん Windows での話)

grep

キー対象機能
gr選択/--vimgrep を実行

gr による「vimgrep の実行」は、選択されているファイルがあればそれらを対象にし、なければ「 **/* 」でグロブしたファイルを対象にする。

ファイル操作

キー対象機能
rカーソル下/選択ファイルの名前を変更
m--/選択ファイルを移動
c--/選択ファイルをコピー
p--ファイルをペースト
d--/選択ファイルを削除(ゴミ箱への移動)
D--/選択ファイルを削除(rm 相当)
u--/選択ファイルをゴミ箱から復元(d によって削除したもののみ有効)
K--新規ディレクトリを作成
N--新規ファイルを作成

m, c, d, D, u は、選択されたファイルがない場合にはカーソル下のファイルを選択する。よって、mm, cc, dd などとすることでカーソル下のファイルを移動/コピー/削除できる。

名前の変更

r による「ファイルの名前変更」は、選択されているファイルがある場合には「拡張リネーム」という機能になる。これは、選択されたファイル名を別バッファ上で編集し、「 :%s/ 」などで置換して保存することで簡単に一括リネームが行える機能。

移動/コピー

m, c による「ファイルの移動/コピー」は、ファイラが二画面(vimfiler が2つ開かれている状態)の時には他方のディレクトリへの移動/コピーとなり、一画面時には WindowsExplorer風のクリップボード*2を介しての移動/コピーになる。その場合は移動/コピーしたいディレクトリへ移動して p でファイルをペーストする。

削除

d による「ファイルの削除」は、「ゴミ箱への移動」というデスクトップ環境におけるファイルの削除に近い動作をし、D による削除はコマンドラインにおける rm 相当の削除を行う。

vimfiler における「ゴミ箱」は変数 g:vimfiler_trashbox_directory にて設定されたディレクトリのことであり、デフォルト値は '~/.vimfiler_trashbox'

復元

u によって、削除したファイルをゴミ箱から元あった場所に戻すことができるが、この機能はゴミ箱内にあるファイルを選択した状態で使うもので、直前の削除をその場で Undo するものではない。

移動

キー機能
h上位のディレクトリに移動
\ルートディレクトリに移動
~ホームディレクトリに移動する
Lドライブに移動
$ゴミ箱に移動
Enterカーソル下のディレクトリへ移動
(ファイルの場合は vimfiler の関連付けを実行)
Jディレクトリを指定して移動
ドライブに移動

L による「ドライブに移動」は、UNIX な環境においては「/mnt および /media 以下への移動」になり、実行すると以下のようなプロンプトが表示される↓

[a] /media/441edc65-8bc2-46e2-b130-30dff3bd7de1                                             
[b] /media/cdrom
[c] /media/cdrom0
Please input drive alphabet or other directory: 
ゴミ箱に移動

$ による「ゴミ箱に移動」は、ファイルをゴミ箱へ移動する操作ではなく、ゴミ箱へ cd するという意味の移動である。u によるファイルの復元を行うためにはいったんゴミ箱へ移動する必要があり、その時に必要になる操作。

シェル

キー効果
Hシェルを起動
vimshell があればそちらを起動、なければ :shell を実行
ファイルが選択されていれば自動的に引数に!
t外部コマンドを非同期に実行
!外部コマンドを実行
gvgvim を起動
シェルを起動

H による「シェルの起動」では、選択されているファイルをコマンドライン引数としてコマンドラインのひな形を組み立ててくれる。(vimshell がある場合)

Current directory: /home/h1mesuke/hlib/ruby/hlib/text/*
..
- align.rb                                       3.95  K !10/06/11 21:11
* colorize.rb                                    4.76  K !10/06/11 21:11
- convert.rb                                     4.47  K !10/06/11 21:11
* guess.rb                                       1.86  K !10/06/11 21:11
* match.rb                                       11.58 K !10/06/11 21:11   

例えば、↑の状態で H を押すと vimshell が起動し、以下の状態になる↓
][ はキャレットの位置を表す)

vimshell% ][ "/home/h1mesuke/hlib/ruby/hlib/text/colorize.rb" "/home/h1mesuke/hlib/ruby/hlib/text/guess.rb" "/home/h1mesuke/hlib/ruby/hlib/text/match.rb"
外部コマンドを実行

! による「外部コマンドの実行」では、入力したコマンドライン中の「 * 」は選択されているファイル名のリストで置き換えられる。

上の例と同じファイル選択の状態で「 ! 」を押し、プロンプトから「 wc * 」と打つと出力は以下のようになる↓

  190   490  4878 /home/h1mesuke/hlib/ruby/hlib/text/colorize.rb
   83   221  1909 /home/h1mesuke/hlib/ruby/hlib/text/guess.rb
  366   994 11862 /home/h1mesuke/hlib/ruby/hlib/text/match.rb
  639  1705 18649 合計
続けるにはENTERを押すかコマンドを入力してください

キー効果
Ctrl-L画面を再描画

*1:2010年6月10日現在

*2:システムのクリップボードではなく、vimfiler が内部で使用している変数

ShougoShougo 2010/06/11 13:20 抜けがあるので補足しておきます。
> r カーソル下 ファイルの名前を変更
ファイルを選択している場合、「拡張リネーム」と言う機能になります。
これは選択したファイル名を別バッファ上で開きます。
:%s/などで置換して保存することで、簡単に一括リネームが可能です。

m,cはファイルを選択していないとき、カーソル上のファイルを選択します。
よって、mm, ccで移動・コピーが可能です。

> ! 外部コマンドを実行
コマンドライン中の*は選択したファイル名に置き換えられます。

h1mesukeh1mesuke 2010/06/11 21:24 補足を反映しました。
ついでに、見出しを整理

yuyunkoyuyunko 2010/11/12 17:20 ファイル名が長くて最後まで表示されていないときに,ファイル名を確認する方法はありますか?

h1mesukeh1mesuke 2010/11/12 18:22 変数 g:vimfiler_max_filename_width に設定した値より長いファイル名は truncate(短縮)されるようになっているので、この変数の値を初期値の 50 より大きく設定してみてはどうでしょうか?

truncate されている状態のままのファイル名について、その完全な名前を確認する方法については、作者である ShougoMatsuさんに聞かれた方がよいと思います。

Shougo.Matsu (ShougoMatsu) on Twitter
https://twitter.com/ShougoMatsu

あるVimmerのブログ
http://vinarian.blogspot.com/

yuyunkoyuyunko 2010/11/13 16:09 ありがとうございます!!