원격 서버에서 Neovim을 사용할 때 불편했던 점 중 하나는 클립보드였습니다. 로컬 환경에서는 Neovim의 설정과 xclip만으로 간단히 해결되지만, SSH를 통해 원격 서버에서 작업할 때는 복사한 내용을 로컬 PC의 클립보드에 넣기가 어렵습니다. 여러 시행착오 끝에 찾은 깔끔한 해결책을 소개합니다.

환경 및 준비사항
-
원격 서버: Ubuntu 기반 서버
-
로컬 PC: Ubuntu 기반 GUI 환경
-
Neovim 설치 완료 (init.lua 설정 기준으로 설명합니다.)
1단계: 원격 서버에 xclip 설치
먼저 원격 서버에서 다음 명령어로 xclip을 설치합니다.
sudo apt install xclip
이 패키지는 Neovim이 시스템 클립보드와 소통하기 위해 필요합니다.
2단계: OSC52 프로토콜 설정
OSC52는 SSH 연결을 통해 로컬 클립보드로 직접 내용을 전송할 수 있게 하는 프로토콜입니다. Neovim에서 사용하기 위해 플러그인을 설치합니다.
- 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
},
이 설정은 Neovim에서 복사(yank)한 내용을 OSC52 프로토콜을 통해 자동으로 로컬 클립보드로 전송합니다.
3단계: SSH 서버 설정
원격 서버의 SSH 데몬 설정에서 X11Forwarding 옵션을 활성화해야 OSC52가 정상 작동합니다.
/etc/ssh/sshd_config 파일을 열고 아래 설정을 확인하거나 추가합니다.
AllowTcpForwarding yes
X11Forwarding yes
변경 후 SSH 데몬을 재시작합니다.
sudo systemctl restart sshd
4단계: 로컬 SSH 클라이언트 설정
로컬 PC에서 SSH로 서버에 접속할 때 X11 Forwarding을 활성화해야 합니다. 이를 위해 SSH 설정파일에 추가합니다.
~/.ssh/config 파일:
Host myserver
HostName server-address.com
User myuser
ForwardX11 yes
Port 2222
IdentityFile ~/.ssh/id_rsa
이제 SSH로 접속할 때 간단히 ssh myserver 명령어를 사용하면 됩니다.
5단계: Neovim 클립보드 옵션 설정
마지막으로 Neovim이 클립보드를 사용하도록 설정합니다. init.lua 파일에 추가합니다.
vim.o.clipboard = 'unnamedplus'
사용 방법
이제 모든 설정이 끝났습니다. Neovim에서 내용을 복사할 때는 Visual Mode(v)로 영역 선택 후 y 키를 누르면 복사한 내용이 자동으로 로컬 PC 클립보드에 저장됩니다.
이제 원격 서버의 Neovim에서 복사한 내용을 로컬의 브라우저나 메모장에 바로 붙여넣을 수 있습니다.
처음에는 복잡하게 느껴졌던 과정이지만, 한 번 설정해두면 매우 편리합니다. 원격 개발 환경을 자주 사용하신다면 꼭 설정해보시길 추천합니다.
댓글이 없습니다.