¿Cómo copio la salida del comando en vim?


33

Por ejemplo, si escribo ' :pwd' para obtener el directorio de trabajo actual, puedo seleccionar el texto en gvim pero no puedo entender cómo copiarlo en el portapapeles. Si intento lo mismo en la consola vim, ni siquiera puedo seleccionarlo con el mouse. Me gustaría que esto funcione con todos los comandos vim, como set guifontcopiar la guifont=Consolas:h10:cANSIsalida.

Respuestas:


41

¿Estás buscando esto?

:redir @* | set guifont | redir END

: el comando redir redirige la salida de un comando a un registro (@ *). El registro @ * se refiere al portapapeles.

Para más información sobre esto,

:help :redir

no funcionó en vim-gtk alguna pista?
Sergio Abreu

@SergioAbreu intente en @+lugar de @*(bueno, funciona en gvim).
leeand00

10

Intente ' :r !pwd' para obtener el directorio de trabajo actual directamente en el archivo abierto GVIM.
Luego puede copiarlo al portapapeles como lo haría con cualquier otro contenido de archivo de texto abierto allí.


Esto es útil, pero ¿puedo usar esto con, set guifontpor ejemplo?
Steven

No, ese no es un comando de shell, por lo que no funcionará.
Kevin Panko

4

Para este ejemplo en particular que podría hacer (tenga en cuenta el "!" Que lo hace pasar por el shell):

:!pwd | xclip

o

:!pwd | xclip -selection secondary

(dependiendo de la selección X que desee).

Puede que tenga que instalar xclip primero

sudo apt-get install xclip

(o equivalente)


3

Si está ejecutando vim en una xterm, si mantiene presionada la tecla Mayús mientras selecciona el texto, se copiará el texto en el equivalente X del portapapeles.


X tiene dos portapapeles (al menos); su sugerencia colocará el texto en la selección PRIMARIA (pegar con el clic central) en lugar de la selección de CLIPBOARD (pegar con Ctrl + V en la mayoría de las aplicaciones).
Marius Gedminas
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.