Actualmente, tengo dos métodos similares para reemplazar todo el búfer con algún otro texto (digamos en el portapapeles).
Método 1:
eliminar todas las líneas:
:%d
.pegar texto: "+P(o similar:)
:put+
.
Método 2:
seleccionar visualmente todas las líneas: ggVG.
pegar texto: "+P.
Sin embargo, no pude encontrar una manera de disparar con un solo comando para hacer eso. El más cercano que encontré es el :change
comando. Pero no parece funcionar bien con los registros. Por supuesto, puedo crear alguna función y / o asignar una clave para hacerlo. Pero antes de poder hacer todas estas personalizaciones, quiero asegurarme de que:
¿Hay algún comando incorporado para reemplazar un rango de líneas con algún otro texto? Como, ¿podría
:%replace+
reemplazar todo el búfer con texto en el portapapeles?
fuente
1,$s/\_./\=@+
no es una solución: P,:%d|put+
está más cerca, pero no del todo.1,$s/\_.*/\=@+
, donde\_.
coincide con cualquier personaje, incluida la nueva línea.:%d|put+
encaja perfectamente. Es breve y memorable. El otro comando es demasiado arcano para recordarlo y escribirlo correctamente.Respuestas:
Podría hacer
ggvG<CTRL-G>
para seleccionar visualmente todo el búfer e ingresarSelect-mode
. Esta es la forma más fácil de reemplazar el búfer con texto que planea escribir. Incluso puede hacer unSelect-mode
mapeo:smap
que resuelva su problema.fuente
Una forma de reemplazar todo el búfer con su portapapeles puede ser mediante un comando externo, por ejemplo:
Ver también: compartir el portapapeles de Mac OS X
O usando la sustitución:
Alternativamente, use
:%d|put+
(como ya se sugirió en los comentarios).fuente