Como dividir o terminal em mais de uma "visualização"?

264

De vi, se você emitir o comando :sp, a tela se divide em duas "visualizações", permitindo editar mais de um arquivo no mesmo terminal.

Nessa mesma linha, existe uma maneira de abrir várias conchas no mesmo terminal?

Justin Ethier
fonte

Respostas:

350

Você pode fazer isso no screenmultiplexador de terminal.

  • Para dividir verticalmente: ctrlaentão |.
  • Para dividir horizontalmente: ctrlathen S(maiúsculas 's').
  • Para cancelar a divisão: ctrlathen Q('q' maiúsculo).
  • Para mudar de um para o outro: ctrlaem seguida,tab

Nota: Após a divisão, você precisa ir para a nova região e iniciar uma nova sessão via ctrla, em seguida, cantes que você pode usar essa área.

EDIT, uso básico da tela:

  • Novo terminal: ctrlaentão c.
  • Próximo terminal: ctrlaentão space.
  • Terminal anterior: ctrlaentão backspace.
  • N'th terminal ctrlaentão [n]. (funciona para n∈ {0,1… 9})
  • Alterne entre terminais usando a lista: ctrlathen " (útil quando mais de 10 terminais)
  • Envie ctrlapara o terminal subjacente ctrlaentão a.
shellholic
fonte
18
O Tmux também faz isso, e muitos programas de terminal têm visões e guias divididas.
Shawn J. Goff
3
@AaronNewton ctrl+aentão libera tudo então shift+s(não sei para caps lock, o meu está desativado) #
shellholic
4
Ctrl A Shift Sdivide a tela, Ctrl A Tabmuda para a outra divisão e Ctrl A ccria um prompt do bash. Existe alguma maneira de executar esses comandos automaticamente ao iniciar, screenpara que não tenhamos que executar os comandos o tempo todo.
18712 Michael Butler
2
Qual versão da tela para a divisão vertical? A versão que instalei é a 4.00.03, que é a mesma do último download disponível de todos os espelhos que verifiquei.
Brian Vandenberg
1
Como faço para que uma das minhas janelas verticais seja mais larga que a outra? Eu quero uma divisão 30 | 30 | 40.
MPEN
108

Experimente o tmux (Terminal MUltipleXer):

captura de tela tmux

E para entender a diferença entre session, windowe pane: tmuxnestings

Yonatan Maman
fonte
20
Screen vs tmux? O tmux provavelmente é melhor para uso avançado e é mais moderno, mas a tela está instalada em todos os lugares e funciona muito bem.
user606723
Outros ótimos tmuxrecursos de ajuda são: introdução , configuração , primer e cábula .
not2qubit
1
@ user606723 entre outras coisas, a configuração do Tmux é realmente legível; não como um cachorro rolando sobre o teclado. É claro que você pode se contentar com um invólucro do tipo byobu(que envolve os dois multiplexadores de terminal), mas o Tmux parece ser superior em vários aspectos, além da configuração. E já era superior há vários anos. A tela precisava de patches para dividir as duas direções e o Tmux o tirou da caixa. Por último, mas não menos importante, a licença pode ser um argumento para o Tmux ou o Screen, dependendo da sua posição.
0xC0000022L
1
@ user606723 a partir de 2019, isso não é mais verdade. screenestá ausente em uma instalação relativamente nova do Fedora 30, enquanto tmuxestá presente.
Sora.
64

Como mencionado nos comentários, além da tela, outro bom multiplexador de terminal é o tmux . Você pode consultar o manual para obter uma descrição completa e uma referência de comando. Algumas operações básicas para começar são:

  • Tela dividida verticalmente: CtrlbeShift5
  • Tela dividida horizontalmente: CtrlbeShift"
  • Alternar entre painéis: Ctrlbeo
  • Fechar o painel atual: Ctrlbex

Você pode obter layouts mais complexos dividindo os painéis. Você também pode ter várias janelas com painéis e alternar entre elas.

  • Crie janelas: Ctrlbec
  • Alterne para a próxima janela: Ctrlben
  • Mudar para a janela anterior: Ctrlbep
  • Destruir a janela atual: CtrlbeShift7
dkaragasidis
fonte
3
Observe que você pode alterar o prefixo do tmux para algo mais fácil de alcançar do que <Cb>.
21

Se você quer um programa que apenas divide um terminal¹, há splitvt . Existem programas que dividem um terminal e fazem muitas outras coisas, como Screen, Tmux, Emacs,…

¹ É o terminal que você está dividindo, não a casca.

Gilles
fonte
+1, bom ponto sobre como o terminal é o que realmente está sendo dividido.
Justin Ethier 21/02
19

Além das excelentes sugestões sobre Screen e Tmux, se você estiver usando algum tipo de gerenciador de janelas, poderá estar interessado no Terminator. Você pode dividir modas horizontal ou vertical, além de guias e muito mais ... aqui está uma lista de recursos retirados do site do autor :

  • Organizar terminais em uma grade
  • Guias
  • Arrastar e soltar a reordenação de terminais
  • Muitos atalhos de teclado
  • Salve vários layouts e perfis através do editor de preferências da GUI
  • Digitação simultânea para grupos arbitrários de terminais

Dê uma olhada nas capturas de tela no site do projeto.

Mais importante, você pode combinar o Terminator com o Screen / Tmux.

alemani
fonte
2
Observe que o uso de divisões do Terminator será menos conveniente ao copypasting entre duas janelas do seu editor.
gb.
Você pode editar vários painéis de uma só vez depois de agrupá-los (ou apenas selecionar todos de uma vez) e também pode editar os atalhos para alternar painéis. Eu tenho ctrl-shift-h/j/k/lpara mover entre painéis, e ctrl- (shift) -tab para alternar entre as guias, ele simplesmente funciona.
S2
1
bom, podemos clicar neles para focar; mas ainda não consigo encontrar uma maneira de distribuir uniformemente os terminais na grade, é apenas uma bagunça ser consertada manualmente, também preciso adicionar dinamicamente terminais, portanto, atualizá-los em uma grade uniformemente distribuída, alguma ideia?
Poder de Aquário
O Terminator é um programa X-windows, não um programa de linha de comando como o tmux e o screen. O OP mencionado especificamente same terminalduas vezes, portanto, Terminator ou tilix (como mencionado por @sjas) não são boas sugestões. Se você estiver em uma sessão ssh em um servidor remoto sem um servidor X, não poderá nem mesmo executar essas ferramentas.
haridsv
8

O Konsole para KDE possui uma função integrada :

  • Ctrl+ (para dividir a vista esquerda / direita

  • Ctrl+ )para Split View Top / Bottom

  • Shift+ Tabpercorrerá as visualizações divididas

  • Shift+ Left Arrow/ Right Arrowalterna a visualização atual pelas guias / visualizações

  • Ctrl+ Shift+ Xpara fechar a visualização atual

MrUser
fonte
Você conhece os atalhos do teclado para alternar entre os painéis de exibição dividida no konsole?
LangeHaare
1
@LangeHaare SHIFT + TAB ciclo vontade por meio dos painéis de vista
chaptuck
7

Use terminator .

Deve estar disponível através do seu gerenciador de pacotes favorito, se você usar uma distribuição convencional.

É o único multiplexador de terminal em que copiar e colar funciona corretamente de dentro dos painéis da sua janela.

Atualização: tilixé uma terminatoralternativa quase igual à do terminador (e onde o copypasting funciona corretamente também). Depois de avaliá-lo, ainda permaneço no terminatorentanto devido ao manuseio mais agradável das guias e à configuração mais fácil (do meu POV).

sjas
fonte
O Terminator tecnicamente não é um multiplexador: "Um multiplexador de terminal é um aplicativo de software que pode ser usado para multiplexar vários consoles virtuais, permitindo que o usuário acesse várias sessões de terminal separadas dentro de uma única janela de terminal ou sessão de terminal remoto". (from Wikipedia)
erb
Também não é o único multiplexador em que a cópia e colagem funciona corretamente a partir de painéis, o tmux faz isso perfeitamente com a configuração adequada.
erb
@erb - o que exatamente é necessário configurar se eu não quiser selecionar linhas completas que abranjam vários terminais ao clicar três vezes e por que não é a configuração padrão sã?
sjas
1
Você pode usar o modo de cópia no tmux para fazer cópias. Se quiser usar o mouse, você só precisará ativar o suporte ao mouse. Minha configuração está aqui: github.com/ErikBjare/dotfiles/blob/master/home/. tmux /… Se você quiser usar a área de transferência do sistema com o modo de cópia, veja o seguinte: unix.stackexchange.com/questions/131011/…
erb
2
Hã? Por que não? Você pode fazê-lo funcionar quase exatamente (se não exatamente) da mesma maneira que selecionar no terminador. Eu costumava ser um usuário terminador pelo mesmo motivo. Depois de concluir a configuração, nunca mais olhei para trás e agora posso economizar bastante RAM e outros recursos, mudando para um emulador de terminal mais leve, pois a cópia era a única coisa que me incomodava.
erb
4

Guake + Byobu

Sou um usuário feliz do Guake com o Byobu , que por padrão é usado tmux( provavelmente melhor que screen).

Três passos

  1. Instale-os (não são necessários PPAs no Ubuntu nem no Debian, verifique outras distribuições )

    sudo apt install guake byobu
  2. Adicione-o aos shells disponíveis (como eu disse nesta edição do Guake Github ):

    which byobu | sudo tee -a /etc/shells
  3. Nas preferências do Guake ( guake-prefs), escolha Byobu como intérprete padrão: imagem


  1. Opcional: desmarque a opção "Mostrar barra de guias", pois você usará o Byobu para isso:

    imagem

  2. Se um atalho não funcionar, tente desativar os do Guake que possam interferir (no meu caso foi Ctrl+F2para divisão vertical): captura de tela

Outras sugestões

  1. Aprenda atalhos com Shift+ F1ou com este excelente screencast .
  2. Aprenda os comandos do terminal byobu disponíveis com apropos byobu
  3. Para usar as teclas fn no Midnight Commander, use Alt+ ou Shift+ F12para desativar as teclas F do teclado virtual.

captura de tela

Pablo A
fonte
2

Experimente a divisão vertical para a tela GNU

Este patch fornece um recurso de divisão vertical para as versões atuais do GNU Screen. O recurso foi projetado para funcionar da mesma maneira que o comando de divisão existente na tela, mas dividindo as regiões verticalmente em vez de horizontalmente. Ambas as formas de divisões podem ser usadas juntas em qualquer combinação / quantidade / ordem desejada. Algo semelhante está previsto para aparecer no GNU Screen 4.1 em breve, e já está disponível no CVS por este segmento da lista de discussão (e foi incluído nos pacotes de tela Debian e Ubuntu começando com 4.0.3-10). Além disso, um projeto recente chamado ScreenWM foi projetado especificamente para trabalhar com uma tela com correção de divisão de divisão (confira!).

Narga
fonte
Para ser mais específico, Ctrl+|divide o screenUbuntu imediatamente.
Jonatan Öström