:Gist should copy posted URL to "+, not ""
lilyball opened this issue · 5 comments
When I run :Gist, it seems to yank the pasted URL into "". For reference, I have not defined g:gist_clip_command. From reading the code, it appears to yank into "" if has('unix') && !has('xterm_clipboard'). This is a bad condition. I'm running MacVim, which maps "+ (and "*) to the system clipboard, similar to xterm, but MacVim does not define the +xterm_clipboard feature (possibly because it does not automatically copy selections to "*, because OS X does not have a selection clipboard).
I'd recommend changing this to just being has('clipboard'), which is the condition you use in s:GistGet to determine if you should yank to "+. This should be sufficient to determine if there is a "+ register, and if there is, then you should be yanking to it.
do you mean following?
if exists('g:gist_clip_command')
call system(g:gist_clip_command, url)
elseif (has('unix') && !has('xterm_clipboard')) || !has("clipboard")
let @* = url
else
let @+ = url
endif
Yanking to @+ is perfectly fine under these circumstances. In MacVim, @+ and @* are the exact same register, made available under both names. And in fact I think the code you pasted there is wrong if !has('clipboard'), because the @* register shouldn't exist at all in that case (the /usr/bin/vim that OS X ships with does not have the clipboard feature and does not have a @* (or @+) register at all).
In s:GistGet() you have
if exists('g:gist_clip_command')
exec 'silent w !'.g:gist_clip_command
elseif has('clipboard')
silent! %yank +
else
%yank
endifI think that's the right logic there. You should just update gist#Gist() to say
if exists('g:gist_clip_command')
call system(g:gist_clip_command, url)
elseif has('clipboard')
let @+ = url
else
let @" = url
endifAh, do you mean that gist.vim should copy URL instead of contents?
If you can, could you please send me a pull-request?