I can cat a file, copy and paste text with the middle button or shift-insert.
How can I copy text in vim and paste it from the system clipboard?
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.
Sign up to join this communityYou need to have Vim with the clipboard
and xtermclipboard
features compiled in. In Ubuntu, these are only available with the vim GUI packages (vim-gnome
, vim-gtk
, vim-athena
, etc.).
Once you install one of these, you can copy to (and paste from) the clipboard registers (*
and +
). From this very informative post on Vi and Vim:
For X11-based systems (ie. Linux and most other UNIX-like systems) there are 2 clipboards, which are independent of each other:
- PRIMARY - This is copy-on-select, and can be pasted with the middle mouse button.
- CLIPBOARD - This is copied with (usually)
^C
, and pasted with^V
(It's like MS Windows).
Vim has 2 special registers corresponding to these clipboards:
*
uses PRIMARY; mnemonic: star is select (for copy-on-select)+
uses CLIPBOARD; mnemonic: CTRL + C (for the common keybind)
To copy to a register, you precede the copy command (y
) with "
and the name of the register (*
, for example). "*y
, then middle-click to paste, or "+y
and ShiftInsert to paste.
I had issue because my vim was not supporting clipboard:
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
I installed vim-gnome (which support clipboard) and then checked again:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Now I am able to copy and paste using "+y and "+p respectively.
A quite interesting solution comes from this question. Install xclip, then pipe output of a command to xclip( cat file | xclip -selection clipboard
for instance ), and then paste it anywhere, (if that's in terminal - use Ctrl ShiftV
). Now , turns out you can actually shorten that command to xclip -sel clip
, which is not exactly apparent from reading man page or examples there.
/dev
, but text is still held somewhere, right ?
Apr 24, 2015 at 6:52
Building up on Sergiy Kolodyazhnyy's answer, if you have compiled vim without xclip
support, then do the following to copy content from vim to the system clipboard:
xclip
(sudo apt install xclip
)"0
register:call system('xclip -sel clipboard', @0)
to copy the contents to your clipboard.
sed -n5,10p
to print lines 5-10 so I can more easily copy and paste without vim reacting to the mouse.:!sed -n 5,10p %
:!cat %