Abre o arquivo na sessão de terminal do Vim no atalho

2

Eu tenho um monte de arquivos que faço pequenas edições também durante todo o meu dia.

Eles estão em seu próprio diretório em um superdiretório comum, por exemplo:

test
├── foo
│   └── foo.tex
└── bar
    └── bar.tex

É possível criar um atalho, como Ctrl + Alt + E , de modo que, se você digitar esse atalho e, em seguida, muitos letras e depois aperte enter o arquivo correspondente (no diretório do mesmo nome) get's aberto em uma sessão vim no terminal?

Se não, há algo próximo disso? Criar um atalho diferente para cada arquivo seria aceitável, mas não ideal, porque é cerca de 10 arquivos, então todos os atalhos seriam difíceis de lembrar (e eles ocupariam espaço de atalho)

    
por Bananach 01.05.2018 / 12:35

1 resposta

0

Eu encontrei uma solução. Eu armazenei o seguinte script Python em meu diretório inicial e criei um atalho para ele usando o compizconfig-settings-manager. O diretório principal ( ~/test no meu exemplo) e os finais dos arquivos a serem editados ( .tex no meu exemplo) podem ser alterados no script.

ROOTDIR = '~/test'
FILEENDING = '.tex'
import subprocess
import re
import os
import tkinter
import tkinter.simpledialog
def string_dialog(title,label):
    root = tkinter.Tk()
    root.withdraw()
    return tkinter.simpledialog.askstring(title, label)
project = string_dialog('Quickedit','Enter filename')
regexp = re.compile(project+'.*',re.IGNORECASE)
choices = [path for path in os.listdir(ROOTDIR) if os.path.isdir(os.path.join(rootdir,path)) and path.lower().startswith(project.lower())]
projectdir = os.path.join(ROOTDIR,choices[0])
projectfile = [path for path in os.listdir(projectdir) if path.endswith(FILEENDING)][0]
subprocess.call(['gvim',os.path.join(projectdir,projectfile)])
    
por Bananach 02.05.2018 / 08:06