web-dev-qa-db-ja.com

Tmuxレンジャーの統合:新しいペインでテキストファイルを開く

ここにいくつかの素晴らしいツールがあります:tmux、ranger、vim ... tmux newpaneでファイルを開くようにレンジャーを構成するのは素晴らしいでしょうか(テキストが編集可能な場合)?それは簡単で、どのように行われますか?

5
41754

調べてみたところ、それほど難しくはないことがわかりました。

アドホックな方法で新しいペイン(右側)のレンジャーで現在選択されているファイルを開くには、最初にレンジャーのコマンドラインに移動し(:)を押してから、_Shell tmux splitw -h 'vim %f'_と入力してから_<Enter>_キー。

キーバインディングを使用してこれを実現するには、レンジャーの構成ファイルに設定します。レンジャー1.6以降の場合、キーバインディングは_rc.conf_で指定されます。したがって、_~/.config/ranger/rc.conf_では、次のようなものを使用します。

_map ef eval if 'TMUX' in os.environ.keys(): fm.execute_console("Shell tmux splitw -h 'vim " + fm.thisfile.basename + "'")
_

Ranger 1.4では、次の内容のファイル_~/.config/ranger/keys.py_が必要です。

_#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Customized key bindings.

from ranger.api.keys import *

map = keymanager.get_context('browser')
@map("ef")
def edit_file_in_new_tmux_pane(arg):
    command = "Shell tmux splitw -h 'vim " + arg.fm.env.cf.basename + "'"
    if 'TMUX' in os.environ.keys(): arg.fm.execute_console(command)
_

上記の設定で、レンジャーのブラウザでefを押すと、vimが選択したファイルを編集する新しいtmuxペインが開きます。

コードは単にデモ用であり、ファイルタイプのチェックなど、より多くの保護を伴う必要がある場合があります。

クレジットはレンジャーのヘルプマニュアルと$(pythonpkginstalldir)/ranger/defaults/rc.conf(レンジャー1.4の場合は$(pythonpkginstalldir)/ranger/defaults/keys.py)に送られます。彼らは本当に役に立ちます。

7
alick