控制台文件管理器vifm

时间:2021-07-15 14:52:02
vifm是Linux下的一个控制台文件管理器,我很少使用文件管理器,要用一下,就拿出vifm来。图形界面的文件管理器我不喜欢用,控制台下有人叫做mc的,功能很强大,但快捷键实在用不习惯,还经常和Terminal下的快捷键冲突,找来找去也只找到vifm这个还勉强可用,快捷键模拟vi,符合我的习惯。

vifm最主要的特点是模拟vi的快捷键,例如要复制某个文件,按yy,然后到目的文件夹,按p。要移动文件,将yy换成dd就可以了。直接重命 名,则按cw。另外,删除文件并不是直接删除,而是移到$HOME/.vifm/Trash中,所以不小心删错了,还可以找回来。比较常用的命令有:

j,k 上下移动
h,l 在父/子目录之间移动
d 删除文件
y 粘贴文件
Enter,Tab 在两个panel之间切换
/ 查找文件
m[a-zA-Z0-9] 标记文件
'[a-zA-Z0-9] 移到标记所在文件
zo 显示隐藏文件
zm 不显示隐藏文件
:fil regex 隐藏匹配regex的文件
zO 显示被:fil命令过滤的文件
zM 隐藏被:fil命令过滤的文件
!prog 执行系统命令, %f可以用来当前选中文件名


vifm可以定义文件打开默认打开方式,这些都在$HOME/.vifm/vifmrc中配置。定义图片及pdf文件的默认打开方式:

  1. FILETYPE=Images=jpg,jpeg,gif,png,bmp=feh  
  2. FILETYPE=Pdf=pdf=exo-open  

上面定义了用feh来打开图片,exo-open来打开pdf,exo-open是xubuntu中带的一个程序,它会检查文件类型,然后用系统 默认关联应用程序打开,在我的系统中exo-open会实际调用evince来打开pdf。ubuntu可以用gnome-open来替换exo- open。

vifm没有创建目录的命令,你可以自己创建一个,在vifmrc中定义:

  1. COMMAND=mkdir=mkdir -p %a  

其中%a是一个特殊值,表示输入的参数,类似的%f表示当前选中的文件, %F表示在另一个面板中选中的文件,%d表示当前目录,%D表示另一个面板的当前目录。这样,:mkdir foobar就会创建foobar目录。还可以创建cp, mv命令用于将一个面板中选中的文件复制/移动到另一个面板中去。
  1. COMMAND=cp=cp -r %f %D  
  2. COMMAND=mv=mv -r %f %D  


vifm缺少自定义快捷键的功能,这就导致vifm的可定制性并不很强。我很不喜欢vifm的h,l定义成在父子目录之间切换,要是我,就会将它 定义成在两个panel切换。或许这只是习惯的不同,从另一方面讲,也可以说是它的灵性性不够高。还好用得并不算多,所以也就不计较了。