¿Hay alguna manera de insertar un solo carácter y luego salir del modo de inserción?

10

Cuando reviso el texto y, por ejemplo, agrego puntos de referencia alrededor de ciertas palabras o citas o lo que sea, es irritante que tenga que presionar Esc o Ctrl- [después de cada inserción. Los insertos (y anexos) son diferentes, por lo .que no ayuda mucho.

¿Hay algo similar a reso que vuelve al modo normal después de un solo carácter, pero usa el modo de inserción en lugar del modo de reemplazo?

Comodín
fuente
3
Tal vez debería considerar usar (o extender) el complemento vim-surround , para trabajar en el texto de una manera más significativa .
VanLaser

Respuestas:

11

Si no hay (no he buscado), puede usar esta asignación en su .vimrc:

nnoremap <C-I> i <ESC>r

Se inserts, coloca un espacio, ESCmonos, y comienza una sola letra replace. Esto se asigna a CtrlI.

Es un truco, y dejará un espacio colgante si logras escapar antes de escribir una letra, ¡pero es mejor que nada!

Qix - MONICA FUE MALTRATADA
fuente
1
No está mal ... Probablemente lo usaré si a nadie se le ocurre algo mejor. :)
Comodín el
2
@Wildcard No me di cuenta de cuánto me encuentro con este caso de uso sin darme cuenta. Buena pregunta :) También lo he agregado a mi propio vimrc.
Qix - MONICA FUE MALTRATADA el
2
Pasé la mayor parte del día arreglando un montón de rebajas. Cursiva, código en línea, sangrías de encabezado, hipervínculos ... todos ellos inserta un carácter. :) En realidad tu solución es perfecta; Voy a comenzar a usarlo ahora.
Comodín el
2
Desventaja: no es repetible con el .comando. :(
Comodín
1
@Wildcard desafortunadamente, después de investigar un poco, no hay forma de crear una rama de repetición manual para, a .menos que la esté usando repeat.vim.
Qix - MONICA FUE MALTRATADA el
0

Para insertar un carácter al final de una palabra (en lugar de en la posición del cursor), use

nnoremap <C-a> a <ESC>r

Esto se asigna a Ctrl + a, puede asignarlo a cualquier otra cosa, por supuesto.

Tengo los dos en mi .vimrcsolo para no apresurarme mucho :)

" Insert char at cursor position
nnoremap <C-i> i <ESC>r
" Append char after cursor position
nnoremap <C-a> a <ESC>r
Ruto Collins
fuente