「Vifm」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「Tips and tricks」を「ヒントとテクニック」に置換)
(同期)
 
(3人の利用者による、間の13版が非表示)
1行目: 1行目:
 
[[Category:ファイルマネージャ]]
 
[[Category:ファイルマネージャ]]
  +
[[Category:コンソールアプリケーション]]
[[ar:Vifm]]
 
  +
[[de:Vifm]]
 
[[en:Vifm]]
 
[[en:Vifm]]
 
{{Related articles start}}
 
{{Related articles start}}
  +
{{Related|nnn}}
 
{{Related|ranger}}
 
{{Related|ranger}}
 
{{Related articles end}}
 
{{Related articles end}}
 
[http://vifm.info/ Vifm] のホームページより:
 
[http://vifm.info/ Vifm] のホームページより:
:'' Vifm は ncurses ベースのファイルマネージャで、vi のようなキーバインディング/モード/オプション/コマンド/設定を備えています。また、[[mutt]] からもアイデアを頂戴しています。[[vi]] を使っているのであれば、Vifm では新しいコマンドセットを覚えなくても完全にファイルをキーボードで制御できるでしょう。''
+
:Vifm は ncurses ベースのファイルマネージャで、vi のようなキーバインディング/モード/オプション/コマンド/設定を備えています。また、[[mutt]] からもアイデアを頂戴しています。
  +
:[[vi]] を使っているのであれば、Vifm では新しいコマンドセットを覚えなくても完全にファイルをキーボードで制御できるでしょう。
   
 
== インストール ==
 
== インストール ==
   
[[公式リポジトリ]]から {{Pkg|vifm}} を[[インストール]]してください。
+
{{Pkg|vifm}} パッケージ [[インストール]] してください。
   
 
== ヘルプファイル ==
 
== ヘルプファイル ==
22行目: 25行目:
 
== Vifm のカスタマイズ ==
 
== Vifm のカスタマイズ ==
   
Vifm はディレクトリに .vifm フォルダを作成し、以下のファイルが保存されます:
+
Vifm は、[[XDG Base Directory#ユーザーディレクトリ|XDG_CONFIG_HOME]] 以下を含む {{ic|vifm}} ディレクトリを作成して設定します:
* vifmrc - 作業スタイルにあわせて編集できるコメント豊富な設定ファイル。
+
* {{ic|vifmrc}} - 作業スタイルにあわせて編集できるコメント豊富な設定ファイル。
* vifm-help.txt - ヘルプテキスト。
+
* {{ic|vifm-help.txt}} - ヘルプテキスト。
* vifminfo - ブックマークおよびゴミ箱の中身。手動で編集することは推奨されていません
+
* {{ic|vifminfo}} - ブックマークとごみ箱の内容 - このファイルを手動で編集することはお勧めしません
* Trash/ ディレクトリ - ゴミ箱
+
* {{ic|Trash/}} ゴミ箱 {{ic|:h vifm-trash}}
  +
* {{ic|scripts/}} vifm の {{ic|:h vifm-scripts}} を参照
* colors/ ディレクトリ - カラースキーム。
 
  +
* {{ic|colors/}} カラースキーム - vifm の {{ic|:h vifm-colors}} を参照
** Default - コメントが豊富についているデフォルトのカラースキーム。コピーして自分でカラースキームを作成できます。
 
  +
** {{ic|Default.vifm}} - コメントが豊富についているデフォルトのカラースキーム。コピーして自分でカラースキームを作成できます。
   
最初以下ドキュメント読んでください:
+
開始するは、次情報参照してください:
* {{ic|/usr/share/vifm/vifm.txt}}
+
*  {{ic|/usr/share/doc/vifm/}}
* {{ic|/usr/share/vifm/vifm-help.txt}}
+
*  {{ic|/usr/share/vifm/vifm-help.txt}} か {{ic|man vifm}}
  +
*  {{ic|:h}} in vifm
   
 
=== カラースキーム ===
 
=== カラースキーム ===
   
{{ic|~/.vifm/colors}} ディレクトリにカラースキームを保存します。フォーマットは vi/vim のシンタックスハイライトのフォーマットに従っています:
+
{{ic|~/.vifm/colors}} ディレクトリにカラースキームを保存します。フォーマットは vi/vim のシンタックスハイライトのフォーマットに従っています:
 
highlight ''group'' cterm=''attribute'' ctermfg=''color'' ctermbg=''color''
 
highlight ''group'' cterm=''attribute'' ctermfg=''color'' ctermbg=''color''
   
82行目: 87行目:
 
\ {View in feh}
 
\ {View in feh}
 
\ feh -FZ %d --start-at %d/%c 2>/dev/null
 
\ feh -FZ %d --start-at %d/%c 2>/dev/null
  +
選択した画像が feh で表示されます。
It will display your selected image in feh, but it will enable you to browse all other images in the directory as well, in their default order.
 
   
 
=== ユーザーコマンド ===
 
=== ユーザーコマンド ===
   
  +
{{ic|vifmrc}} で以下のようにカスタムコマンドを作成できます:
You can also create custom commands in vifmrc, eg.
 
 
command df df -h %m 2> /dev/null
 
command df df -h %m 2> /dev/null
 
command diff vim -d %f %F
 
command diff vim -d %f %F
93行目: 98行目:
   
 
command link ln -s %d/%f %D
 
command link ln -s %d/%f %D
  +
When you call
 
  +
(分割ビューで) 以下のコマンドを実行すると選択されたファイルのリンクが他のディレクトリに作成されます:
 
:link
 
:link
  +
a link of the selected file is made in the other directory (if you are in split view). It even works with multiple files selected with visual (v) or tag (t).
 
  +
ビジュアル (v) またはタグ (t) で複数のファイルを選択した場合でも機能します。
   
 
==== Torrent の作成 ====
 
==== Torrent の作成 ====
   
  +
カレントファイルの .torrent を他のタブのディレクトリに作成:
make a .torrent of the current file in the other tab's dir
 
 
command mkt mktorrent -p -a [your announce url here] -o %D/%f.torrent %d/%f
 
command mkt mktorrent -p -a [your announce url here] -o %D/%f.torrent %d/%f
   
 
=== マーク ===
 
=== マーク ===
   
  +
マークは vi と同じように設定することができます。
Marks can be set same as in vi.
 
  +
To set a mark for current file:
 
  +
カレントファイルにマークを設定するには:
 
m[a-z][A-Z][0-9]
 
m[a-z][A-Z][0-9]
  +
Go to a file set for mark:
 
  +
マークしたファイルに移動するには:
 
'[a-z][A-Z][0-9]
 
'[a-z][A-Z][0-9]
  +
Vifm will remember the marks between the sessions.
 
  +
Vifm はセッションを再起動してもマークを記憶しています。
   
 
=== プレビュー ===
 
=== プレビュー ===
  +
Provided {{Pkg|poppler}} is installed,
 
  +
{{Pkg|poppler}} をインストールして、{{ic|vifmrc}} に以下を記述することで pdftotext による PDF プレビューが有効になります:
putting
 
 
fileviewer *.pdf
 
fileviewer *.pdf
 
\ pdftotext %c -
 
\ pdftotext %c -
  +
into vifmrc enables pdf-previewing using pdftotext.
 
  +
{{ic|%c}} はカーソルのファイルをあらわす vifm マクロです。
The %c is a vifm macro for the current file under the cursor.
 
  +
The preview is activated with
 
  +
プレビューは以下のコマンドで有効にできます:
 
:view
 
:view
  +
Neat image previewing can be achieved using img2txt from {{Pkg|libcaca}}
 
  +
{{Pkg|libcaca}} に含まれている img2txt を使うことで画像のプレビューが可能になります:
 
fileviewer *.png,*.jpeg,*.jpg
 
fileviewer *.png,*.jpeg,*.jpg
 
\ img2txt %c
 
\ img2txt %c
  +
Previewing the contents of tar-archives:
 
  +
tar アーカイブの中身をプレビュー:
 
fileviewer *.tar,*.tar.gz
 
fileviewer *.tar,*.tar.gz
 
\ tar -tvf %c
 
\ tar -tvf %c
  +
For previewing html documents suitable programs are
 
text based browsers including {{Pkg|lynx}}, {{Pkg|links}} or {{Pkg|w3m}}
+
HTML ドキュメントをプレビューしたい場合は {{Pkg|lynx}}, {{Pkg|links}}, {{Pkg|w3m}} などのテキストベースのブラウザを使うと良いでしょう:
 
fileviewer *.html
 
fileviewer *.html
 
\ w3m %c
 
\ w3m %c
135行目: 148行目:
 
* {{Pkg|mp3info}} - mp3 ファイルの情報を表示
 
* {{Pkg|mp3info}} - mp3 ファイルの情報を表示
 
* {{Pkg|libmediainfo}} - メディア (音声・動画) の情報を表示
 
* {{Pkg|libmediainfo}} - メディア (音声・動画) の情報を表示
  +
  +
==== vifmimg の使用 ====
  +
  +
[https://github.com/cirala/vifmimg vifmimg] を {{ic|~/.config/vifm}} ディレクトリに複製しても良いです。{{ic|vifmrun}} スクリプトを実行するためのエイリアスを作成する必要があります。これにより、プレビュー用にすべてが準備されます。
  +
alias v="~/.config/vifm/vifmrun ."
  +
{{ic|vifm}} は、ターミナルで {{ic|v}} と入力するだけで開始できます。
  +
  +
{{note|
  +
* {{Pkg|ueberzug}} をインストールする必要があります。そうしないとプレビューが機能しません
  +
* プレビュー表示が開始されるファイルを選択した状態でシェルに切り替えると、プレビューが消えない場合があります。その場合、新しいコマンドを追加する必要があります: {{bc|command! clear vifmimg clear}} を実行し、シェルに移動して、現在の {{ic|vifm}} ランタイムを終了するマッピングに次のコマンドを追加します: {{bc|nmap S :clear|shell<Cr>}} {{ic|S}}、と入力するとシェルに入ってプレビューが削除されます。}}
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
140行目: 163行目:
 
=== 便利なキーマッピング ===
 
=== 便利なキーマッピング ===
   
  +
==== コマンドラインにアクセスするためのシングルストローク ====
Single stroke to access command line
 
  +
 
nmap ; :
 
nmap ; :
  +
  +
==== より速い動き ====
  +
  +
Shift キーを押しながら5つのファイルをジャンプ
  +
nnoremap J 5j
  +
nnoremap K 5k
  +
  +
==== パネルのサイズ変更 ====
  +
  +
パネルのサイズを変更するには、{{ic|-}} または {{ic|_}} を入力するだけです
  +
nnoremap - <C-w>5<
  +
nnoremap _ <C-w>5>
  +
  +
==== Yanking ====
  +
  +
{{ic|yd}} と入力して、ディレクトリパスをヤンクします
  +
nnoremap yd :!echo -n %d | xclip -selection clipboard %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
  +
{{ic|yf}} と入力して、ファイルへの絶対パスをヤンクします
  +
nnoremap yf :!echo -n %c:p | xclip -selection clipboard %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
   
 
=== vim を使っていない場合 ===
 
=== vim を使っていない場合 ===
  +
 
{{ic|vifm}} は {{ic|vim}} が見つからないとエラーを表示します。{{ic|vi}} または {{ic|nvim}} ([[Neovim]]) を使用する場合、{{ic|~/.vifm/vifmrc}} ファイルを編集してください。{{ic|<nowiki>set vicmd=vim</nowiki>}} という行をコメントアウトして {{ic|<nowiki>set vicmd=vi</nowiki>}} あるいは {{ic|<nowiki>set vicmd=nvim</nowiki>}} に置き換えてください。{{ic|.exrc}} と同じようにコメント行はダブルクォートを行頭にします。
 
{{ic|vifm}} は {{ic|vim}} が見つからないとエラーを表示します。{{ic|vi}} または {{ic|nvim}} ([[Neovim]]) を使用する場合、{{ic|~/.vifm/vifmrc}} ファイルを編集してください。{{ic|<nowiki>set vicmd=vim</nowiki>}} という行をコメントアウトして {{ic|<nowiki>set vicmd=vi</nowiki>}} あるいは {{ic|<nowiki>set vicmd=nvim</nowiki>}} に置き換えてください。{{ic|.exrc}} と同じようにコメント行はダブルクォートを行頭にします。
   
150行目: 194行目:
 
選択したファイルの合計サイズを表示するには {{ic|~/.vifm/vifmrc}} の %s を以下のように %E に変更してください:
 
選択したファイルの合計サイズを表示するには {{ic|~/.vifm/vifmrc}} の %s を以下のように %E に変更してください:
 
set statusline=" %t%= %A %10u:%-7g %15E %20d "
 
set statusline=" %t%= %A %10u:%-7g %15E %20d "
  +
  +
=== ステータス行で外部プログラムの出力を使用する ===
  +
  +
次に、[[ファイルのパーミッションと属性#chattr と lsattr|lsattr]] を呼び出し、現在カーソルの下にあるファイルの名前を渡すステータス行を示します。
  +
set statusline="%{system('lsattr -l ' . expand('%c'))}"
  +
  +
=== 現在選択されているファイルを印刷する ===
  +
  +
プリンタでファイルを印刷したい場合は、{{ic|lp}} でコマンドを作成できます。
  +
command! print lp -n 1 -o sides=two-sided-long-edge %f
  +
印刷するファイルを選択して、{{ic|:print}} と入力するだけです。
  +
  +
=== ドラッグアンドドロップ ===
  +
  +
{{AUR|dragon-drag-and-drop}} をインストールして新しいコマンドを追加する必要があります:
  +
command! dragon dragon-drag-and-drop -a -x %f
  +
必要に応じて、この新しいコマンドへのショートカットを設定することもできます。
  +
nmap <C-d> :dragon<CR>
  +
したがって、{{ic|Ctrl + d}} を押すと、現在選択されているファイルがポップされるので、別の場所にドロップできます。複数のファイルをドラッグする場合は、{{ic|t}} でファイルを選択し、{{ic|Ctrl + d}} を押します。
  +
  +
詳細については、[https://vifm.info/manual.shtml#Expression%20syntax expression syntax] および [https://vifm.info/manual.shtml#Functions functions] を参照してください。

2023年10月31日 (火) 14:39時点における最新版

関連記事

Vifm のホームページより:

Vifm は ncurses ベースのファイルマネージャで、vi のようなキーバインディング/モード/オプション/コマンド/設定を備えています。また、mutt からもアイデアを頂戴しています。
vi を使っているのであれば、Vifm では新しいコマンドセットを覚えなくても完全にファイルをキーボードで制御できるでしょう。

インストール

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.txtman 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 と入力するだけで開始できます。

ノート:
  • ueberzug をインストールする必要があります。そうしないとプレビューが機能しません
  • プレビュー表示が開始されるファイルを選択した状態でシェルに切り替えると、プレビューが消えない場合があります。その場合、新しいコマンドを追加する必要があります:
    command! clear vifmimg clear
    を実行し、シェルに移動して、現在の vifm ランタイムを終了するマッピングに次のコマンドを追加します:
    nmap S :clear
    S、と入力するとシェルに入ってプレビューが削除されます。

ヒントとテクニック

便利なキーマッピング

コマンドラインにアクセスするためのシングルストローク

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 を使っていない場合

vifmvim が見つからないとエラーを表示します。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 を参照してください。