For example, if I type ':pwd' to get the current working directory, I can select the text in gvim but I can't figure out how to copy it to the clipboard. If I try the same in console vim, I can't even select it with the mouse. I would like this to work with all vim commands, such as set guifont to copy the guifont=Consolas:h10:cANSI output.
- 2,399
7 Answers
Are you looking for this,
:redir @* | set guifont | redir END
:redir command redirects the output of a command to a register (@*). The register @* refers to the clipboard.
For more info on this,
:help :redir
- 2,936
Try ':r !pwd' to get the current working directory directly in to the GVIM opened file.
You can then copy it to clipboard like you would any other text file contents opened there.
- 57,042
If you're running vim in an xterm, holding the shift key while selecting the text will copy the text to the X equivalent of the clipboard.
- 36,494
For this particular example you could do (note the "!" which makes it go through the shell):
:!pwd | xclip
or
:!pwd | xclip -selection secondary
(depending on which X-selection you want).
You might have to install xclip first
sudo apt-get install xclip
(or equivalent)
- 1,112
You could send to a file and copy it from there:
SomeCommand > SomeFile.txt
vim SomeFile.txt
See How do I save terminal output to a file? on AskUbuntu.
- 167
let @*=execute('set guifont')
will copy the output into the * register which corresponds to the clipboard.
- 131
I'm so late to the party... I've been looking for a way to pipe that list to my fzf-powered shell goodies for some time, and today this post allowed me to finish!
I got this nice one-liner, it could be done better but it works!
env _FILE="/tmp/.vim$RANDOM" vim +":redir > ${_FILE} | oldfiles | redir END" +:q && cat $_FILE | awk '{print $2}' | fzf
Now, it's easy to pipe that into any fzf-consuming pipe command, or whatever I need!
Thanks
- 101