Cómo copiar texto tirado al símbolo del sistema VI


118

Quiero saber si hay alguna forma de pegar texto tirado en la ventana de comandos. Por ejemplo, si he sacado una palabra y quiero grep en algún lugar, no puedo simplemente pegar la palabra usando 'p'. Sin embargo, si lo copio al portapapeles, Shift-Insert pegará lo mismo.

¿Hay algún ajuste disponible que me permita pegar texto extraído en el símbolo del sistema de vim?

Estoy usando gvim en Windows.

Respuestas:


174

tratar de usar

<ctrl+r>"

donde "representa el registro predeterminado.


7
Tenga en cuenta que esto también funciona en el modo de inserción normal, no solo en la línea de comando.
user55400

25
Si usa en *lugar de ", obtendrá el contenido del portapapeles del sistema (que puede ser útil).
dash-tom-bang

40

<C-R>"Pegará el búfer predeterminado. Alternativamente, puede usar q:para abrir un búfer para el siguiente comando. tratar:help q:


10
Santa mierda, q:es más que impresionante
Hubro

19
  • primero asegúrese de que está en modo normal presionando Esc
  • una vez en modo normal, presione :
  • luego use la combinación de teclado ctrl-ry luego escriba"

Nota: si está tirando de una línea completa que contiene la ruta relativa del archivo, el salto de línea también se pegará ... es decir :! touch src/bash/script.sh^M

CREARÁ una "ruta de archivo divertida" que contiene "\ r" si no elimina el último ^M...


13

Para ahorrarle un paso de tirón, si su cursor está en la palabra que desea usar en Ex, use:

 <ctl-r><ctl-w>

Esto evita tirar para pegar en la línea de comando; en cambio, uno pega la palabra debajo del cursor directamente en la línea de comando. P.ej:

:%s/<ctl-r><ctl-w>/foo/g

5

Si es solo una palabra que desea copiar, puede usar <C-r><C-w>

  1. Pon tu cursor sobre la palabra
  2. Entonces puedes escribir algo como :vim <C-r><C-w> *

3

Puede tirar al portapapeles usando el *búfer con nombre. Por ejemplo, esto copiará la línea actual al portapapeles:

"*yy

Entonces puede copiar una línea usando esto y luego pegarla con shift-insert en la línea de comando.

Del mismo modo, puede pegar desde el portapapeles de esta manera:

"*p

2

El portapapeles +, al menos en Mac. Entonces escribirías "+yypara tirar de una línea al portapapeles y "+ppegarla. Aunque siempre puedes usar Command-C y Command-V.

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.