Come scorrere verso l'alto nella finestra del terminale mentre viene generato un nuovo input senza essere riportato in fondo (Linux)


37

In Ubuntu, voglio scorrere verso l'alto mentre un comando è in esecuzione nella finestra del mio terminale e genera un nuovo output (in realtà il comando in esecuzione è rspec). Posso scorrere verso l'alto, ma ogni volta che rspec genera una nuova riga di output della console, mi riporta in fondo. C'è un modo per scorrere verso l'alto? Sto usando terminator su Linux Mint / Ubuntu 12.04 LTS

AGGIORNARE

Ho trovato una possibile soluzione alternativa a Terminator che dice

stty ixon

puoi attivare "Controllo del flusso XON / XOFF per l'uscita del terminale. Essere in grado di mettere in pausa l'uscita digitando ^ S e riprenderla digitando ^ Q [...]"

Questo non è assolutamente quello che volevo però, senza dover mettere in pausa l'output (e forse chiedendomi quando dimenticando di riaccenderlo), ho pensato che potrebbe esserci un semplice tasto modificatore come shft-alt con la rotellina del mouse. soluzioni migliori?


Questa è una cosa che mi piace molto di LXTerminal (LXDE).
Matthew Lundberg,

Stai scorrendo con Shift-PgUp o con la barra di scorrimento?
ott--

@MatthewLundberg Normalmente con rotellina del mouse, quindi barra di scorrimento. Ma non funziona anche con shift-pgup :( Posso avere anche lxterminal all'interno di terminator, lo sai?
Yo Ludke,

1
xfce4-terminalha un'opzione chiamata Scorri in uscita che puoi deselezionare e fa esattamente quello che hai chiesto.
Martín Canaval,

1
Come soluzione alternativa, è possibile inviare l'output a un file, aprire un altro terminale e tail -f file.txtvederlo mentre viene generato. Ciò lascerebbe il tuo 1 ° terminale libero di scorrere indietro e ti consentirà comunque di guardare l'output in tempo reale. Non elegante lo so.
terdon,

Risposte:


53

Anche se sono un po 'in ritardo, sto pubblicando questo qui in modo che chiunque venga qui ottenga una soluzione. Per me, la soluzione allo stesso problema era:

Preferenze di Terminator -> Scheda Profili -> Scorrimento [sottoscheda] -> Deseleziona l'opzione 'Scorri sull'output'.

L'aspetto positivo di questa opzione è che scorrerà comunque sull'output quando ci si trova in fondo all'output, ma non appena si scorre verso l'alto, si fermerà e non ti disturberà anche se il contenuto dell'output è ancora generato.

Spero che aiuti


cool :) È possibile creare un collegamento per attivare questa opzione?
Yo Ludke,

1
Ho cercato un po ', ma non ho trovato alcun modo per attivarlo con un collegamento all'interno di Terminator. Tuttavia, poiché l'opzione è scritta nel file di configurazione del terminatore in "$ HOME / .config / terminator / config", dovrebbe essere possibile assegnare un collegamento globale a un comando che attiva e disattiva l'opzione direttamente nel file di configurazione.
Chikitulfo,

4
Tuttavia, apportare tale modifica al file di configurazione non influirà sulle istanze di terminatore già in esecuzione, ma riguarderà solo le nuove istanze di terminatore avviate dopo la modifica. Quindi, se vuoi attivarlo su un terminatore in esecuzione, devi farlo manualmente, subito. In ogni caso, con l'opzione impostata su false, non appena si scorre verso il basso fino all'ultima riga, continua lo scorrimento automatico sull'output. Smette di scorrere automaticamente se si scorre manualmente verso l'alto. Quindi non vedo alcuna reale necessità di attivare e disattivare l'opzione.
Chikitulfo,

1

tail -f log.txt | lessverrà aggiornato per avanzare alle nuove informazioni e sarà quindi possibile salire o scendere. Puoi anche utilizzare lessle funzionalità di ricerca e così via. Con il metodo pipe, è anche possibile analizzare l'output in movimento.

E la stessa idea, ma senza il tubo: less +F log.txt.
(Ciò presuppone che tu possa lavorare con i tuoi contenuti in questo modo.)

Il vecchio modo Unix era quello di premere Ctrl-S nel tuo terminale per fermarlo, e Ctrl-Q per riavviare lo scorrimento dell'output - questo è fondamentalmente ciò che ti sta facendo terminatore stty ixon.
Con le barre di scorrimento aggiunte, questo mi sembra abbastanza decente: premi Control-S, scorri verso l'alto fino a quello che ti piace, quindi Control-Q per tornare indietro. Sì, a volte ti dimenticherai di annullare la pausa dell'output.

Perché sono eccezionalmente pigro e perché mi piace la flessibilità del reindirizzamento dell'output, userei tail -f con il pipe (supponendo che si adatti al caso). Quindi posso fermarlo, freccia su e aggiungere qualcosa come un grep, e funziona ancora: tail -f tac_plus.log | less | egrep 'peerip'

Getta qualche cats e teelì dentro e hai una vera festa.


Volevo usarlo per le specifiche di rspec - Il problema è che, con la coda / meno approcci, i colori si perdono (l'output è bianco e nero anziché verde / rosso se
eseguo

@YoLudke Non ho familiarità con rspec o come funziona la colorazione. Ci sono modi per passare i colori attraverso grep, ecc., Ma potrebbe non funzionare qui. Stai facendo qualcosa come eseguire puntando rspec a un processo persistente / loop / di lunga durata e ottenere il tuo output da quello?
Belacqua,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.