Vifm
Vifm のホームページより:
- Vifm は ncurses ベースのファイルマネージャで、vi のようなキーバインディング/モード/オプション/コマンド/設定を備えています。また、mutt からもアイデアを頂戴しています。vi を使っているのであれば、Vifm では新しいコマンドセットを覚えなくても完全にファイルをキーボードで制御できるでしょう。
インストール
ヘルプファイル
vifm の基本的な情報はヘルプファイルに書かれています。vifm を開いて次を入力することでヘルプファイルを見ることができます:
:h
他の情報は man ページを見てください。
Vifm のカスタマイズ
Vifm は、XDG_CONFIG_HOME に以下を含む vifm
ディレクトリを作成して設定します:
vifmrc
- 作業スタイルにあわせて編集できるコメント豊富な設定ファイル。vifm-help.txt
- ヘルプテキスト。vifminfo
- ブックマークとごみ箱の内容 - このファイルを手動で編集することはお勧めしませんTrash/
ゴミ箱:h vifm-trash
scripts/
vifm の:h vifm-scripts
を参照colors/
カラースキーム - vifm の:h vifm-colors
を参照Default.vifm
- コメントが豊富についているデフォルトのカラースキーム。コピーして自分でカラースキームを作成できます。
開始するには、次の情報を参照してください:
-
/usr/share/doc/vifm/
-
/usr/share/vifm/vifm-help.txt
かman vifm
-
:h
in vifm
カラースキーム
~/.vifm/colors
ディレクトリにカラースキームを保存します。フォーマットは vi/vim のシンタックスハイライトのフォーマットに従っています:
highlight group cterm=attribute ctermfg=color ctermbg=color
例えばカラースキームは以下のようになります:
highlight Win cterm=none ctermfg=white ctermbg=black highlight Directory cterm=bold ctermfg=cyan ctermbg=none highlight Link cterm=bold ctermfg=yellow ctermbg=none highlight BrokenLink cterm=bold ctermfg=red ctermbg=none highlight Socket cterm=bold ctermfg=magenta ctermbg=none highlight Device cterm=bold ctermfg=red ctermbg=none highlight Fifo cterm=bold ctermfg=cyan ctermbg=none highlight Executable cterm=bold ctermfg=green ctermbg=none highlight Selected cterm=bold ctermfg=magenta ctermbg=none highlight CurrLine cterm=bold ctermfg=none ctermbg=blue highlight TopLine cterm=none ctermfg=black ctermbg=white highlight TopLineSel cterm=bold ctermfg=black ctermbg=none highlight StatusLine cterm=bold ctermfg=black ctermbg=white highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black highlight CmdLine cterm=none ctermfg=white ctermbg=black highlight ErrorMsg cterm=none ctermfg=red ctermbg=black highlight Border cterm=none ctermfg=black ctermbg=white
正規表現を使ってファイルタイプをハイライトすることもできます:
highlight /^.*\.(mp3|ogg|oga|flac|m4a)$/ ctermfg=magenta highlight /^.*\.(jpg|jpeg|png|gif|tiff|webp|bmp|svg|svgz)$/ ctermfg=yellow highlight /^.*\.(zip|gz|bz2|xz|tar|tgz|tbz2|7z|rar|iso|rpm|deb)$/ ctermfg=red
キーマッピング
0.6.2 現在、Vifm ではキーバインドをカスタマイズできます。以下のように map コマンドを使ってコマンドモードから設定できます:
:map ] :s
ただし、マッピングはセッションを再起動すると消えてしまいます。キーを永続的にマッピングするには ~/vifm/vifmrc
にマッピングを記述してください。ファイルの末尾にサンプルマッピングが書かれています。
vifm で開くファイルタイプ
vifmrc を使って以下のようにファイルタイプに対してアプリケーションを指定できます:
filetype *.jpg,*.jpeg,*.png,*.gif feh %f 2>/dev/null & filetype *.md5 md5sum -c %f
vifmrc には複数のデフォルト設定が存在します。同じフォーマットに従って編集・追加できます。
Feh でカレントディレクトリの画像を表示
filextype *.jpg,*.jpeg,*.png,*.gif \ {View in feh} \ feh -FZ %d --start-at %d/%c 2>/dev/null
選択した画像が feh で表示されます。
ユーザーコマンド
vifmrc
で以下のようにカスタムコマンドを作成できます:
command df df -h %m 2> /dev/null command diff vim -d %f %F
シンボリックリンクの作成
command link ln -s %d/%f %D
(分割ビューで) 以下のコマンドを実行すると選択されたファイルのリンクが他のディレクトリに作成されます:
:link
ビジュアル (v) またはタグ (t) で複数のファイルを選択した場合でも機能します。
Torrent の作成
カレントファイルの .torrent を他のタブのディレクトリに作成:
command mkt mktorrent -p -a [your announce url here] -o %D/%f.torrent %d/%f
マーク
マークは vi と同じように設定することができます。
カレントファイルにマークを設定するには:
m[a-z][A-Z][0-9]
マークしたファイルに移動するには:
'[a-z][A-Z][0-9]
Vifm はセッションを再起動してもマークを記憶しています。
プレビュー
poppler をインストールして、vifmrc
に以下を記述することで pdftotext による PDF プレビューが有効になります:
fileviewer *.pdf \ pdftotext %c -
%c
はカーソルのファイルをあらわす vifm マクロです。
プレビューは以下のコマンドで有効にできます:
:view
libcaca に含まれている img2txt を使うことで画像のプレビューが可能になります:
fileviewer *.png,*.jpeg,*.jpg \ img2txt %c
tar アーカイブの中身をプレビュー:
fileviewer *.tar,*.tar.gz \ tar -tvf %c
HTML ドキュメントをプレビューしたい場合は lynx, links, w3m などのテキストベースのブラウザを使うと良いでしょう:
fileviewer *.html \ w3m %c
プレビューに役立つプログラム:
- tree - ディレクトリのプレビュー
- mp3info - mp3 ファイルの情報を表示
- libmediainfo - メディア (音声・動画) の情報を表示
vifmimgの使用
vifmimg を ~/.config/vifm
ディレクトリに複製しても良いです。 vifmrun
スクリプトを実行するためのエイリアスを作成する必要があります。これにより、プレビュー用にすべてが準備されます。
alias v="~/.config/vifm/vifmrun ."
vifm
は、ターミナルで v
と入力するだけで開始できます。
ヒントとテクニック
便利なキーマッピング
コマンドラインにアクセスするためのシングルストローク
nmap ; :
より速い動き
Shiftキーを押しながら5つのファイルをジャンプ
nnoremap J 5j nnoremap K 5k
パネルのサイズ変更
パネルのサイズを変更するには、-
または _
を入力するだけです
nnoremap - <C-w>5< nnoremap _ <C-w>5>
Yanking
yd
と入力して、ディレクトリパスをヤンクします
nnoremap yd :!echo -n %d | xclip -selection clipboard %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
yf
と入力して、ファイルへの絶対パスをヤンクします
nnoremap yf :!echo -n %c:p | xclip -selection clipboard %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
vim を使っていない場合
vifm
は vim
が見つからないとエラーを表示します。vi
または nvim
(Neovim) を使用する場合、~/.vifm/vifmrc
ファイルを編集してください。set vicmd=vim
という行をコメントアウトして set vicmd=vi
あるいは set vicmd=nvim
に置き換えてください。.exrc
と同じようにコメント行はダブルクォートを行頭にします。
選択したファイルの合計容量
選択したファイルの合計サイズを表示するには ~/.vifm/vifmrc
の %s を以下のように %E に変更してください:
set statusline=" %t%= %A %10u:%-7g %15E %20d "
ステータス行で外部プログラムの出力を使用する
次に、lsattr を呼び出し、現在カーソルの下にあるファイルの名前を渡すステータス行を示します。
set statusline="%{system('lsattr -l ' . expand('%c'))}"
現在選択されているファイルを印刷する
プリンタでファイルを印刷したい場合は、lp
でコマンドを作成できます。
command! print lp -n 1 -o sides=two-sided-long-edge %f
印刷するファイルを選択して、:print
と入力するだけです。
ドラッグアンドドロップ
dragon-drag-and-dropAUR をインストールして新しいコマンドを追加する必要があります:
command! dragon dragon-drag-and-drop -a -x %f
必要に応じて、この新しいコマンドへのショートカットを設定することもできます。
nmap <C-d> :dragon<CR>
したがって、Ctrl + d
を押すと、現在選択されているファイルがポップされるので、別の場所にドロップできます。複数のファイルをドラッグする場合は、t
でファイルを選択し、Ctrl + d
を押します。
詳細については、expression syntax および functionsを参照してください。