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.
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.
댓글이 없습니다.