Los accesos directos de vi en bash en mac no funcionan, por ejemplo, CTRL + E, CTRL + A [duplicado]

He usado vi como mi editor de texto principal durante años en Linux (y hace unos años también en Mac) y en mi nueva Mac (que ejecuta 10.8.4) encuentro que cuando trato de editar un archivo usando vi en Terminal no puedo use los atajos estándar de vi, por ejemplo, usando 'CTRL + E' para navegar hasta el final de una línea. En cambio, el acceso directo se establece en el acceso directo de vim, que es '$' para navegar hasta el final de una línea. Estoy usando bash. ¿Cómo puedo obtener los accesos directos estándar de vi?

vi en osx es vim. :hy verifique el archivo de ayuda. aunque mira esto en howtogeek.com/166616/…
¿Está buscando ^A/^E para trabajar en bash (para navegar en la línea de comandos) o dentro de vi/vim?

Respuestas (2)

set -o vi

Agregue eso a su ~/.bashrc


Si quería escribir "No puedo usar los accesos directos estándar de bash Ctrl-E y Ctrl-A en vim", agregue estas líneas a su ~/.vimrc

map <C-E> $
map <C-A> 0|

Si desea que estos también funcionen en el modo de inserción de entrada , también necesita

map! <C-E> <esc>A
map! <C-A> <esc>0i

Estos mapas para CtrlAenviarte al margen izquierdo. Si desea ir al primer carácter que no sea espacio

map <C-A> ^
map! <C-A> <esc>I
Esto habilitará el modo vi en bash, no en vim
así es como interpreté la pregunta, pero releyendo supongo que tienes razón.
La respuesta de esta publicación parece hacer el truco. Gracias por las respuestas muy rápidas. apple.stackexchange.com/questions/49749/…

Ctrl-a para el comienzo de la línea y Ctrl-E para el final de la línea son atajos de Emacs, no vi. Como tales, no funcionarán en vi.

Habiendo usado vi durante años en Linux, nunca me di cuenta de que estos accesos directos son de emacs. Siempre he usado vi y cualquier máquina Linux en la que trabajo ha tenido estos accesos directos, así que supongo que siempre se han habilitado especialmente sin darme cuenta de que no eran de vi. Gracias por señalar esto.