Una de las incomodidades al usar Neovim en un servidor remoto es el portapapeles. En un entorno local, se puede resolver fácilmente con la configuración de Neovim y xclip
, pero cuando trabajas en un servidor remoto a través de SSH, es difícil transferir el contenido copiado al portapapeles de tu PC local. Te presento una solución limpia que encontré después de varias pruebas.
Entorno y requisitos
-
Servidor remoto: Servidor basado en Ubuntu
-
PC local: Entorno GUI basado en Ubuntu
-
Neovim instalado (se explicará según la configuración de init.lua).
Paso 1: Instalar xclip en el servidor remoto
Primero, instala xclip
en el servidor remoto con el siguiente comando.
sudo apt install xclip
Este paquete es necesario para que Neovim se comunique con el portapapeles del sistema.
Paso 2: Configurar el protocolo OSC52
OSC52 es un protocolo que permite enviar contenido directamente al portapapeles local a través de una conexión SSH. Para usarlo en Neovim, deberás instalar un plugin.
- Agregar a la configuración de 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
},
Esta configuración hace que el contenido copiado (yank) en Neovim se envíe automáticamente al portapapeles local a través del protocolo OSC52.
Paso 3: Configuración del servidor SSH
Debes habilitar la opción X11Forwarding en la configuración del daemon SSH del servidor remoto para que OSC52 funcione correctamente.
Abre el archivo /etc/ssh/sshd_config
y verifica o agrega la siguiente configuración.
AllowTcpForwarding yes
X11Forwarding yes
Después de realizar cambios, reinicia el demonio SSH.
sudo systemctl restart sshd
Paso 4: Configuración del cliente SSH local
Cuando te conectas al servidor con SSH desde la PC local, necesitas habilitar el reenvío de X11. Para ello, añádele la siguiente configuración al archivo de configuración SSH.
Archivo ~/.ssh/config
:
Host myserver
HostName server-address.com
User myuser
ForwardX11 yes
Port 2222
IdentityFile ~/.ssh/id_rsa
Ahora puedes conectarte usando simplemente el comando ssh myserver
.
Paso 5: Configuración de las opciones del portapapeles en Neovim
Finalmente, configura Neovim para usar el portapapeles. Agrega esta línea a tu archivo init.lua
.
vim.o.clipboard = 'unnamedplus'
Cómo usar
Ya está todo configurado. Cuando copies contenido en Neovim, selecciona el área en Modo Visual (v
) y presiona la tecla y
para que el contenido copiado se guarde automáticamente en el portapapeles de tu PC local.
Ahora puedes pegar directamente el contenido copiado desde Neovim en el servidor remoto en un navegador o bloc de notas local.
El proceso, que al principio puede parecer complicado, es muy conveniente una vez configurado. Si usas frecuentemente entornos de desarrollo remotos, te recomiendo que lo configures.
No hay comentarios.