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 c
personaje.
¿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:
xp
intercambiar la letra debajo del cursor con la siguiente letra eXp
intercambiar la letra debajo del cursor con la letra anterior.El
x
comando elimina el carácter debajo del cursor, dejando el cursor en el siguiente carácter. ElX
comando elimina el carácter justo antes del cursor, dejando el cursor en el mismo carácter en el que estaba.p
coloca (pega) el último texto eliminado o el último texto retirado justo después de la posición actual del cursor. (P
Pone justo antes de la posición actual del cursor, de modoxP
yXP
tanto 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
\w
with[0-9A-Za-zÀ-ÖØ-öø-ÿ_\-]
y todas las instancias de\_W
with\_[^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