Vifm - Arch Linux 中文维基

跳至內容

# Vifm

出自 Arch Linux 中文维基

相關文章

- 文件管理器功能
- lf
- Midnight Commander
- nnn
- ranger

翻譯狀態：

- 本文（或部分內容）譯自 Vifm，最近一次同步於 2024-11-16，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

譯自 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 * <你的命令>

一些常用的預覽工具包括：

- tree包 用於目錄預覽。
- mp3info包 用於查看 mp3 文件的信息。
- mediainfo包 用於查看音視頻文件的信息。
- highlight包 用於語法高亮。

#### 使用 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`。

更多信息請參見表達式語法和可用的函數。

分類：​

- 文件管理器
- 終端應用程式

Vifm
新增話題