기존 Neovim 인스턴스에서 파일 열기: nvr
활용 가이드
개발 중 여러 파일을 동시에 다룰 때, 터미널에서 nvim file.txt
를 입력하면 새로운 Neovim 인스턴스가 열리는 경우가 많습니다. 하지만 이 방식은 이미 실행 중인 Neovim 세션이 있다면 비효율적일 수 있습니다.
“기존에 열려 있는 Neovim 인스턴스에서 파일을 열 수 없을까?”
물론 가능합니다. 이를 위한 도구가 바로 nvr
(Neovim Remote)입니다.
목표
- 기존 Neovim 인스턴스에 새 파일을 전송해서 열기
- 원한다면 수직/수평 분할 또는 새 탭으로 열기
nvim
을 IDE처럼 유지하면서 터미널에서 빠르게 파일 열기
1. nvr
설치하기
nvr
은 Python으로 제공되는 툴로 pip를 통해 간단히 설치할 수 있습니다.
1
pip install neovim-remote
archlinux의 경우 pipx
를 사용하세요.
1
pipx install neovim-remote
2. Neovim을 서버 모드로 실행하기
기존 Neovim 인스턴스가 외부에서 명령을 받을 수 있도록 --listen
옵션으로 실행해야 합니다.
1
nvim --listen /tmp/nvimsocket
혹은 init.vim
또는 init.lua
에 아래와 같이 자동으로 서버를 시작하도록 설정할 수 있습니다:
init.vim
(Vimscript)
1
call serverstart('/tmp/nvimsocket')
init.lua
(Lua)
1
vim.fn.serverstart("/tmp/nvimsocket")
3. 기존 인스턴스에서 파일 열기
이제는 Neovim 인스턴스를 띄워두고, 다른 터미널에서 다음과 같이 실행하면 됩니다:
1
nvr --servername /tmp/nvimsocket path/to/file
4. 다양한 열기 방식
목적 | 명령어 |
---|---|
현재 창에서 열기 | nvr path/to/file |
수평 분할로 열기 | nvr --remote-split path/to/file |
수직 분할로 열기 | nvr --remote-vsplit path/to/file |
새 탭에서 열기 | nvr --remote-tabnew path/to/file |
5. 편리한 별칭(alias) 설정
매번 긴 명령어를 치는 건 불편하니, .bashrc
또는 .zshrc
에 alias를 설정해두면 편합니다.
1
alias e='nvr --servername /tmp/nvimsocket --remote'
이제는 그냥 이렇게:
1
e file.txt
결론
Neovim의 서버 모드를 적극 활용하면, 기존 인스턴스에서 여러 파일을 유기적으로 관리할 수 있어 생산성이 크게 향상됩니다. 특히 Tiling Window Manager 환경이나 터미널 기반 작업에 익숙한 개발자에게는 훌륭한 워크플로우 개선책이 될 수 있습니다.
참고 자료