¿Cómo dividir el terminal en más de una "vista"?

264

Desde vi, si emite el comando :sp, la pantalla se divide en dos "vistas", lo que le permite editar más de un archivo desde el mismo terminal.

En esa misma línea, ¿hay alguna manera de tener múltiples shells abiertos en la misma terminal?

Justin Ethier
fuente

Respuestas:

351

Puedes hacerlo en screenel terminal multiplexor.

  • Para dividir verticalmente: ctrlaentonces |.
  • Para dividir horizontalmente: ctrlaentonces S(mayúsculas 's').
  • Para no dividir: ctrlaentonces Q(mayúscula 'q').
  • Para cambiar de uno a otro: ctrlaluegotab

Nota: Después de separarse, lo que necesita para entrar en la nueva región y comenzar una nueva sesión a través ctrlacontinuación, cantes de poder utilizar esa área.

EDITAR, uso básico de la pantalla:

  • Nueva terminal: ctrlaentonces c.
  • Siguiente terminal: ctrlaentonces space.
  • Terminal anterior: ctrlaentonces backspace.
  • Enésima terminal ctrlaentonces [n]. (funciona para n∈ {0,1 ... 9})
  • Cambiar entre terminales usando la lista: ctrlaluego " (útil cuando hay más de 10 terminales)
  • Enviar ctrlaa la terminal subyacente ctrlaentonces a.
concha
fuente
18
Tmux también hace esto, y muchos programas de terminal tienen vistas y pestañas divididas.
Shawn J. Goff
3
@AaronNewton ctrl+aluego suelta todo shift+s(no sé para el bloqueo de mayúsculas, el mío está desactivado)
shellholic
44
Ctrl A Shift Sdivide la pantalla, luego Ctrl A Tabcambia a la otra división y Ctrl A ccrea un indicador de bash. ¿Hay screenalguna forma de que estos comandos se ejecuten automáticamente al iniciar para que no tengamos que ejecutarlos todo el tiempo?
Michael Butler
2
¿Qué versión de pantalla para la división vertical? La versión que he instalado es 4.00.03, que es la misma que la última descarga disponible de todos los espejos que he comprobado.
Brian Vandenberg
1
¿Cómo hago que una de mis ventanas verticales sea más ancha que la otra? Quiero una división 30 | 30 | 40.
mpen
108

Pruebe tmux (Terminal MUltipleXer):

captura de pantalla de tmux

Y para entender la diferencia entre session, windowy pane: tmuxnestings

Yonatan Maman
fuente
20
¿Pantalla vs tmux? tmux es probablemente mejor para uso avanzado y es más moderno, pero la pantalla está instalada en todas partes y funciona bien.
user606723
Otros tmuxrecursos de gran ayuda son: introducción , configuración , primer y hoja de trucos .
not2qubit
1
@ user606723, entre otras cosas, la configuración de Tmux es realmente legible; no como un perro rodado sobre el teclado. Por supuesto, puede conformarse con un contenedor similar byobu(que envuelve ambos multiplexores de terminal), pero Tmux parece ser superior en varios aspectos además de la configuración. Y ya era superior hace varios años. Screen necesitaba parches para dividir ambas direcciones y Tmux lo sacó de la caja. Por último, pero no menos importante, la licencia puede ser un argumento para Tmux o Screen, dependiendo de dónde se encuentre.
0xC0000022L
1
@ user606723 a partir de 2019, esto ya no es cierto. screenfalta en una instalación relativamente nueva de Fedora 30, mientras tmuxestá presente.
Sora.
64

Como se menciona en los comentarios, además de la pantalla, otro buen multiplexor de terminales es tmux . Puede consultar el manual para obtener una descripción completa y una referencia de comando. Algunas operaciones básicas para comenzar son:

  • Pantalla dividida verticalmente: CtrlbyShift5
  • Pantalla dividida horizontalmente: CtrlbyShift"
  • Alternar entre paneles: Ctrlbyo
  • Cerrar el panel actual: Ctrlbyx

Puede lograr diseños más complejos dividiendo paneles. También puede tener varias ventanas con paneles y alternar entre ellas.

  • Crear ventanas: Ctrlbyc
  • Cambie a la siguiente ventana: Ctrlbyn
  • Cambiar a la ventana anterior: Ctrlbyp
  • Destruye la ventana actual: CtrlbyShift7
dkaragasidis
fuente
3
Tenga en cuenta que puede cambiar el prefijo de tmux a algo más fácil de alcanzar que <Cb>.
21

Si desea un programa que simplemente divida un terminal¹, hay splitvt . Hay programas que dividen un terminal y hacen muchas otras cosas además, como Screen, Tmux, Emacs, ...

¹ Es la terminal que estás dividiendo, no el shell.

Gilles
fuente
+1, buen punto sobre cómo el terminal es lo que realmente se está dividiendo.
Justin Ethier
19

Además de las excelentes sugerencias en Screen y Tmux, si está utilizando algún tipo de administrador de ventanas que le pueda interesar, Terminator puede dividir horizontalmente o verticalmente modas, además de pestañas y más ... aquí hay una lista de características tomadas del sitio web del autor :

  • Organizar terminales en una cuadrícula
  • Pestañas
  • Arrastrar y soltar reordenamiento de terminales
  • Muchos atajos de teclado
  • Guarde varios diseños y perfiles a través del editor de preferencias de la GUI
  • Mecanografía simultánea a grupos arbitrarios de terminales

Echa un vistazo a las capturas de pantalla en el sitio del proyecto.

Lo más importante es que puedes combinar Terminator con Screen / Tmux.

alemani
fuente
2
Tenga en cuenta que el uso de divisiones Terminator será menos conveniente al copiar entre dos ventanas de su editor.
gb.
Puede editar varios paneles a la vez después de agrupar los paneles (o simplemente seleccionar todos a la vez), y también puede editar los accesos directos para cambiar de panel. Tengo ctrl-shift-h/j/k/lpara moverme entre paneles y ctrl- (shift) -tab para cambiar entre pestañas, simplemente funciona de maravilla.
sjas
1
bueno podemos hacer clic en ellos para enfocarnos; pero todavía no puedo encontrar una manera de distribuir uniformemente los terminales en la cuadrícula, es un desastre arreglarlo a mano, también necesito agregar terminales dinámicamente, por lo tanto, actualizarlos en una cuadrícula distribuida uniformemente, ¿alguna idea?
Acuario Power
Terminator es un programa de X-windows, no un programa de línea de comandos como lo son tmux y screen. El OP se menciona específicamente same terminaldos veces, por lo que Terminator o tilix (como lo menciona @sjas) no son buenas sugerencias. Si está en una sesión ssh con un servidor remoto sin un servidor X, ni siquiera podrá ejecutar estas herramientas.
haridsv
8

Konsole para KDE tiene una función integrada :

  • Ctrl+ (para dividir la vista izquierda / derecha

  • Ctrl+ )a vista dividida arriba / abajo

  • Shift+ Tabpasará por las vistas divididas

  • Shift+ Left Arrow/ Right Arrowalternará la vista actual a través de las pestañas / vistas

  • Ctrl+ Shift+ Xpara cerrar la vista actual

MrUser
fuente
¿Conoces los atajos de teclado para alternar entre los paneles de vista dividida en konsole?
LangeHaare
1
@LangeHaare SHIFT + TAB pasará por los paneles de vista
chaptuck
7

Use terminador .

Debería estar disponible a través de su administrador de paquetes favorito, si utiliza una distribución convencional.

Es el único multiplexor de terminales donde el pegado de copias funciona correctamente desde los paneles de su ventana.

Actualización: tilixes una terminatoralternativa que está casi completamente a la par con el terminador (y donde el copypasting también funciona correctamente). terminatorSin embargo, después de evaluarlo, aún me quedo con él debido a un mejor manejo de pestañas y una configuración más fácil (desde mi POV).

sjas
fuente
Terminator no es técnicamente un multiplexor: "Un multiplexor de terminal es una aplicación de software que se puede utilizar para multiplexar varias consolas virtuales, lo que permite al usuario acceder a múltiples sesiones de terminal separadas dentro de una sola ventana de terminal o sesión de terminal remota". (de Wikipedia)
erb
Tampoco es el único multiplexor donde el pegado de copias funciona correctamente desde los paneles, tmux lo hace bien con la configuración adecuada.
erb
@erb: ¿qué debo configurar exactamente si no quiero seleccionar líneas completas que abarquen varias terminales al hacer triple clic y por qué no es esa la configuración predeterminada correcta?
sjas
1
Puede usar el modo de copia en tmux para hacer copias, si desea usar el mouse solo necesita habilitar el soporte del mouse, mi configuración con él está aquí: github.com/ErikBjare/dotfiles/blob/master/home/. tmux / ... Si desea utilizar el portapapeles del sistema con modo de copia, consulte esto: unix.stackexchange.com/questions/131011/…
erb
2
¿Eh? Por qué no? Puede hacer que funcione casi exactamente (si no exactamente) de la misma manera que seleccionando en el terminador. Solía ​​ser un usuario terminador por la misma razón, una vez que hice la configuración, nunca miré hacia atrás y ahora puedo ahorrar bastante RAM y otros recursos al cambiar a un emulador de terminal más liviano ya que la copia era lo único que me molestaba.
erb
4

Guake + Byobu

Soy un usuario feliz de Guake con Byobu dentro, que por defecto usa tmux( probablemente mejor que screen).

Tres pasos

  1. Instálelos (no se necesitan PPA en Ubuntu ni Debian, verifique otras distribuciones )

    sudo apt install guake byobu
  2. Agréguelo a los shells disponibles (como dije en este número de Guake Github ):

    which byobu | sudo tee -a /etc/shells
  3. En las preferencias de Guake ( guake-prefs), elija Byobu como intérprete predeterminado: imagen


  1. Opcional: Desmarque "Mostrar barra de pestañas", ya que usará Byobu para eso:

    imagen

  2. Si un atajo no funciona, intente deshabilitar los Guake que puedan interferir (en mi caso fue Ctrl+F2por división vertical): captura de pantalla

Otras sugerencias

  1. Aprenda accesos directos con Shift+ F1o este excelente screencast .
  2. Aprenda los comandos de terminal byobu disponibles con apropos byobu
  3. Para usar las teclas fn en Midnight Commander, use Alt+ o Shift+ F12para deshabilitar las teclas F byobu.

captura de pantalla

Pablo A
fuente
2

Pruebe la división vertical para la pantalla GNU

Este parche proporciona una función de división vertical para las versiones actuales de GNU Screen. La característica está diseñada para funcionar de la misma manera que el comando de división existente de la pantalla, pero dividiendo las regiones verticalmente en lugar de horizontalmente. Ambas formas de divisiones pueden usarse juntas en cualquier combinación / cantidad / orden deseada. Algo similar está programado para aparecer en la pantalla 4.1 de GNU pronto, y ya está disponible en CVS según este hilo de la lista de correo (y se ha incluido en los paquetes de pantalla de Debian y Ubuntu a partir de 4.0.3-10). Además, un proyecto reciente llamado ScreenWM está diseñado específicamente para trabajar con una pantalla parcheada vsplit (¡échale un vistazo!).

Narga
fuente
Para ser más específico, Ctrl+|divide screenen Ubuntu desde el principio.
Jonatan Öström