Faster copy to clipboard in Vim
tl;dr: I just mapped
"+y and I am very pleased with it.
A coworker saw me copying some text out of Vim and humored me: everything seemed to happen like magic in my editor, but for a simple thing as copy and paste I needed a lot of keys.
It is true: in order to copy text within Vim, you can use the
y command, combined with the motion of what you want to yank. So:
yiw will yank inside a word,
ggyG will go to the top of the file and then yank until the bottom (so, the whole file),
yy will yank a full line. But these yanks are only pastable (with
p) within Vim itself.
In order to get text out of Vim, you need to use a special register. Registers are a sort of named boxes, letters a to z, in which you can put snippets of text. To use it, you prefix your yank (or delete) with a quote:
"ayi( will select register
a and then yank the text within parentheses. To get to your system clipboard (the one all other programs use), you select the special register with
Thus: my coworker saw me hunting for the
"+y combination, probably. I almost always look at my keyboard when I do that, so awkward is the combination. But I just found a solution:
nmap Y "+y vmap Y "+y
Y does a
yy, which I never use, because it's inconsistent with other commands.
D, for example is equivalent to
d$, delete until the end of the line, same for
c$. I guess it makes
Y play along with
V (line-wise visual select) and
S (subsitute full line), but I always use
yy anyway, so
Y is free to use. When I now want to yank to my system clipboard, I just use
Y instead of
y and that's it.
You can also consider adding this as
gy, which does not have a meaning, but
g combines with various commands to activate variation of their meaning, so it's not a bad choice either. I mapped it to both and will see which one sticks.