Script para abrir sessão de terminal personalizada

Script para abrir sessão de terminal personalizada

Não tenho certeza se o título transmitiu o que quero fazer, mas aqui está:

Estou trabalhando em um projeto python que envolve muitas classes. Eu uso o Terminal Vim para fazer minhas edições.

Como você pode imaginar, é difícil ter que abrir 10 guias de terminal diferentes, intitulá-las e abrir o arquivo correto em todas elas manualmente.

Gostaria de criar um script que use o vim para abrir todos os arquivos de um diretório em abas diferentes na mesma janela. Gostaria que o script intitulasse as guias com o nome do arquivo que está abrindo.

Eu uso o terminal gnome.

Logicamente, sei como poderia fazer isso, mas simplesmente não consigo encontrar os comandos de que preciso.

Parece que poderei fazer o que quero com o comando gnome-terminal, mas não consigo fazê-lo funcionar corretamente.

EDITAR:vim -p * é útil, mas gostaria de encontrar uma solução que faça exatamente o que descrevi acima. Ter cada arquivo em sua própria guia TERMINAL me permitiria abri-los/fechar/suspendê-los temporariamente individualmente e geralmente permitiria mais conveniência.

Responder1

Se entendi sua pergunta corretamente, o que você deseja é a opção -p. vim -p * abrirá todos os arquivos do diretório atual em suas próprias guias na mesma janela.

Responder2

Depois de fuçar um pouco, consegui fazer o que queria com um script perl simples:

Fiquei travado antes porque não consegui abrir uma guia na mesma janela. Agora percebo que o comando foi criado para criar uma nova instância de uma janela de terminal.

Então:

gnome-terminal --tab-with-profile=def 

não abrirá uma nova aba como eu queria, mas abrirá uma nova janela (def é o nome do meu perfil)

MAS:

gnome-terminal --tab-with-profile=def --tab-with-profile=def

IRÁ abrir 2 guias em uma janela (mas não na minha janela atual, o que é bom)

Posso dar-lhes um título e executar comandos para:

gnome-terminal  --tab-with-profile=def --title="foo" -e "vim foobar.txt"

abre uma nova janela (guia única), abre foobar.txt no vim e intitula a guia para mim

Com isso em mente, consegui escrever o seguinte programa:

workTime.txt:

#!/usr/bin/perl
use v5.14;


my $wd = '/home/luke/Pokemon-Battle-Simulator';
chdir($wd);

opendir(DIR,$wd);
my @files = readdir(DIR);

my $cmd = 'gnome-terminal';
my $tab = ' --tab-with-profile=def';
for my $file(@files)
{
    if (($file  ne ".") and ($file ne ".."))
    {
        my $title = '--title=' . $file;
        my $e = "-e 'vim " . $file . "'";
        $cmd .= join(' ', $tab, $title, $e); 
    }
}
print $cmd;

`$cmd`

Responder3

Você pode querer dar uma olhada na ferramenta unix 'tela'. É um "multiplexador" de terminal que abre vários terminais em uma única conexão (ssh, telnet ou local). É configurável para abrir automaticamente vários shells ou comandos (por exemplo, vim, top, etc) em telas diferentes com uma nova conexão. Ele também pode preservar sessões durante desconexões, portanto, se você estiver editando um documento e seu ISP desistir por alguns minutos, você poderá voltar imediatamente para as edições.

ssh + tela + emacs = vitória!

informação relacionada