Cuando tengo que reemplazar una palabra con otra palabra que utilizo antes, generalmente uso un flujo de trabajo que me parece poco natural:
Digamos que tengo este texto:
foo bar buzz
Y quiero tirar fooy reemplazar barcon lo que tiré antes.
Después de tirar foo, veo las siguientes opciones:
Opción 1
Coloque el cursor sobre
barconwPoner
foodelante debarconPColoque el cursor sobre el
brestobary elimine la palabra conde
opcion 2
Pon el cursor en la barra con
wUse
depara borrarbarPonga el contenido del registro 0 con
"0P(ya que borrébar,fooya no es accesible con un simplep)
Ambas formas me parecen demasiado complicadas y estoy seguro de que hay una manera más eficiente de lograr esta acción, pero no puedo encontrar cómo. Esta idea sería combinar las acciones eliminar y poner en una sola, o al menos evitar mantener la palabra eliminada en el registro de extracción para que pueda poner la palabra deseada con un simple p.
También sé que se activó el modo de reemplazo, Rpero no permite poner lo que se arrancó.
TL; DR : ¿Cómo reemplazar una palabra con el contenido del registro de extracción?
fuente

He encontrado otra forma de hacerlo, es un poco similar a la opción 2 pero tiene la ventaja de no alterar el estado de los registros.
La idea es utilizar el " registro de agujeros negros ": este registro es accesible a través de
"_y tiene la particularidad de que puede escribir en él pero no leerlo, por lo que, como un agujero negro, este registro hace que desaparezca por completo todo lo que entra. Aquí podemos usarlo para quefoopermanezca en el registro de extracción incluso después de labareliminación.Con esta solución, el flujo de trabajo después de la extracción
foosería:barconW(o cualquier palabra necesaria, por supuesto)barcon"_defoodesde el registro de tirar conP. El registro de tirones todavía contienefoodesde quebarentró en el agujero negro.No estoy seguro de que sea una mejor solución que la de @ Carpersmoker ( en términos de victorias de vimgolf @Carpetsmoker ) pero no sabía sobre el registro de agujeros negros y pensé que algunos podrían estar interesados en saberlo.
fuente
Ir al inicio de "foo". Presione
yiw. Eso tira de la palabra interior.Vaya a "barra" presionando la letra
w. Luego selecciónalo y tira hacia atrás:viw"0pYo uso
ciwyyiwmucho.fuente
iwes interesante, pero su solución es en realidad la misma que la de @ CarpetSmoker: seleccionar visualmente la segunda palabra y poner la primera. También creo que su solución funcionaría con un simple enplugar de usar el"0registro.Cuando el cursor está en cualquier parte de la palabra,
yiw- Jale la palabra y guárdela en el0registro.Ir a la palabra objetivo para ser reemplazado
ciweliminará la palabra y lo pondrá en modo de inserción.ctrl-r. Aparecerá"una ventana emergente pidiendo que se invoque el registro.0pegará la palabra arrancada.Las palabras tiradas se almacenan (¡normalmente!) En el
0registro. Consulte:registerspara ver los almacenamientos intermedios almacenados. Esto puede parecer un procedimiento largo, en mi humilde opinión, esto abre la puerta a los trucos de registro mucho más sofisticados.fuente