Integração do Tmux ranger: abrindo arquivos de texto em novos painéis

3

Aqui temos algumas ferramentas incríveis: tmux, ranger, vim ... Seria incrível configurar o ranger para abrir os arquivos (quando o texto editável) em um novo tmcup? Isso é fácil e como é feito?

    
por uprego 11.07.2013 / 08:07

1 resposta

6

Eu fiz algumas pesquisas e descobri que não é muito difícil.

Para abrir o arquivo atual selecionado no ranger em um novo painel (à direita) de maneira ad-hoc, você pode primeiro ir para a linha de comando do ranger (pressionando :) e, em seguida, digite shell tmux splitw -h 'vim %f' seguindo por <Enter> key.

Para conseguir isso com alguma ligação de chave, você pode configurá-lo em um arquivo de configuração do ranger. Para o ranger 1.6+, as associações de teclas são especificadas em rc.conf . Então, em ~/.config/ranger/rc.conf , use algo assim:

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

Enquanto no ranger 1.4 você precisa de um arquivo ~/.config/ranger/keys.py com o seguinte conteúdo:

#!/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)

Com a configuração acima quando você pressionar ef no navegador do ranger, ele abrirá um novo painel tmux com o vim editando o arquivo selecionado.

O código é simplesmente para demonstração e pode precisar envolver mais proteção, como verificação de tipo de arquivo, etc.

O crédito vai para o manual de ajuda do ranger e $(pythonpkginstalldir)/ranger/defaults/rc.conf ( $(pythonpkginstalldir)/ranger/defaults/keys.py para o ranger 1.4). Eles são realmente úteis.

    
por 05.11.2013 / 17:01