OS X Terminale equivalente di Ctrl + Sinistra / Ctrl + Destra

11

In Windows e Linux potrei sempre premere ctrl + o ctrl + per saltare una parola a sinistra oa destra nel terminale. Negli editor di testo sembra che + / funzioni, ma nessun dado nel terminale. Ho cercato su Google e non ho trovato nulla tranne una pagina di Wikipedia che afferma che + B / F fa il lavoro, ma tutto ciò che fa è stampare ∫ e ƒ caratteri al mio terminale (o ı e Ï se tengo ). Qualche idea?

    
posta Patrick Krecker 16.09.2010 - 02:45
fonte

7 risposte

12

Puoi usare la chiave , ma devi selezionare l'opzione per usarla come chiave "meta":

Una volta fatto ciò, + F e + B funzionerà come previsto.

    
risposta data 16.09.2010 - 03:38
fonte
9

Anche questo mi stava facendo impazzire, ma non volevo una correzione specifica per Terminal perché non usavo Terminal, e potendo usare SSH nella mia scatola OSX dovevo usare anche le combinazioni di tasti corrette.

Inoltre, personalmente, non mi importava della chiave come discusso in precedenza; Volevo mantenere la combinazione ctrl + & leftarrow; / & right; a cui sono abituato su Linux.

Per risolvere questo problema, ho aggiunto quanto segue al mio ~/.profile :

bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

Nota che i primi due si applicano a bash in Terminale ; gli ultimi due si applicano per bash nelle connessioni iTerm2 e in ingresso ssh . Non chiedermi perché l'emulazione della tastiera è diversa;)

Per la cronaca, sono stato in grado di trovare ciò che realmente erano i keycode grazie a un suggerimento di questa risposta StackOverflow : puoi eseguire cat > /dev/null per monitorare i codici tasto esatti inviati durante una combinazione di tasti.

(Nota che per me, quando eseguo cat > /dev/null e preme ctrl + & leftarrow; produce ^[[1;5D . Il codice esatto può differiscono , ma il primo ^[ è rappresentato come \e , come mostrato nel mio codice di esempio.

BTW, se vuoi vedere tutte le associazioni di tasti bash attive, esegui bind -p .

    
risposta data 24.10.2011 - 20:47
fonte
5

A partire da Mac OS X Lion 10.7, Mappe terminali - / a esc + < kbd> B / F di default, quindi questo è ora integrato per bash e altri programmi che usano queste associazioni di tasti compatibili con emacs.

    
risposta data 07.08.2011 - 16:00
fonte
5

se sai come usare vi puoi anche attivare la modalità di modifica della linea vi usando set -o vi nella tua .bash_profile o in qualsiasi momento sulla riga di comando. Quindi puoi passare dal comando vi e inserire le modalità. Quindi puoi colpire la fuga, quindi utilizzare i comandi vi per navigare nella linea:

0 = move to beginning of line
$ = move to end of line
w = move forward one word
b = move backward one word

Una volta raggiunta la posizione corretta, puoi utilizzare gli altri comandi vi per accedere alle modalità di inserimento o di aggiunta, oppure rimuovere i caratteri uno per uno, ecc.

    
risposta data 04.12.2010 - 07:53
fonte
2

Apri terminale, vai alle preferenze, tastiera. Sulla lista troverai "ctrl cursor right" e "ctrl cursor left".
Cambia le loro azioni assegnate rispettivamente a "\ 033f" e "\ 033b", e sarai in grado di usare ctrl + e ctrl + per spostarsi, senza perdere il tuo alt.

    
risposta data 04.12.2010 - 16:00
fonte
1

Sembra che esc + B e esc + F siano mappati per impostazione predefinita per andare all'inizio e fine delle parole. Anche se, per il mio sistema non puoi tenere premuto esc ma devi ripeterlo per ogni parola.

    
risposta data 24.12.2010 - 16:08
fonte
0

L'ultima versione del sistema operativo lo associa a Spaces. Anche se hai Spaces spento, i tasti di scelta rapida possono ancora essere cortocircuitati in questa posizione nascosta:

Tasti cursore Terminal.app: disattiva le Preferenze di sistema - > Scorciatoie - > Controllo missione - > Sposta a sinistra uno spazio

    
risposta data 15.07.2016 - 20:01
fonte

Leggi altre domande sui tag