Eines der unangenehmsten Dinge beim Arbeiten mit Neovim auf einem entfernten Server war die Zwischenablage. In der lokalen Umgebung lässt sich dies einfach mit den Einstellungen von Neovim und xclip
lösen, aber beim Arbeiten über SSH auf einem entfernten Server ist es schwierig, die kopierten Inhalte in die lokale Zwischenablage einzufügen. Hier präsentiere ich eine saubere Lösung, die ich nach mehreren Versuchen gefunden habe.
Umgebung und Voraussetzungen
-
Entferner Server: Ubuntu-basierter Server
-
Lokaler PC: Ubuntu-basierte GUI-Umgebung
-
Neovim ist installiert (die Erklärung basiert auf der init.lua-Konfiguration).
Schritt 1: Installation von xclip auf dem entfernten Server
Zuerst installieren Sie xclip
auf dem entfernten Server mit dem folgenden Befehl.
sudo apt install xclip
Dieses Paket wird benötigt, damit Neovim mit der Systemzwischenablage kommunizieren kann.
Schritt 2: Konfiguration des OSC52-Protokolls
OSC52 ist ein Protokoll, das es ermöglicht, Inhalte direkt über die SSH-Verbindung in die lokale Zwischenablage zu übertragen. Um es mit Neovim zu verwenden, müssen Sie ein Plugin installieren.
- Fügen Sie Folgendes zur Neovim-Konfigurationsdatei (
init.lua
) hinzu:
{
'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
},
Diese Einstellung sorgt dafür, dass die Inhalte, die in Neovim kopiert werden, automatisch über das OSC52-Protokoll in die lokale Zwischenablage übertragen werden.
Schritt 3: Konfiguration des SSH-Servers
Um OSC52 ordnungsgemäß funktionieren zu lassen, müssen Sie in den SSH-Daemon-Einstellungen des entfernten Servers die Option X11Forwarding aktivieren.
Öffnen Sie die Datei /etc/ssh/sshd_config
und überprüfen oder fügen Sie die unten stehenden Einstellungen hinzu.
AllowTcpForwarding yes
X11Forwarding yes
Starten Sie anschließend den SSH-Daemon neu.
sudo systemctl restart sshd
Schritt 4: Konfiguration des lokalen SSH-Clients
Wenn Sie sich über SSH mit dem Server verbinden, müssen Sie X11 Forwarding aktivieren. Fügen Sie dazu Folgendes zur SSH-Konfigurationsdatei hinzu.
~/.ssh/config
Datei:
Host myserver
HostName server-address.com
User myuser
ForwardX11 yes
Port 2222
IdentityFile ~/.ssh/id_rsa
Jetzt können Sie einfach den Befehl ssh myserver
verwenden, um sich zu verbinden.
Schritt 5: Konfiguration der Neovim-Zwischenablageoptionen
Zuletzt stellen Sie Neovim so ein, dass es die Zwischenablage verwendet. Fügen Sie Folgendes zur init.lua
Datei hinzu.
vim.o.clipboard = 'unnamedplus'
Verwendung
Nun sind alle Einstellungen abgeschlossen. Wenn Sie Inhalte in Neovim kopieren, wählen Sie den Bereich im Visualmodus (v
) aus und drücken Sie die y
-Taste, dann wird der kopierte Inhalt automatisch in die lokale PC-Zwischenablage gespeichert.
Sie können jetzt den Inhalt, den Sie in Neovim auf dem entfernten Server kopiert haben, sofort in den lokalen Browser oder in den Notizblock einfügen.
Obwohl der Prozess anfangs kompliziert erscheinen mag, ist er sehr praktisch, sobald er einmal eingerichtet ist. Wenn Sie häufig eine entfernte Entwicklungsumgebung verwenden, empfehle ich dringend, diese Konfiguration vorzunehmen.
Es sind keine Kommentare vorhanden.