Como obter o Mac OS X Terminal.app e tela / vim rolagem para jogar legal?


13

OSX 10.6.3 Terminal.app

Sou um usuário de tela bastante dedicado. Terminal.app buffer de linha e / ou rolagem não parece funcionar para mim. Isso é enquanto na tela qualquer coisa que passa pelo topo do quadro desaparece, não pode rolar de volta para. Isso parece funcionar bem em outros aplicativos de terminal gnome, cygwin. Talvez este seja um shell de env, config ou comando?

.screenrc:

startup_message off  
autodetach on  
shell -$SHELL  
vbell off  
defutf8 on  
caption always  
caption string "%{= wk}%w"  

Eu tentei usar defscrollback aqui com valores diferentes, mas não tem efeito.

algumas configurações de .bashrc:

set -o physical  
export TERM=xterm-color  
shopt -s checkwinsize  

Respostas:


15

No Lion, o tipo de terminal padrão é diferente, então você deve usar essa linha em seu .screenrc em vez de:

termcapinfo xterm-256color|xterm-color|xterm|xterms|xs|rxvt ti@:te@


Isso não funciona para mim :( "echo $ TERM" retorna "xterm-256color", então tenho certeza que é o valor terminal correto, mas nenhum valor que eu forneço entra em vigor.
Tim Harper

Isso funciona assim em Yosemite. Obrigado!
Steven Kramer

15

No seu diretório home, coloque o arquivo .screenrc o seguinte texto:

# Make xterm scrolling work properly with screen.
termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@

Funciona também para Terminal.app.


2
Eu sei que isso funcionou no Snow Leopard, mas não parece funcionar no OS X Lion. Bummer :(
Tim Harper

1
Isso foi exatamente o que eu estava procurando - trabalhando para mim no OS X Lion 10.7.3 com Terminal.app - fantástico!
dossy

Também funciona para mim no OS X Lion 10.7.5 (Nota: Há um pequeno erro na resposta; o arquivo no qual você precisa armazenar o comando é ~ / .screenrc, isto é, no seu diretório home, em um arquivo chamado ".screenrc" - não "screenrc". Eu editei a resposta agora para refletir isso.)
likethesky

8

Eu acho que deveria funcionar também, ainda mais universal:

termcapinfo xterm* ti@:te@

Isso seria mais universal. É legal:

termcapinfo * ti@:te@

Esta é a melhor resposta.
Steve Bennett

3

Velho fio eu percebo, mas pelo que vale a pena:

Se estiver usando um iTerm2 configurado corretamente no Mac OS X Mountain Lion 10.8.2, parece que não é necessário criar / editar um arquivo .screenrc, conforme a sugestão útil de Gareth acima.

  1. Instalar o iTerm2-1_0_0_20120726

  2. Inicie o iTerm2 & gt; Menu de perfil & gt; Perfis abertos & gt; selecione Padrão & gt; Editar perfil & gt; Separador Terminal & gt; Tick ​​ON:

    • Salvar linhas para rolar para trás quando a barra de status do aplicativo estiver presente
    • Rolagem ilimitada (opcional)
  3. Reinicie o iTerm 2 (ou inicie o novo shell)

  4. Teste-o: Pessoal eu SSH'd ao Ubuntu 12.04.1 LTS em AWS EC2 & gt; começou byobu (já configurado para usar a tela, em vez do padrão tmux) & gt; Scrollback funciona bem agora (mais, mo do que o Terminal do iTerm de qualquer maneira ..)

-dk


Isso é incrível!!
HaxElit

@ David Keenan Tão feliz que você postou esta solução!
ivan

2

Resposta curta:

Tipo ctrl-a + [ e use as teclas de rolagem / seta ou pgup / pgdwn . Para sair do "modo de rolagem" (não o nome real), pressione Esc

Resposta longa: este Este artigo sobre o buffer de rolagem da tela.


por favor, comente sobre o voto para baixo.
lajuette

Observe que esse método parece pausar o processo em execução. Que pode ou não ser desejado
cavalcade

1

Não sei se é possível obter o buffer de rolagem do Terminal para coletar e trabalhar com a rolagem da tela do gnu.

Eu recomendo que você leia mais sobre o pergaminho dentro da própria tela. Você precisará aprender algumas novas combinações de teclas - já que você já está usando a tela, duvido que isso o afugente.

Com uma pequena ajuda de Google , Encontrei um post chamado Trabalhando com o buffer de rolagem .

Eu realmente não esperava que o scrollback fosse integrado ao buffer do Terminal.app. Se você mudar de uma tela virtual para outra, o que acontece com o buffer do Terminal? Se você se desconectar de uma máquina e reconectar três horas depois, o seu buffer de terminal está muito fora de sincronia.

screen é minha pequena janela em outro servidor. Eu gosto que o buffer de rolagem da tela persiste com a sessão para que eu tenha acesso a ela de onde eu me conectar. Eu gosto que cada tela dentro da minha sessão tenha seu próprio buffer de rolagem.

Eu acho que você achou isso trabalhando no gnome e cygwin porque screen usa a funcionalidade 'tela alternativa' do xterm. Há mais discussão sobre isso na primeira pergunta sobre esta tela faq página.


obrigado, ótima informação. sim, o modo de cópia é muito vim-like, eu gosto. :)
rustychains

1

eu uso iTerm 2 . Existe uma opção sob profiles & gt; terminal que diz: "Salvar linhas para rolar para trás quando uma barra de status do aplicativo estiver presente". Isso e colocando:

defutf8 on
termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@

em screenrc fez o truque para mim. Rolando!


0

Se você for ao menu Terminal e selecionar Preferências ... clique na guia da janela na parte inferior, há opções para Rolagem, o botão de opção está selecionado como Ilimitado?


ilimitado é selecionado
rustychains

0

Percebo que este é um tópico antigo e foi respondido adequadamente, mas minha reputação não é alta o suficiente para apenas comentar a resposta apropriada. Na veia de esta resposta , você pode simplesmente colocar a variável de ambiente no rcfile:

termcapinfo $TERM ti@:te@ fez isso por mim. É como a resposta referenciada, mas sem curingas.


0

No meu caso, o problema com o Mac Terminal.app era que o meu perfil de terminal padrão não declarava o terminal como xterm-256color. Alterar o valor em "Declarar terminal como" sob o título "Terminfo" da guia "Avançado" das minhas configurações de perfil corrigiu o problema.

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.