iTerm - andare avanti e indietro di una parola


166

Sarebbe possibile configurare iTerm 2 per andare avanti e indietro di una parola attraverso il testo corrente nella riga di comando usando una scorciatoia da tastiera?


14
Questo in realtà non risponde alla domanda ma è rilevante: è possibile selezionare + fare clic in un punto qualsiasi della riga di comando per spostare il cursore lì.
David Winiecki,

Downvoting per non aver accettato la risposta corretta
Pi-

@ Pi- Perché pensi che la risposta accettata non sia quella corretta? 1. È apparso quasi 3 anni prima di quello con il maggior numero di voti. 2. Presenta una soluzione che non funziona per impostazione predefinita.
syntagma,

Risposte:


48

Ctrl-[ bsalta indietro di una parola. Puoi anche usare Escinvece o Ctrl-[, e fper andare avanti.

Questo è Ctrl+ [release e poi bo f. O Esce bo f.

Ulteriori informazioni sono disponibili in questa altra discussione su AskDifferent.


3
Ciò sarebbe meglio se ci fosse un modo per tornare indietro rapidamente a molte parole tenendo premuto un pulsante, invece di dover digitare una sequenza di tasti per ogni parola.
user1717828,

Che cos'è "Ctrl- ["?
Shihao Xu,

Con "Ctrl- [" intendo premere il tasto "Ctrl" e il tasto "[" contemporaneamente.
Volsk,

327

Uccidere una mosca con un cannone:

  • Vai a Preferenze ... > Profili > Chiavi
  • Premere Carica preimpostazione ...
  • Seleziona Modifica testo naturale

Quindi, puoi spostare una parola indietro usando Option ⌥+ e una parola in avanti usando Option ⌥+ , spostarti all'inizio della linea usando fn+ e alla fine della linea con fn+ . Inoltre è possibile eliminare una parola all'indietro utilizzando Option ⌥+ , eliminare l'intera riga utilizzando Command ⌘+ .

Se la preimpostazione non viene visualizzata, reinstallare iTerm2. Se lo hai installato usando Homebrew + Cask:

brew cask reinstall iterm2

49
Questa dovrebbe essere la risposta accettata!
Guyarad,

3
Questo non funziona per me. Parametri: iTerm2 3.1.2, macOS 10.12.6, tastiera tedesca. E non sono solo ...
t0r0X,

2
Questo è fantastico e aggiungerà la maggior parte delle tue esigenze. Tuttavia non aggiunge un 'vai all'inizio / fine della linea tramite CMD + freccia sinistra / freccia destra`. Per tale azione, vedi: stackoverflow.com/questions/6205157/...
MikeyN0

38
La mia vita è cambiata dopo aver visto questa risposta. Ho divorziato da mia moglie, ora sono in un Lambo con una top model.
Dragos Rizescu,

12
Nota che si tratta di Preferenze> Profili > Chiavi> Carica impostazioni predefinite non Preferenze> Chiavi> Carica preferenze
kevin il

148

Mi piace la seguente configurazione.

  1. Preferenze> Chiavi (o Preferenze> Profili> Chiavi)
  2. Fai clic sul plus.

andare avanti di una parola

option+right
send escape sequence
f

tornare indietro di una parola

option+left
send escape sequence
b

elimina all'inizio della parola ( credito )

option+delete
send hex code
0x1B 0x08

cancella fino alla fine della parola

fn+option+delete
send escape sequence
d

(Non ricordo per certo, ma penso di aver copiato questa risposta dalla risposta di jherran di seguito e di averne aggiunto di più. Avrei dovuto aggiungere le informazioni extra nei commenti o suggerire le modifiche su quella risposta. Non so come migliorare la situazione, ma ora è nota.)


2
Su MacOS 10.12, devo usare il codice esadecimale 0x17 per ottenere l'eliminazione all'inizio della parola
midopa

funziona come un fascino con macOS 10.12 e zsh
Sébastien

1
la migliore risposta di sempre hai una birra da me :)
infinito

1
Prendi in considerazione di votare la risposta di jherran. Penso di aver appena migliorato un po 'la loro risposta e probabilmente avrei dovuto suggerire una modifica invece di creare la mia risposta. Mi sento come se lo avessi rubato.
David Winiecki,

Riferito a questo : per fare Esc-b, ho dovuto inviare 0x1b 0x42, e per Esc-f, ho dovuto inviare 0x1b 0x46: D
Meredith

36

Per avanzare (Alt-f), Indietro (Alt-b) ed Elimina (Alt-d) Word

  1. Apri iTerm.
  2. Vai su iTerm> Preferenze ...> Profili> Chiavi
  3. In Tasti di scelta rapida del profilo, fai clic sul segno +.
  4. Digita la scorciatoia da tastiera (opzione-b, opzione-f, opzione-d, opzione-sinistra, ecc.)
  5. Per Azione, scegli Invia sequenza di escape.
  6. Scrivi b, d o f nel campo di input.

Questo funziona almeno per bash. Per zsh ci sono altri modi per navigare.


2
Ho provato ad aggiungere un'opzione + scorciatoia a destra e ho ricevuto un messaggio di avviso su un conflitto, perché non mi rendevo conto che è possibile configurare i tasti sia in Preferenze> Tasti> Tasti di scelta rapida globali che in Preferenze> Profili> Tasti> Tasti di scelta rapida del profilo. La configurazione nel profilo predefinito ha funzionato.
David Winiecki,

1
Funziona anche con zsh!
Andrii Abramov,

2
Penso che la tua risposta (alla stessa soluzione) sia stata la più facile da capire +1
nzaleski,

1
Spiegazione molto utile.
Conti,

Perfetto. Puoi anche usare Comando + F ecc, quindi il tasto "Alt" è nella stessa posizione e non è necessaria alcuna regolazione quando si passa da PC a Mac.
friederbluemle,

12

Simile ad altre risposte, ma per Zsh mi ci è voluto un po 'per trovare questo:

Se stai usando Zsh, come Oh My Zsh, in iTerm, vai a: Preferenze> Profili > Sottomenu Chiavi

Fai clic su + segno

Aggiungi la tua combinazione di collegamenti, scegli "Invia sequenza di escape"

ingressi per sinistra e destra in basso.

sinistra:

[1;5D

giusto:

[1;5C

1
Mi hai salvato la vita
amico

Questa è l'unica soluzione che ha funzionato per me
Bryji,

Finalmente una soluzione semplice che funziona: D Grazie per averla condivisa con noi!
Periback

Questa dovrebbe essere la risposta. Upvoted.
ehime,

2

inserisci qui la descrizione dell'immagine

Apri Preferenze

Configura tasto Opzione sinistro (e / o) destro per inviare Esc +

Se hai pasticciato con le tue preimpostazioni, potresti dover caricare la preimpostazione predefinita (attenzione, questo potrebbe cancellare i tuoi tasti personalizzati!)

inserisci qui la descrizione dell'immagine

Se vedi strani caratteri dopo averlo fatto, potresti aver bisogno di configurare il tuo ~ / .inputrc o / etc / inputrc

Aggiungi questo al tuo ~ / .inputrc:

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

esempio completo inputrc:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

1
Perfetto ... tks.
paivaric,

Nessun problema! Sono contento che aiuti :)
yosefrow

2

Puoi impostare il tuo terminale in modalità vi set -o viper poter usare i soliti comandi di movimento vi (aggiungi la linea .bash_profileper memorizzare l'impostazione in modo permanente).

Quindi, come in vi, puoi premere Esc, quindi bspostare una parola all'indietro ( win avanti), andare all'inizio della riga con 0o cercare un carattere all'indietro con F+ il carattere.

Premi iper tornare alla modalità normale e inserire.

Chi ha familiarità con vi può fare molto di più. Un cheat sheet può essere trovato qui .


2
vim risolve tutto! : D
Breno Salgado,

Colpire Escquindi Iper andare una volta all'inizio della riga è leggermente meno conveniente di Ctrl-a- questo caso d'uso si verifica spesso quando si desidera solo modificare il nome del comando. Quindi uso la modalità vi con alcune modifiche di associazione dei tasti in iTerm2 per mappare Ctrl-Ae simili alla sequenza di escape Esc+0. In questo modo questi casi sono ancora più veloci in quanto termina in modalità modifica.
rfabbri,

-1

Con iTerm2 3.1.4, sono stato in grado di impostare quanto segue senza aggiungere singole mappature dei tasti.

  1. Vai a Preferenze> Profili> Chiavi
  2. Tasto Sinistra / Destra ⌥: Seleziona Esc +

Con una nuova sessione Terminale ora puoi usare:

Option ⌥+ fper andare avanti

Option ⌥+ bper andare avanti

Option ⌥+ Delete ⌫per eliminare Word


2
In cosa differisce dall'altra risposta altamente votata? apple.stackexchange.com/a/293988/237
user151019
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.