¿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.

Steven
fuente

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
asdfg
fuente
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í.

nik
fuente
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)

nisc
fuente
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.

garyjohn
fuente
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