Lorsque j'utilisais Neovim sur un serveur distant, l'un des inconvénients était le presse-papiers. Dans un environnement local, cela peut être facilement résolu avec les paramètres de Neovim et xclip
, mais lors du travail sur un serveur distant via SSH, il est difficile d'insérer ce que j'ai copié dans le presse-papiers de mon PC local. Voici une solution simple que j'ai trouvée après plusieurs essais.
Environnement et prérequis
-
Serveur distant : Serveur basé sur Ubuntu
-
PC local : Environnement GUI basé sur Ubuntu
-
Neovim installé (les explications se basent sur la configuration init.lua.)
Étape 1 : Installer xclip sur le serveur distant
Tout d'abord, installez xclip
sur le serveur distant avec la commande suivante.
sudo apt install xclip
Ce paquet est nécessaire pour que Neovim puisse communiquer avec le presse-papiers du système.
Étape 2 : Configurer le protocole OSC52
OSC52 est un protocole qui permet d'envoyer directement des contenus vers le presse-papiers local via une connexion SSH. Pour l'utiliser avec Neovim, installez un plugin.
- Ajoutez à votre fichier de configuration Neovim (
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
},
Cette configuration permet d'envoyer automatiquement le contenu copié (yanké) dans Neovim vers le presse-papiers local via le protocole OSC52.
Étape 3 : Configurer le serveur SSH
Pour que OSC52 fonctionne correctement, l'option X11Forwarding doit être activée dans les paramètres du démon SSH du serveur distant.
Ouvrez le fichier /etc/ssh/sshd_config
et vérifiez ou ajoutez les paramètres suivants.
AllowTcpForwarding yes
X11Forwarding yes
Après avoir effectué les modifications, redémarrez le démon SSH.
sudo systemctl restart sshd
Étape 4 : Configurer le client SSH local
Lorsque vous vous connectez au serveur via SSH depuis votre PC local, vous devez activer le X11 Forwarding. Ajoutez cela à votre fichier de configuration SSH.
Fichier ~/.ssh/config
:
Host myserver
HostName server-address.com
User myuser
ForwardX11 yes
Port 2222
IdentityFile ~/.ssh/id_rsa
Maintenant, lorsque vous vous connectez via SSH, utilisez simplement la commande ssh myserver
.
Étape 5 : Configurer les options de presse-papiers de Neovim
Enfin, configurez Neovim pour utiliser le presse-papiers. Ajoutez cela au fichier init.lua
.
vim.o.clipboard = 'unnamedplus'
Comment utiliser
Voilà, toutes les configurations sont terminées. Lorsque vous copiez du contenu dans Neovim, sélectionnez la zone en mode visuel (v
) et appuyez sur la touche y
pour que ce que vous avez copié soit automatiquement enregistré dans le presse-papiers de votre PC local.
Maintenant, vous pouvez coller directement le contenu copié depuis Neovim sur le serveur distant dans votre navigateur local ou votre bloc-notes.
Bien que cela puisse sembler complexe au début, une fois configuré, c'est très pratique. Je vous recommande de le mettre en place si vous utilisez fréquemment un environnement de développement distant.
Aucun commentaire.