Usted podría reasignar Inicio a ser el mismo que ^ (los documentos dicen Inicio 's función por defecto es equivalente al comando de movimiento |):
:map <Home>^
:imap <Home> <Esc>^i
lo que debería hacer el mapeo modo de inserción sea equivalente a escapar fuera del modo de inserción , presionando ^ y luego volviendo al modo insertar. No sé cuál es el mejor método para mapear un comando de movimiento para usar dentro del modo de inserción, por lo que puede romper algo, pero parece funcionar.
En cuanto a las configuraciones de sangría, no deberían tener un efecto sobre los controles de movimiento, pero también creo que probablemente prefiera tenerlos configurados de forma diferente. autoindent simplemente mantiene su sangría actual para las nuevas líneas (por lo tanto, si coloca 4 espacios al principio de una línea, después de presionar regresar, su nueva línea también tendrá 4 espacios en frente). No sé por qué no querrías eso, ya que es bastante útil en casi cualquier lenguaje de programación, o incluso solo texto de forma libre. Por otro lado, smartindent implementa un par de reglas de indentación C-ish ligeramente codificadas, como sangría después de una apertura {, y deindentificación después de un cierre}, pero no transfiere automáticamente la sangría de las líneas anteriores. Los documentos recomiendan mantener la autoincripción si usa smartindent.
Sin embargo, smartindent es inútil para los idiomas que no cumplen con sus reglas rígidas, o incluso activamente dañinos (como cuando quita automáticamente la sangría de cualquier línea que comience con '#', que cree es una directiva de preprocesador pero está mal para los programadores de python que intentan escribir un comentario sangrado).
So vim también incluye un modo de indentación más avanzado, indentación de tipo de archivo, que permite reglas de indentación flexibles por idioma/tipo de archivo y es el modo de sangría preferido para la mayoría de las personas (incluso para los idiomas C). Si usa sangría de tipo de archivo, lo mejor es desactivar smartindent (de lo contrario, puede interferir con la sangría de tipo de archivo, como mover todas las líneas de comentario a la columna 0 en los archivos de Python).
Personalmente, siempre he autoindentado, uso el tipo de archivo cuando está disponible y nunca uso smartindent. Mi .vimrc incluye:
set autoindent " doesn't interfere with filetype indents, and is useful for text
if has("autocmd")
" Enable file type detection and indentation
filetype plugin indent on
set nosmartindent
endif
Me imagino que hay algo que se podía hacer para tener smartindent enciende sólo cuando la sangría del tipo de archivo no existe para un tipo de archivo, si está editando que muchos diferentes lenguajes C-como sin filetype indentation disponible.
Entonces, ¿no hay manera de hacer esto en el modo de inserción? Creo que debería acostumbrarme a cambiar entre los dos. – Reid
No creo que haya una manera; No utilizo el movimiento del cursor en el modo de inserción en absoluto. Este artículo podría ser útil: http://www.viemu.com/a-why-vi-vim.html –
@Reid - Probablemente podría asignarlo de una forma u otra (ver más abajo) - pero todo movimiento debería ser realmente hecho en modo N, no en I. – Rook