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?

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.

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


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

3
Observe que você pode alterar o prefixo do tmux para algo mais fácil de alcançar do que <Cb>.


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.


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


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).


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


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!).


Para ser mais específico, Ctrl+|divide o screenUbuntu imediatamente.
Jonatan Öström
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.