Come posso disattivare "scrolling the history" in iTerm2


291

Ho installato il nuovo iTerm 2. Mi ha chiesto in una barra gialla in alto se volevo abilitare una funzionalità del mouse. Sfortunatamente non ricordo più la frase esatta.

Per caso ho approvato. Ora, quando uso la rotellina del mouse su iTerm, non scorre più verso l'alto ma invece attiva la cronologia dei comandi. Come se premessi il cursore su.

Non sono riuscito a trovare le impostazioni giuste per disattivarlo di nuovo. Qualcuno sa dove posso attivare questa opzione?

Grazie per l'aiuto!


4
Suppongo che tu usi iTerm2.9 e il messaggio che hai visualizzato è "Vuoi che la rotellina del mouse sposti il ​​cursore in programmi interattivi come questo?". Tuttavia non riesco a trovare un'interfaccia per attivarlo, hai ancora il problema?
sel-fish,

1
Sì, ma solo quando ho effettuato l'accesso a un server tramite SSH. Non so come questo possa essere collegato.
Gambo,

"solo quando accedo a un server tramite ssh", vuoi dire che quando usi iTerm2 per operazioni locali, ciò non accadrà? Usi un 'profilo' diverso quando 'accedi a un server tramite ssh'?
sel-fish,

Per attivare e disattivare la schermata alternativa è necessario che sia inviato un carattere di controllo del terminale. Sto pensando che sia meglio a lungo termine (non specifico di iTerm2 o vim o meno) imparare cos'è quel personaggio di controllo. Potrebbe essere ESC [ ? 1 0 4 9 lo ESC [ ? 1 0 4 7 lo ESC [ ? 47 l(( gnu.org/software/screen/manual/html_node/Control-Sequences.html )
dlamblin

2
questo ha iniziato a succedere in modo casuale per me .. frustrante quando stai cercando di
sfogliare i

Risposte:


494

Alcuni terminali, incluso iTerm2, hanno una funzione in cui cambiano il comportamento del mouse con rotellina quando un programma a schermo intero come vi, o screeno tmuxè in esecuzione. Questo succede quando quei programmi usano lo schermo alternativo , per fornire una funzione utile. Normalmente, quando si utilizza lo schermo alternativo in iTerm2, il mouse della rotella si comporta come la barra di scorrimento, facendo scorrere l'intero schermo su / giù. Ma quando questa funzione è abilitata, iTerm2 invia i tasti cursore su / giù, modificando la cronologia dei comandi.

Come suggerito in un altro commento, selezionare il menu Preferenze :

inserisci qui la descrizione dell'immagine

e in questo, selezionare la scheda Avanzate . Scorri verso il basso fino alla sezione Mouse ,

inserisci qui la descrizione dell'immagine

e attiva la voce

La rotella di scorrimento invia i tasti freccia in modalità schermata alternativa

da a No . Dovrai riavviare iTerm2 per rendere effettive le modifiche. (Con iTerm2 v3.1.5 le modifiche diventano effettive senza riavviare.)


2
L'ho provato prima di scrivere il commento - basta attivare l'opzione non era sufficiente.
Thomas Dickey,

Potrebbe dipendere dalla versione. In 3.0.2, la commutazione è decisamente sufficiente. Infatti, se si è in modalità schermata alternativa e questa impostazione è disattivata e si tenta (e non si riesce) di scorrere con il mouse e successivamente premere il tasto freccia su o giù, verrà richiesto di attivare questa funzione proprio nel finestra terminale.
George,

3
3.0.12 non deve essere riavviato perché questo abbia effetto.
dhempler,

21
// Mi piace questa funzione e la uso in Vim. Come uscire dalla modalità schermo alternativo in una determinata finestra del terminale? AGGIORNAMENTO: nel terminale che si trova in modalità schermata alternativa, aprire un programma terminale che attiva la modalità schermata alternativa. Esci da quel programma in modo pulito. Questo pone temporaneamente fine al problema. Penso che ciò indichi che il problema è stato causato dall'uscita da un programma che utilizzava la funzione Schermo alternativo in un modo insolito.
Nathan Basanese,

7
Signore, mi ha salvato dalla pura follia.
BK,

60

Se sei in trappola nella modalità cronologia a scorrimento, puoi scappare eseguendo vi ed esci direttamente. Puoi anche scegliere un altro programma che utilizza la schermata alternativa e esce direttamente.

Lo scorrimento della cronologia con la rotellina del mouse non dovrebbe in teoria mai accadere. Succede in pratica perché a volte la modalità schermo alternativo non viene ripristinata correttamente. La risposta accettata risolve il problema disattivando una funzione utile, vale a dire lo scorrimento in vi, less, ... con la rotellina del mouse o il trackpad. È possibile mantenere l'opzione dalle preferenze avanzate:

La rotella di scorrimento invia i tasti freccia in modalità schermata alternativa

impostato su sì. A volte sarai trappola nella modalità cronologia di scorrimento. Ma se sai scappare, non è un problema.


2
Grazie per il consiglio! Questo mi ha aiutato :)
jj172 il

1
Grazie uomo! Entrare e uscire da vi non mi è stato d'aiuto nel mio caso per qualche motivo, ma ha funzionato dopo aver inserito una pagina man ed averlo
chiuso

1
Questo è stato così utile. Lo scorrimento è stato all'improvviso aggiunto [[A^e [[B^alla riga di comando invece di scorrere la finestra. Sapevo che questo non era un comportamento normale. Prima di allora avevo lasciato il computer in nanouna shell SSH che era stata disconnessa quando ho chiuso il mio laptop. Quella brusca uscita fu ovviamente il colpevole. La semplice apertura di una nuova scheda in iTerm2 ha risolto questo problema.
Colin Marshall,

Purtroppo quando si utilizza screennon è possibile utilizzare questo trucco per uscire dalla modalità schermo alternativo. Quindi, se stai usando screenmolto (come me), disabilitare completamente la funzione è un salvavita.
mvreijn,

Preferisco questa risposta, perché è molto utile navigare nelle app a schermo intero con il trackpad, quindi disabilitare la funzione nelle preferenze non è stata una buona opzione per me :) Grazie per aver condiviso questo suggerimento :)
Patrick Ferreira,

42

Probabilmente hai solo bisogno di uscire dalla console alternativa.

Provare: tput rmcup


1
Ottima risposta A + 💯
dps

Risposta molto migliore: questo ti consente di scorrere la cronologia pur essendo in grado di scorrere mentre sei in vim. Grazie!
JonLuca,

10

Preferenze: Avanzate: Mouse: la rotella di scorrimento invia i tasti freccia in modalità alternativa


2
Sto riscontrando lo stesso identico problema descritto, ma nel nuovissimo mouse iTerm non è incluso in Prefences: Avanzato. Trigger, selezione intelligente e cronologia semantica. Qualcuno sa un altro modo per risolvere questo problema?
mikeLspohn,

9

Con iTerm2 puoi anche tenere premuto Opzione mentre usi la rotella di scorrimento per forzare lo scorrimento della finestra, nel caso in cui desideri che la ruota continui a funzionare in vim.


funziona, ma come posso tornare ai valori predefiniti, quando non ho dovuto tenere premuto il tasto opzione
meso_2600

2

Il comportamento visualizzato è quello previsto (e corretto) nella schermata alternativa. L'unico problema che hai è che sei caduto in bash, o qualsiasi altra cosa, sullo schermo alternativo, possibilmente mentre perdi una connessione o da un VIM ucciso o meno. Ad esempio, eri dentro less +F /var/log/somethinge sei stato disconnesso.

Vedi qualcuno ha già scritto che il tput rmcupcomando uscirà dalla schermata principale.

Sono anche andato avanti e ho cercato alcuni personaggi di controllo terminale. Può essere uno dei seguenti: ESC [ ? 1 0 4 9 loppure ESC [ ? 1 0 4 7 loppure ESC [ ? 47 l(gnu.org/software/screen/manual/html_node/Control-Sequences.html) con una preferenza alla prima.

In genere ho successo in iTerm2 con in echo -e '\e[?1049l'realtà non trovo rmcuppiù facile da ricordare, ripristinare la memoria della console ?.


1

Avevo lo stesso problema e nessuna delle soluzioni che ho letto e provato ha funzionato. Ciò che ha risolto il mio problema è stato disattivare Secure Keyboard Entry e ora quando uso il mouse per scorrere in ssh e in modalità terminale su macOS 10.13 funziona come mi aspetto anch'io!

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.