Me he convencido (en Stack Overflow) de usar mi amado bash en modo vi. Hasta ahora me acostumbré bastante bien y me gusta.
Sin embargo, realmente echo de menos una característica: en el modo emacs, puede ingresar el último parámetro del comando anterior presionando "ESC". (Es decir, presione escape seguido de.)
¿Existe un enlace predeterminado para insertar el último parámetro en modo vi? No pude encontrar uno y realmente extraño este comando ...
bindkey "\e." insert-last-word
history-search-backwards
es invaluable para los usuarios serios de la línea de comandos.Hay (vi-yank-arg), por defecto asignado a "_". Eso debería hacer lo que quieras (en modo comando).
fuente
No es exactamente lo mismo, pero en cualquier modo puede escribir
!$
, y será reemplazado por la última palabra del comando anterior. Encuentra más cosas de este tipo en el manual .fuente
El archivo ~ / .inputrc puede configurar el mapa de teclas (puede generarlo manualmente si no se puede encontrar). Agregue el siguiente comando en ~ / .inputrc :
Mi ~ / .inputrc es:
Puede encontrar los detalles sobre readline y
bind -p
aquí: http://linux.about.com/library/cmd/blcmdl3_readline.htmY algo de información acerca de las combinaciones de teclas Vi en bash y Readline VI Cheat Mode Cheat Sheet
fuente
Dentro de su .bashrc, agregue estos:
Esto restaurará el comportamiento predeterminado no solo de ESC-dot, sino también de Ctrl-A, Ctrl-E, Ctrl-W y Ctrl-L. Por lo tanto, puede disfrutar del modo vi bash normal y seguir utilizando los accesos directos que conoce y ama. Si necesita más acciones, simplemente marque "man bash" para encontrar el nombre de la acción readline que necesita (como "pantalla clara", "fin de línea", etc.).
fuente
Puede usar
$_
para referirse al último argumento del comando anterior.Las desventajas son:
No puede verificar antes de presionar Enter que la cosa insertada es la que pretendía insertar.
Si usa PROMPT_COMMAND o una trampa DEBUG (no estoy seguro de qué causa exactamente el problema; tengo ambas en mi .bashrc) para hacer cosas sofisticadas como poner el comando en ejecución en el título de xterm, se bloqueará
$_
.fuente