ranger:linuxer&vimer的福音,一款非常好用的命令行文件管理器

时间:2022-08-04 21:08:26

今天给大家推荐一个非常好用的文件管理器:ranger。

这个小软件是我数天前在网上无意间碰到的,然后就适用了一下,发现非常的好用。主要是这款软件是模拟vi类似的按键,所以对于那些喜欢使用vi的同学来说应该用起来非常的顺手。

下面是我的一个截图:

ranger:linuxer&vimer的福音,一款非常好用的命令行文件管理器

这儿有对它的介绍:http://linuxtoy.org/archives/ranger-terminal-file-manager.html

我使用的是fedora14,开始我是使用yum install ranger进行安装的。这样安装的版本是1.1.2

我发现在使用过程中,有时在选择文件的时候,使用V时只能选择当前和下一个,所以我就换了一个,安装了最新版,1.5.3,可以点击下载

但是,最新版也有一个问题,就是在我进入中文命名的目录的时候,ranger就崩溃了。这儿也有人提到:http://savannah.nongnu.org/bugs/?35507

但是没有给出解决方案。

然后我想到当时安装1.1.2的时候并没有出现这样的问题,于是我就找到了1.1.2中对应 代码。

ranger崩溃的原因在于:在文件/usr/lib/python2.7/site-packages/ranger/gui/ui.py 中的296行有“ fixed_cwd = cwd.encode('utf-8', 'surrogateescape'). ”,这儿无法对中文字符进行编码。而在1.1.2中对应的代码处是没有这一句 的,所以我就试图改成1.1.2中的形式:

try:
    sys.stdout.write("\033]2;ranger:" + cwd + "\007")
except UnicodeEncodeError:
    sys.stdout.write("\033]2;ranger:" + ascii_only(cwd) + "\007")
但是,我改完之后,程序还是报错:

  File "/usr/lib/python2.7/site-packages/ranger/gui/ui.py", line 296
    try :
        ^
IndentationError: unindent does not match any outer indentation level
没办法,我不改了,最后我是直接将 fixed_cwd = cwd.encode('utf-8', 'surrogateescape') 这句给注释掉了。

然后试了试,发现可以了。现在是对于中文目录还没有出现什么问题。

如果大家有什么好的方法的话,记得给我留言阿!

ps:截图中,我是使用的terminator,它可以开多个标签,可以分隔窗口。