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
。