Ranger: CUI ファイラー

Last Change:16-May-2016.
Author:qh73xe
Reference:https://github.com/hut/ranger

それでも、ウェブブラウジングと、ファイル操作は GUI メインで行うことが多いです。

とくに ファイル操作に関していうと、確かにシェル上でも充分こなせるのですが、 処理するファイル数が少く、かつ複雑、若しくは全体を考えながらの操作では GUI の方が楽かと思います。

で、このページで取り上げる Ranger ですが、これは CUI で使用できるファイラーです。 どういうことかというと、簡単に言えば、シェル上で GUI の操作性も持ったファイラーが使用可能であるという話です。

導入

恐らく、 Linux を使用している場合、 apt-get や dnf でインストールできるかと思います。

  • fedora 23 では可能でした。
sudo dnf install ranger
ranger --copy-config=all

二行目では、設定ファイルを設置しています。

使い方

Ranger を起動するには以下のコマンドを実行します。

ranger

すると、まるで GUI の様なインターフェースでファイラーが起動します。 なお、基本的な操作は vim を使用していれば大体お分かりになるかと思います。

画像を扱う

ranger のサイトによると, ranger のプレビューで画像を扱うには, w3mimgdisplay というコマンドが使える必要があります. そのため,画像のプレビューを行うためには w3m-img を導入する必要があります.

sudo dnf install w3m-img

警告

この機能を使用する際には、 ターミナルは xterm などである必要があります。

コマンドを設定する

個人的に、 ファイラーとして Ranger が便利だと思う点は、 これが python 製 であるという点です。

そのため、独自コマンドを python を利用して記述することが可能です。

コマンド設定は、 ~/.config/ranger/commands.py で行います。

警告

これはもしかすると ディストリでの設定依存の可能性もあります。

以下に独自コマンドの例を示します。

~/.config/ranger/commands.py
1
2
3
4
5
6
class empty(Command):
    """:empty
    Empties the trash directory ~/.Trash
    """
    def execute(self):
        self.fm.run("rm -rf /home/myname/.Trash/{*,.[^.]*}")

注意するべき点としては、 クラス直下のコメントの記述が、そのまま ranger 上の入力になる点でしょうか。

vim と生きる

Ranger の良いところは拡張が python で記述できる部分でしょう。 もともと vim を前提に作成されている感じもしますので、当然 vim との連携も楽です。

vim から Ranger を呼び出す(vim ファイラの代わりに Ranger を使う感じです)には以下のような設定を記述します。

.vimrc
1
2
3
4
5
6
7
8
9
function RangerExplorer()
    exec "silent !ranger --choosefile=/tmp/vim_ranger_current_file " . expand("%:p:h")
    if filereadable('/tmp/vim_ranger_current_file')
        exec 'edit ' . system('cat /tmp/vim_ranger_current_file')
        call system('rm /tmp/vim_ranger_current_file')
    endif
    redraw!
endfun
map <Leader>x :call RangerExplorer()<CR>

これで <Leader> + x で Ranger を呼出ます。