Using clipboard through SSH in vim

15,917

The "clipboard" is a feature of X11, so you will need to enable "X11 forwarding" for the SSH connection in "trusted" mode:

$ ssh -Y myserver

(By default, X11 is forwarded in "untrusted" mode, which is somewhat too restrictive. -Y disables the restrictions.)

Also make sure the server has xauth and a X11-capable version of vim installed. You can use xsel -o and xsel -o -b to verify that the clipboard can be accessed.


To make it permanent, add the following to your local ~/.ssh/config:

Host myserver
    ForwardX11 yes
    ForwardX11Trusted yes
Share:
15,917
jaz
Author by

jaz

Updated on September 18, 2022

Comments

  • jaz
    jaz over 1 year

    I have Ubuntu 11.04 desktop and a 11.04 VPS server.

    After replacing vim with vim-gtk (I don't need GUI though), I'm able to use the system's clipboard in vim. I'd like to use the same feature in Ubuntu server, but it looks like it doesn't work with ssh -X.

    Is there some way I can enable that feature or do I need to use nano for that?

  • jaz
    jaz over 12 years
    I'm using vim-gtk in server and I can see using "vim --version" that X11 is enabled. There is nothing about xauth through. This is what I get: $ xsel -o xsel: Can't open display: (null) : Success
  • jaz
    jaz over 12 years
    "sudo apt-get install xauth" did the trick.
  • Walt W
    Walt W over 6 years
    For whomever it is useful for: this worked for me, but only with the + register, not the * register. Your mileage may vary.
  • CMCDragonkai
    CMCDragonkai over 5 years
    Does doing this mean you're actually using X-based vim, and not the command line text based Vim?
  • user1686
    user1686 over 5 years
    @CMCDragonkai: No. If you run vim, you still get the text-based Vim – which just has minimal X11 support for accessing the clipboard and such.
  • icc97
    icc97 over 3 years
    This affects Neovim too. With a regular SSH connection if you do :echo has('clipboard') you get 0. However once you connect with ssh -Y then :echo has('clipboard') gives you 1. I got the `has('clipboard') check from here: stackoverflow.com/a/11489440/327074
  • Pablo A
    Pablo A over 2 years
    Could you extend the which is somewhat too restrictive bit? What's the problem with just -X/untrusted mode? Seems to work fine.