¿Sería posible configurar iTerm 2 para ir hacia atrás y hacia adelante una palabra a través del texto actual en la línea de comando usando un atajo de teclado?
¿Sería posible configurar iTerm 2 para ir hacia atrás y hacia adelante una palabra a través del texto actual en la línea de comando usando un atajo de teclado?
Respuestas:
Ctrl-[ b
salta una palabra hacia atrás. También puede usar Esc
en su lugar o Ctrl-[
, y f
para avanzar.
Eso es Ctrl
+ [
lanzamiento y luego b
o f
. O Esc
y b
o f
.
Se puede encontrar más información en esta otra discusión en AskDifferent.
Matar una mosca con un cañón:
Luego, puede mover una palabra hacia atrás usando Option ⌥+ ←y una palabra hacia adelante usando Option ⌥+ →, moverse al comienzo de la línea usando fn+ ←y al final de la línea con fn+ →. También puede eliminar una palabra hacia atrás con Option ⌥+ ⌫, eliminar toda la línea con Command ⌘+ ⌫.
Si el valor predeterminado no aparece, reinstale iTerm2. Si lo instaló usando Homebrew + Cask:
brew cask reinstall iterm2
Me gusta la siguiente configuración.
avanzar una palabra
option+right
send escape sequence
f
retroceder una palabra
option+left
send escape sequence
b
borrar al comienzo de la palabra ( crédito )
option+delete
send hex code
0x1B 0x08
borrar al final de la palabra
fn+option+delete
send escape sequence
d
(No lo recuerdo con certeza, pero creo que copié esta respuesta de la respuesta de jherran a continuación y agregué más. Debería haber agregado la información adicional en los comentarios o ediciones sugeridas en esa respuesta. No sé cómo mejorar la situación, pero ahora se sabe)
Esto funciona al menos para bash. Para zsh hay otras formas de navegar.
Similar a otras respuestas, pero para Zsh me llevó un tiempo encontrar esto:
Si está utilizando Zsh, como Oh My Zsh, en iTerm, vaya a: Preferencias> Perfiles > submenú Teclas
Haga clic en + signo
Agregue su combinación de acceso directo, elija "Enviar secuencia de escape"
entradas para izquierda y derecha debajo.
izquierda:
[1;5D
derecho:
[1;5C
Preferencias abiertas
Configure la tecla de opción izquierda (y / o derecha) para enviar Esc +
Si te equivocaste con tus preajustes, es posible que debas cargar el preajuste predeterminado (¡cuidado con que esto podría borrar tus combinaciones de teclas personalizadas!)
Si ve caracteres extraños después de hacer esto, es posible que necesite configurar su ~ / .inputrc o / etc / inputrc
Agregue esto a su ~ / .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
ejemplo 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
Puede configurar su terminal en modo vi set -o vi
para poder usar los comandos de movimiento vi habituales (agregue la línea .bash_profile
para almacenar la configuración de forma permanente).
Entonces, como en vi, puede presionar Esc
, luego b
para mover una palabra hacia atrás ( w
hacia adelante), ir al comienzo de la línea con 0
, o buscar un carácter hacia atrás con F
+ el carácter.
Presione i
para volver al modo Normal e insertar.
Aquellos familiarizados con vi pueden hacer mucho más. Una hoja de trucos se puede encontrar aquí .
Esc
Luego, presionar I
para ir una vez al principio de la línea es un poco menos conveniente que Ctrl-a
: este caso de uso ocurre a menudo cuando solo desea modificar el nombre del comando. Así que uso el modo vi con algunos cambios de combinación de teclas en iTerm2 para mapear Ctrl-A
y similar a la secuencia de escape Esc+0
. De esta manera, estos casos son aún más rápidos, ya que termina en modo de edición.
Con iTerm2 3.1.4, pude configurar lo siguiente sin agregar asignaciones de teclas individuales.
Con una nueva sesión de Terminal ahora puede usar:
Option ⌥+ fpara avanzar
Option ⌥+ bpara avanzar
Option ⌥+ Delete ⌫para eliminar Word