En la línea de lectura de bash en modo emacs, recientemente descubrí la funcionalidad de transposición , dándome la oportunidad de corregir rápidamente un error tipográfico como
dc dir
a
cd dir
presionando CTRL+ Ten el cpersonaje.
¿Hay algo similar en Vi / Vim que me permita intercambiar caracteres y palabras?
normal-mode
k0pernikus
fuente
fuente

Respuestas:
Para los caracteres, es bastante simple:
xpintercambiar la letra debajo del cursor con la siguiente letra eXpintercambiar la letra debajo del cursor con la letra anterior.El
xcomando elimina el carácter debajo del cursor, dejando el cursor en el siguiente carácter. ElXcomando elimina el carácter justo antes del cursor, dejando el cursor en el mismo carácter en el que estaba.pcoloca (pega) el último texto eliminado o el último texto retirado justo después de la posición actual del cursor. (PPone justo antes de la posición actual del cursor, de modoxPyXPtanto dejar el texto tal como estaba antes de empezar.)Para intercambiar palabras, no estoy seguro; Quizás alguien más pueda responder eso. Puede acercarse
dawwP(o reasignarlo para que sea más corto), pero eso se romperá en varios casos extremos, por ejemplo, cerca del final de una línea.fuente
Asignaciones de intercambio de palabras para idiomas latinos
Las asignaciones de intercambio de palabras de la wiki de Vim no funcionarán correctamente en palabras con caracteres acentuados.
Estas asignaciones están adaptadas para trabajar con caracteres (europeos) ISO / IEC_8859-1 Latin-1 Supplement . Esto se realiza sustituyendo todas las instancias de
\wwith[0-9A-Za-zÀ-ÖØ-öø-ÿ_\-]y todas las instancias de\_Wwith\_[^0-9A-Za-zÀ-ÖØ-öø-ÿ_\-].Borrado de resaltado de búsqueda
Además, el resaltado de búsqueda se borra donde sea necesario. Esto se logra agregando
:nohlsearch<return>al final de cada mapeo cuando sea necesario.Aquí está el resultado final:
fuente