Vifm
譯自 Vifm 官方主頁:
- Vifm 是一個帶 curses 界面的文件管理器,提供類似 Vim 的文件系統管理環境,並結合了來自 mutt 的一些有用想法。
- 如果你使用 vi,Vifm 讓你無需學習新命令即可完全通過鍵盤控制你的文件。
安裝[編輯 | 編輯原始碼]
安裝 vifm包 包,或者安裝開發版本 vifm-gitAUR。
幫助文件[編輯 | 編輯原始碼]
Vifm 的基本信息在幫助文件中可以找到。打開 Vifm 並輸入以下命令即可查看:
:h
另一個信息來源是 vifm(1)。
自定義 Vifm[編輯 | 編輯原始碼]
Vifm 會在 XDG_CONFIG_HOME 中創建並填充一個 vifm
目錄,包含以下內容:
vifmrc
— 一個注釋豐富的配置文件,可根據個人工作風格編輯。vifm-help.txt
— 幫助文本。vifminfo
— 書籤和回收站內容 —— 不建議手動編輯此文件。Trash/
目錄 —— 顧名思義 —— 請在 vifm 中查看: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
在 vifm 內輸入
顏色主題[編輯 | 編輯原始碼]
~/.vifm/colors
目錄包含顏色主題。其格式在文件中有所概述,遵循 vi/vim 的語法高亮格式。其基本形式如下:
highlight 组 cterm=属性 ctermfg=颜色 ctermbg=颜色
示例顏色主題如下:
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
但這些映射在會話間不會保存。要永久映射鍵,可以將它們放在 vifmrc
文件中。更多示例映射可以在該文件末尾找到。
在 Vifm 中打開文件[編輯 | 編輯原始碼]
你可以在 vifmrc
文件中為文件類型指定應用程式,例如:
filetype *.jpg,*.jpeg,*.png,*.gif feh %f 2>/dev/null & filetype *.md5 md5sum -c %f
vifmrc
中提供了一些默認值,可以按照相同的格式進行編輯或添加。
使用 feh 瀏覽當前目錄的圖片[編輯 | 編輯原始碼]
filetype *.jpg,*.jpeg,*.png,*.gif \ {View in feh} \ feh -FZ %d --start-at %d/%c 2>/dev/null
這將顯示你選中的圖片,並使你能夠按默認順序瀏覽目錄中的其他圖片。
自定義命令[編輯 | 編輯原始碼]
你也可以在 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 文件:
command mkt mktorrent -p -a [你的 announce URL] -o %D/%f.torrent %d/%f
標記[編輯 | 編輯原始碼]
標記的設置方式與 vi 中相同。 為當前文件設置標記:
m[a-z][A-Z][0-9]
跳轉到標記的文件:
'[a-z][A-Z][0-9]
Vifm 會在會話間記住這些標記。
預覽[編輯 | 編輯原始碼]
若安裝了 poppler包,則可通過以下設置預覽 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
對於 Office 文件,可以將其轉換為 HTML 格式再通過 w3m 渲染:
fileviewer *.odt,*.doc,*.docx,*.ods,*.xls,*.xlsx \ libreoffice --convert-to html --outdir /tmp/ %c &>/dev/null && w3m /tmp/%c:r.html
對於二進制文件等無法直接預覽的情況,輸出簡單的文本信息:
fileviewer *.exe \ echo Binary file: no preview available. %i
其中 %i
用於覆蓋默認使用的 %c
。
處理其他未指定的文件類型時,可以在配置文件的最後添加:
fileviewer * <你的命令>
一些常用的預覽工具包括:
使用 vifmimg[編輯 | 編輯原始碼]
可以將 vifmimg 克隆到 ~/.config/vifm
目錄中。之後需要創建一個別名以運行 vifmrun
腳本,準備預覽功能:
alias v="~/.config/vifm/vifmrun ."
現在只需輸入 v
即可啟動 vifm
。
- 必須安裝 ueberzug包 否則預覽功能無法工作。
- 如果在瀏覽文件時切換到 shell,可能會遇到預覽未消失的問題。可以添加以下命令解決:
command! clear vifmimg clear
並將該命令綁定到退出當前vifm
運行時切換到 shell 的按鍵上,例如:nmap S :clear
這樣按下S
鍵即可進入 shell 並清除預覽。
提示與技巧[編輯 | 編輯原始碼]
有用的鍵位映射[編輯 | 編輯原始碼]
單擊進入命令行[編輯 | 編輯原始碼]
nmap ; :
更快的移動[編輯 | 編輯原始碼]
按住 Shift 鍵可以跳躍五個文件
nnoremap J 5j nnoremap K 5k
面板調整大小[編輯 | 編輯原始碼]
只需輸入 -
或 _
來調整面板大小:
nnoremap - <C-w>5< nnoremap _ <C-w>5>
複製路徑[編輯 | 編輯原始碼]
通過輸入 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>
在 Wayland 環境下,使用 wl-copy 代替 xclip -selection clipboard
。
非 vim 用戶[編輯 | 編輯原始碼]
如果你使用 vi
、nvim
(Neovim)或其他編輯器,可以將 set vicmd=vi
、set vicmd=nvim
或類似命令添加到 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-dropAUR 並添加一個新命令:
command! dragon dragon-drop -a -x %f
你也可以為這個新命令設置快捷鍵:
nmap <C-d> :dragon<CR>
這樣按下 Ctrl+d
會為當前選中的文件創建一個窗口,方便你將文件拖到其他地方。如果要拖放多個文件,只需選中文件並按下 Ctrl+d
。