我做了一些研究,发现它并不太难。
要以特殊方式在新窗格(右侧)中打开 Ranger 中当前选定的文件,您可以先转到 Ranger 的命令行(按 :),然后shell tmux splitw -h 'vim %f'按<Enter>键键入以下内容。
要通过一些键绑定来实现这一点,您可以在 ranger 的配置文件中进行设置。对于 Ranger 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 + "'")
Run Code Online (Sandbox Code Playgroud)
使用 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)
Run Code Online (Sandbox Code Playgroud)
使用上述设置,当您ef在 Ranger 的浏览器中按下时,它将打开一个新的 tmux 窗格,其中 vim 编辑所选文件。
代码仅用于演示,可能需要涉及更多保护,例如检查文件类型等。
归功于 Ranger 的帮助手册和$(pythonpkginstalldir)/ranger/defaults/rc.conf($(pythonpkginstalldir)/ranger/defaults/keys.py对于 Ranger 1.4)。他们真的很有帮助。