¿Cómo lidiar con la situación si la palabra contiene puntos o barras (por ejemplo, /usr/bin/basho 1222.333)? Parece que vim interpreta /y .como el final de la palabra y no seleccionará toda la cadena.
Alexander Cska
85
A menudo me encuentro con ganas de reemplazar una palabra con otra que he sacado de otra parte. El problema con las otras soluciones es que si se intenta cambiar una palabra, entonces su siguiente pasta será ser esa palabra que ha eliminado con cw.
Intenta lo siguiente:
1 "This first word should overwrite the second"
yiw yank inner word (copy word under cursor, say "first").
... Move the cursor to another word (say "second").
viwp select "second", then replace it with "first".
Funciona bien, pero solo si se debe hacer un reemplazo once. Si tengo que reemplazar un par de second' by first` (en su ejemplo), la palabra copiada se convierte seconddespués del primer reemplazo.
ViFI
32
ciw
c change
iw inner word
Esto eliminará la palabra debajo del cursor (incluso si el cursor está en algún lugar en el medio de la palabra) y entrará en modo de inserción.
Consulte también la documentación de Vim para referencia:
Si desea cambiar una palabra con una palabra previamente eliminada, hay otra solución para viwp(una vez que haya eliminado la primera palabra).
ciwelimina la palabra anterior y lo pone en modo de inserción donde estaba. Pero luego puede usar ctrl+r, 0para insertar el contenido del registro 0 (que contiene la palabra previamente extraída).
Entonces:
yiw
[move to next word]
ciw
ctrl+r
0
Esto funciona mejor que viwpporque después del primer uso, puede realizar el reemplazo repetidamente .. Tampoco cambia al modo visual y se resalta brevemente.
No estoy seguro de lo que quiere decir que no cambia los modos, parece ser lo contrario, pero tal vez eso es lo que quería, permanecer en modo de inserción. Pero una gran ventaja es que esto (al contrario de viwp) se puede hacer varias veces con solo un tirón. ¡Gracias!
Palo
Oh tienes razón, estaba pensando en entrar en modo visual, editado. No me di cuenta de que eso era una limitación viwp, incluso .no lo duplica.
Connor
3
Esta es, con mucho, la mejor solución cuando ya hemos eliminado la palabra de reemplazo.
mljrg
1
¡Esta es la respuesta! ¡La capacidad de usar .con esto es genial!
/usr/bin/bash
o1222.333
)? Parece que vim interpreta/
y.
como el final de la palabra y no seleccionará toda la cadena.A menudo me encuentro con ganas de reemplazar una palabra con otra que he sacado de otra parte. El problema con las otras soluciones es que si se intenta cambiar una palabra, entonces su siguiente pasta será ser esa palabra que ha eliminado con
cw
.Intenta lo siguiente:
Espero que sea lo que estabas buscando.
fuente
once
. Si tengo que reemplazar un par desecond' by
first` (en su ejemplo), la palabra copiada se conviertesecond
después del primer reemplazo.ciw
Esto eliminará la palabra debajo del cursor (incluso si el cursor está en algún lugar en el medio de la palabra) y entrará en modo de inserción.
Consulte también la documentación de Vim para referencia:
fuente
Si desea cambiar una palabra con una palabra previamente eliminada, hay otra solución para
viwp
(una vez que haya eliminado la primera palabra).ciw
elimina la palabra anterior y lo pone en modo de inserción donde estaba. Pero luego puede usarctrl+r, 0
para insertar el contenido del registro 0 (que contiene la palabra previamente extraída).Entonces:
Esto funciona mejor que
viwp
porque después del primer uso, puede realizar el reemplazo repetidamente.
. Tampoco cambia al modo visual y se resalta brevemente.fuente
viwp
) se puede hacer varias veces con solo un tirón. ¡Gracias!viwp
, incluso.
no lo duplica..
con esto es genial!Intente
cw
, como en 'cambiar palabra'.Utilice http://linuxmoz.com/vi-commands-cheat-sheet/ o cualquier otra hoja de referencia como referencia.
fuente