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?
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?
Risposte:
Ctrl-[ b
salta indietro di una parola. Puoi anche usare Esc
invece o Ctrl-[
, e f
per andare avanti.
Questo è Ctrl
+ [
release e poi b
o f
. O Esc
e b
o f
.
Ulteriori informazioni sono disponibili in questa altra discussione su AskDifferent.
Uccidere una mosca con un cannone:
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
Mi piace la seguente configurazione.
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.)
Questo funziona almeno per bash. Per zsh ci sono altri modi per navigare.
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
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!)
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
Puoi impostare il tuo terminale in modalità vi set -o vi
per poter usare i soliti comandi di movimento vi (aggiungi la linea .bash_profile
per memorizzare l'impostazione in modo permanente).
Quindi, come in vi, puoi premere Esc
, quindi b
spostare una parola all'indietro ( w
in avanti), andare all'inizio della riga con 0
o cercare un carattere all'indietro con F
+ il carattere.
Premi i
per tornare alla modalità normale e inserire.
Chi ha familiarità con vi può fare molto di più. Un cheat sheet può essere trovato qui .
Esc
quindi I
per 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-A
e simili alla sequenza di escape Esc+0
. In questo modo questi casi sono ancora più veloci in quanto termina in modalità modifica.
Con iTerm2 3.1.4, sono stato in grado di impostare quanto segue senza aggiungere singole mappature dei tasti.
Con una nuova sessione Terminale ora puoi usare:
Option ⌥+ fper andare avanti
Option ⌥+ bper andare avanti
Option ⌥+ Delete ⌫per eliminare Word