Come faccio a far funzionare la ricerca inversa di bash in Terminal.app senza che venga visualizzato un output confuso?

StackOverflow https://stackoverflow.com/questions/35563

  •  09-06-2019
  •  | 
  •  

Domanda

Utilizzando Terminal.app su OS X 10.5, spesso vedi che i comandi risultano confusi quando esegui una ricerca inversa con Bash.Esiste una sorta di termcap o forse un comando bash shopt che può risolvere questo problema?È molto fastidioso.

Passaggi per riprodurre:Apri Terminal.app, esegui la ricerca inversa fino a un comando più lungo.Premi <ctrl>-E una volta trovato il comando.Il cursore va alla fine della riga, ma la visualizzazione non si aggiorna.

Immagino che si tratti di una sorta di problema con la libreria readline su OS X.È più un problema con l'aggiornamento della posizione del cursore dopo una ricerca che altro.Fondamentalmente, ctrl-a e ctrl-e tendono a interrompere l'output della ricerca.

Immagine di errore del terminale OS X http://involution.com/images/osxterminal.png

In quanto sopra, dovrebbe essere visualizzata la prima parte del comando e il cursore dovrebbe trovarsi alla fine della riga, ma non lo è.Non puoi letteralmente vedere cosa stai modificando quando ciò accade.

È stato utile?

Soluzione

Sono riuscito a impostare il mio TERM su xterm anziché su xterm-color e questo risolve il problema.(esporta TERM=xterm).

Altri suggerimenti

Potresti voler dare un'occhiata a questo post.

bash-prompt-in-os-x-terminal-rotto

Ho avuto lo stesso problema e aveva a che fare con la variabile PS1.Fammi sapere se questo aiuta.

Se il prompt ha colori, si tratta di un bug riconosciuto.
Vedere riportare un errore messaggio#00019.

Ho riscontrato questo bug e, anche se non so come risolverlo, puoi aggirarlo premendo <down><up>

Non sono sicuro che questo sia il problema qui, ma una causa molto comune di una schermata incasinata in bash (con qualsiasi emulatore di terminale, non solo Terminal.app) è il ridimensionamento della finestra.

Bash leggerà la dimensione della finestra all'avvio e quindi presumerà che non sia cambiata.Quando la finestra viene ridimensionata, verrà inviato un segnale a qualunque app stia attualmente leggendo dalla console.Se questo non è bash (perché in quel momento forse stai utilizzando un editor di testo), allora bash non lo saprà.

La soluzione in questo caso è ridimensionare nuovamente la finestra in modo che bash riceva il segnale e noti la nuova dimensione.

Non riesco a riprodurlo, neanche colpendolo Ctrl+E, Ctrl+UN oppure i tasti freccia aggiornano correttamente la riga di comando.Stai utilizzando la versione 10.5.4?E' forse un bug delle versioni precedenti?

Nel peggiore dei casi, potresti avviare il server X (da qualche parte sotto le utilità) e avviare un vero xterm.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top