Supongamos que tengo el texto Fnord
eliminado antes y que mi cursor reside en B
la línea:
M:mock(Baz)
¿Cómo puedo cambiar el texto dentro () con el texto previamente eliminado?
Actualmente, a menudo cometo el error al hacer:
di(
también conocido como "eliminar dentro ()"- MAYÚS + P
sin embargo, lo que me deja con el texto exacto nuevamente, ya que el texto eliminado se moverá al registro.
Quiero tener:
M:mock(Fnord)
cut-copy-paste
normal-mode
register
k0pernikus
fuente
fuente
0
registro contendrá el último texto extraído.:h quote0
vi)p
. Es lo mismo que en esa respuesta, solo con eli)
objeto de texto en lugar del objeto dew
texto,Respuestas:
Puede usar la selección visual para seleccionar el texto a reemplazar y luego pegarlo de la siguiente manera:
vi(p
vi(
selecciona Baz (porque está encerrado entre paréntesis),p
pega Fnord sobre él.Sin embargo, esto arrastrará a Baz al registro después del pegado, lo que podría no ser lo que desea.
fuente
A menos que especifique un registro,
p
(oP
) usará el último registro que se completó. El registro sin nombre""
contiene el texto eliminado o eliminado más recientemente (a menos que se haya especificado otro registro, por ejemplo, con"ay
), pero estos también se"0
utilizan"1
para eliminar y eliminar o modificar. Ver registros .Si el último texto fue eliminado
y
, puede pegarlo desde el0
registro con"0P
. Si se eliminó, puede acceder a él con el2
registro con"2P
("1
es ahoraBaz
).Alternativamente, puede evitar jugar con sus registros y eliminarlos en el registro de agujeros negros
"_
:fuente
Si la instalación de complementos es una opción, puede usar yankstack.vim . Entonces podría retener su flujo de trabajo actual:
fuente
Asumiendo que "Fnord" está registrado, puede hacerlo (con el cursor al comienzo de la línea)
f(ci(<c-r>a
fuente