Een van de ongemakken bij het gebruik van Neovim op een externe server was de clipboard. In een lokale omgeving kan dit eenvoudig worden opgelost met de instellingen van Neovim en xclip, maar bij het werken op een externe server via SSH is het moeilijk om gekopieerde inhoud naar de lokale PC-clipboard te verplaatsen. Hier presenteer ik een nette oplossing die ik na vele pogingen heb gevonden.

Structuur van de Neovim clipboard-integratie met OSC52


Omgeving en voorbereiding

  • Externe server: Ubuntu-gebaseerde server

  • Lokale PC: Ubuntu-gebaseerde GUI omgeving

  • Neovim is geïnstalleerd (uitgelegd op basis van de init.lua-instellingen.)

Stap 1: Installeer xclip op de externe server

Installeer eerst xclip op de externe server met de volgende opdracht.

sudo apt install xclip

Dit pakket is nodig zodat Neovim kan communiceren met het systeem clipboard.

Stap 2: OSC52-protocol instellen

OSC52 is een protocol waarmee inhoud direct via SSH-verbinding naar de lokale clipboard kan worden verzonden. Installeer een plugin om dit in Neovim te gebruiken.

  • Voeg toe aan het Neovim configuratiebestand (init.lua):
{
    'ojroques/nvim-osc52',
    config = function()
        require('osc52').setup()
        local function copy()
            if vim.v.event.operator == 'y' and vim.v.event.regname == '+' then
                require('osc52').copy_register('+')
            end
        end
        vim.api.nvim_create_autocmd('TextYankPost', {callback = copy})
    end
},

Deze instelling zorgt ervoor dat de inhoud die in Neovim wordt gekopieerd (yanked) automatisch via het OSC52-protocol naar de lokale clipboard wordt verzonden.

Stap 3: SSH-serverinstellingen

U moet de X11Forwarding-optie in de SSH-daemoninstellingen van de externe server inschakelen om OSC52 correct te laten werken.

Open het bestand /etc/ssh/sshd_config en controleer of voeg de onderstaande instellingen toe.

AllowTcpForwarding yes
X11Forwarding yes

Herstart de SSH-daemon na de wijzigingen.

sudo systemctl restart sshd

Stap 4: Instellen van de lokale SSH-client

Wanneer u verbinding maakt met de server via SSH op uw lokale PC, moet u X11-forwarding inschakelen. Voeg de onderstaande instellingen toe aan het SSH-configuratiebestand.

~/.ssh/config bestand:

Host myserver
    HostName server-address.com
    User myuser
    ForwardX11 yes
    Port 2222
    IdentityFile ~/.ssh/id_rsa

Nu kunt u eenvoudig de opdracht ssh myserver gebruiken om verbinding te maken.

Stap 5: Instellen van de Neovim clipboard-opties

Tenslotte stellen we Neovim in om de clipboard te gebruiken. Voeg de volgende regel toe aan het init.lua bestand.

vim.o.clipboard = 'unnamedplus'

Hoe te gebruiken

Nu zijn alle instellingen voltooid. Wanneer u inhoud in Neovim wilt kopiëren, selecteert u het gebied in de Visual Mode (v) en drukt u op de y toets, waardoor de gekopieerde inhoud automatisch in de lokale PC-clipboard wordt opgeslagen.

U kunt nu de inhoud die u in de Neovim op de externe server hebt gekopieerd, direct plakken in de browser of notepad op uw lokale machine.


Hoewel het proces aanvankelijk ingewikkeld leek, is het zeer handig zodra het eenmaal is ingesteld. Als u vaak in een externe ontwikkelomgeving werkt, raad ik aan deze instelling te proberen.