Script para abrir sesión de terminal personalizada

0

No estoy seguro de si el título logró lo que quiero hacer, pero aquí está:

Estoy trabajando en un proyecto de Python que involucra muchas clases. Yo uso Terminal Vim para hacer mi edición.

Como puede imaginar, es difícil tener que abrir 10 pestañas de terminales diferentes, titularlas y abrir el archivo correcto en todas ellas manualmente.

Me gustaría crear un script que use vim para abrir todos los archivos en un directorio en diferentes pestañas dentro de la misma ventana. Me gustaría que el guión titulara las pestañas como el nombre del archivo que está abriendo.

Yo uso el gnome-terminal.

Lógicamente, sé cómo podría hacerlo, pero parece que no puedo encontrar los comandos que necesito.

Parece que podré hacer lo que quiera con el comando gnome-terminal, pero parece que no puedo hacer que funcione correctamente.

EDITAR: vim -p * es útil, pero me gustaría encontrar una solución que haga exactamente lo que describí anteriormente. Tener cada archivo en su propia pestaña TERMINAL me permitiría abrirlos / cerrarlos / suspenderlos temporalmente de forma individual y, en general, permitiría una mayor comodidad.

Luke
fuente

Respuestas:

1

Si entiendo tu pregunta correctamente, lo que quieres es la opción -p. vim -p * abrirá todos los archivos en el directorio actual en sus propias pestañas en la misma ventana.

WrathOfTux
fuente
Solo me voló la cabeza.
Lucas
Feliz de ayudar. ;)
WrathOfTux
0

Después de hurgar un poco, pude hacer lo que quería con un simple script perl:

Estaba colgado antes porque no podía abrir una pestaña en la misma ventana. Ahora me doy cuenta de que el comando está diseñado para crear una nueva instancia de una ventana de terminal.

Entonces:

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

no abrirá una nueva pestaña como quería, pero abrirá una nueva ventana (def es el nombre de mi perfil)

PERO:

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

ABRIRÁ 2 pestañas en una ventana (solo que no es mi ventana actual, lo cual está bien)

Puedo darles un título y ejecutar comandos para:

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

abre una nueva ventana (pestaña única), abre foobar.txt en vim y titula la pestaña para mí

Con esto en mente, pude escribir el siguiente 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`
Luke
fuente
0

Es posible que desee ver la herramienta de pantalla 'Unix'. Es un "multiplexor" de terminal que abre múltiples terminales a través de una sola conexión (ssh, telnet o local). Es configurable para abrir automáticamente múltiples shells o comandos (por ejemplo, vim, top, etc.) en diferentes pantallas con una nueva conexión. También puede preservar las sesiones a través de desconexiones, por lo que si está en medio de la edición de un documento y su ISP se desconecta por unos minutos, puede volver a las ediciones.

ssh + screen + emacs = ¡gana!

Jeff-Inventor ChromeOS
fuente