¿La forma más eficiente de reemplazar todo el búfer?


10

Actualmente, tengo dos métodos similares para reemplazar todo el búfer con algún otro texto (digamos en el portapapeles).

Método 1:

  1. eliminar todas las líneas: :%d.

  2. pegar texto: "+P(o similar:) :put+.

Método 2:

  1. seleccionar visualmente todas las líneas: ggVG.

  2. 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 :changecomando. 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?


2
No sé nada fuera de mi cabeza, pero si haces esto mucho, ¿por qué no creas un mapeo / comando?
Matt Boehm

55
Hmm, 1,$s/\_./\=@+no es una solución: P, :%d|put+está más cerca, pero no del todo.
Runium

1
Olvidé un asterisco después del punto ... 1,$s/\_.*/\=@+, donde \_.coincide con cualquier personaje, incluida la nueva línea.
Runium

2
¿ Tiene que reutilizar el búfer o sería aceptable iniciar un nuevo búfer?
200_success

3
Creo que Sukminder :%d|put+encaja perfectamente. Es breve y memorable. El otro comando es demasiado arcano para recordarlo y escribirlo correctamente.
Lie Ryan

Respuestas:


2

Podría hacer ggvG<CTRL-G>para seleccionar visualmente todo el búfer e ingresar Select-mode. Esta es la forma más fácil de reemplazar el búfer con texto que planea escribir. Incluso puede hacer un Select-modemapeo :smapque resuelva su problema.


0

Una forma de reemplazar todo el búfer con su portapapeles puede ser mediante un comando externo, por ejemplo:

:%!pbpaste
:%!echo my_text

Ver también: compartir el portapapeles de Mac OS X

O usando la sustitución:

:%s/\_.*/\=@+/
:%s/\_.*/my text/

Alternativamente, use :%d|put+(como ya se sugirió en los comentarios).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.