No Bash ou ZSH, existe um oposto ao comando 'clear'?

1

Digitar clear em um shell cria várias novas linhas até que o histórico de saída acima esteja oculto. Existe um comando ou método que faz o oposto de claro? Que essencialmente move sua linha atual que você está editando para o meio ou para baixo da tela, exibindo o último histórico de seu shell acima dela?

A história de fundo para isso, é que estou tentando mapear uma chave no modo vi do bash / zsh para exibir o histórico anterior ou a saída anterior, mas sem perder o comando atual que estou editando.

    
por Akiva 25.07.2015 / 09:10

2 respostas

1

Navegar pelo histórico de saída não é o trabalho do shell (Bash / ZSH); eles não mantêm um registro da saída que os comandos dentro deles produziram. O histórico de saída é tratado pelo terminal, que hoje é tipicamente o Terminal GNOME ou o xterm. Ambos suportam pelo menos esses atalhos, como mencionado por @kos :

  • Shift - Subir página para mover no máximo um $LINES up
  • Shift - Page Down para mover no máximo um $LINES para baixo
por l0b0 25.07.2015 / 11:07
1

No bash, você pode vincular uma chave a um comando e, por exemplo, listar histórico de comando, enquanto no meio da digitação de um novo comando. Depois que o comando é executado, sua linha de entrada é restaurada no ponto foram originalmente em.

Por exemplo, dê o comando

bind -x '"\C-a": history'

Então control a irá mostrar o histórico.

Para permanência, adicione ao seu arquivo ~ / .inputc

"\C-a": history

Você pode substituir history por qualquer comando.

No zsh você tem um mecanismo embutido que empurra o buffer de entrada atual em uma pilha e permite que você dê um novo comando. Quando termina, o buffer de entrada anterior é restaurado. Então você digita: escape q history retornar .

Se preferir, você pode configurar uma ligação de widget zsh para mostrar o histórico abaixo do buffer de entrada atual que você está digitando. Por exemplo, para controlar a novamente (no seu ~/.zshrc ):

zle -N myhistory  
myhistory(){zle -M "$(history)";}
bindkey '^a' myhistory

Para manter o histórico de saída, talvez você queira usar screen -L , que mantém um log de toda a saída em um arquivo, que você pode seguir com uma ligação como acima. Você pode querer filtrar por cat -e ou algo assim, como o arquivo inclui todas as seqüências de escape terminais.

    
por meuh 25.07.2015 / 11:15