Solía tener un compañero de trabajo que era realmente bueno en UNIX.
Me mostró cómo usar las combinaciones de teclas Vi para editar mis comandos de shell.
Colocó el comando en un archivo que se ejecutaba cada vez que iniciaba sesión.
Desde entonces, me mudé a un proyecto diferente.
Lamentablemente, no recuerdo cómo configurar esto.
¿Hay alguien aquí que sepa cómo usar las combinaciones de teclas Vi para editar comandos en el terminal?
¿Cómo puedo hacer que esa configuración sea permanente?
vi bindings in the shell
la característica más grande jamás inventada!jj
aESC
como solemos hacer en vim?Si está usando bash, como ya respondieron jahroy y evil otto, puede usar
hacer que bash use comandos de edición de estilo vi.
Una vez que haya hecho esto, puede escribir Esc vpara iniciar el editor vi con un archivo temporal que contenga una copia de la línea de comando actual. Puede editar el comando, incluso reemplazarlo con varias líneas; cuando guarde el archivo (
:wq
), el shell ejecutará los comandos editados.Si tu prefieres
puedes usar Ctl-XCtl-Epara hacer lo mismo. Utilizará su editor preferido
$EDITOR
, no necesariamente emacs.(Personalmente, uso vi (en realidad, vim) para la mayor parte de mi edición, pero prefiero
set -o emacs
en el shell; activar y desactivar el modo de inserción es excelente para editar archivos, pero incómodo para comandos interactivos. YMMV).fuente
set -o emacs
No hace lo que quieres?Puede usar
set -o vi
para cambiar sus comandos de edición de línea como @jahroy publicado, pero puede estar pensando en elfc
comando (disponible en bash y creo que ksh, pero probablemente no en tcsh), que colocará el comando anterior en un editor (FCEDIT o EDITOR , que probablemente haya configurado en vi) y luego ejecute el comando cuando salga del editor. Vea la página de manual ohelp fc
para más detalles, o simplemente pruébelo.fuente
alias r='fc -e -'
es un alias valioso para volver a ejecutar comandos anteriores.fc
Por sí solo se originó en Korn Shell, creo. Puede especificar comandos por número (fc 123 129
para editar los números de comando 123 a 129 en el historial). Puede especificar números relativos (fc -10 -1
para editar los últimos 10 comandos ingresados). Puede enumerar comandos anteriores confc -l
. Puede especificar un comando por prefijo con elr
alias (r make
ejecuta la última invocación demake
; también lo hacer m
si no ha ejecutado unmv
comando desde la última vez que ejecutómake
, etc.).Para editar el comando utilizado más recientemente en vim e invocar una versión editada después de que el editor guarde y salga, use el
fc
shell incorporado. Sin ningún argumento hará lo siguiente:/tmp
y lo llena con el comando escrito más recientemente:cquit
).El comando funciona tanto en bash como en zsh.
fuente
De hecho, esta es de hecho la mejor característica de la historia. Sin embargo, hay más:
Crea un archivo llamado
que contiene la línea
Editline , es una biblioteca de versiones con licencia BSD que proporciona servicios de tipo readline. Ese .editrc establecerá sus combinaciones de teclas en modo vi en el shell de la línea de comandos de MySQL, o en cualquier aplicación que no use readline.
Me he vuelto un tanto olvidadizo con el paso de los años, por lo que mi .zshrc obtiene algunos contenedores para el modo vi, para mostrarme en qué modo estoy en la línea de comandos. Es agradable.
Sé que en zsh puedes escribir
y obtener la lista de combinaciones de teclas. Estoy seguro de que bash debe tener algo similar. No todas las teclas vi están vinculadas por defecto. Átalos como mejor te parezca y saldrás a las carreras.
fuente
en su terminal, escriba
export EDITOR=vi
.Para guardar esta configuración. poner esta línea en el archivo ~ / .profile
fuente
$EDITOR
) avi
. No te permite editar comandos de shell convi
(al menos no directamente).$EDITOR
contienevi
. Creo que es el único caparazón que hace esto.