IM Info
리눅스

Vim, Neovim, VS Code, 리눅스 개발자는 뭘 써야 할까

kuro editor
4분
Vim, Neovim, VS Code, 리눅스 개발자는 뭘 써야 할까

Vim은 1991년에 처음 등장했고, Neovim은 2014년 포크로 갈라져 나왔고, VS Code는 2015년에야 세상에 나왔어요. 30년 넘게 이어져 온 에디터와 이제 10년 된 IDE가 지금도 나란히 리눅스 개발자들의 선택지로 남아 있다는 사실 자체가 흥미로운데, 그렇다면 리눅스 위에서 실제로 코드를 짤 때는 이 셋 중 뭘 골라야 할까요?

Vim은 모달 편집이라는 근본적으로 다른 철학을 가진 에디터다

Vim은 텍스트를 입력하는 모드와 명령을 내리는 모드를 완전히 분리한 모달 편집(modal editing) 방식으로 동작하는 에디터예요. 키보드에서 손을 떼지 않고도 이동, 삭제, 치환 같은 편집 동작을 명령어 조합만으로 처리할 수 있게 설계되어 있어서, 마우스나 방향키에 의존하는 다른 에디터와는 편집 속도 자체가 다른 차원으로 올라가요. 다만 이 방식은 처음 배울 때 저항이 크다는 게 함정이라, 삽입 모드와 명령 모드를 헷갈려서 엉뚱한 곳에 명령어가 그대로 찍히는 경험을 누구나 한 번쯤 겪게 돼요.

Neovim은 Vim의 확장성과 최신 아키텍처를 결합한 후계자다

Neovim은 Vim의 모달 편집 철학을 그대로 이어받으면서 내부 구조를 현대적으로 다시 짠 포크예요. 2014년 프로젝트가 시작된 이후 비동기 작업 처리, 내장 LSP(Language Server Protocol) 클라이언트, Lua 기반 설정 언어를 차례로 도입하면서, 순정 Vim에서는 플러그인을 여러 개 얹어야 가능했던 자동완성이나 코드 진단 기능을 기본 옵션만으로 구현할 수 있게 됐어요. 여기서 끝이 아니에요. Lua 생태계 덕분에 설정 파일 자체가 프로그래밍 가능한 스크립트처럼 동작해서, 사용자마다 완전히 다른 개발 환경을 조립하는 것도 가능해졌어요.

-- init.lua 기본 예시: LSP 클라이언트를 켜는 최소 설정
vim.lsp.config('lua_ls', {})
vim.lsp.enable('lua_ls')

VS Code는 GUI 통합 개발환경으로 설계됐다

VS Code는 처음부터 텍스트 편집기가 아니라 디버깅, 터미널, 버전 관리를 하나의 창에 묶은 통합 개발환경으로 설계된 소프트웨어예요. Electron 기반으로 만들어져 있어서 크로스플랫폼 지원이 쉽고, 마이크로소프트가 마켓플레이스를 직접 운영하면서 확장 프로그램 생태계를 압도적인 규모로 키워왔어요. 마우스 클릭과 사이드바 UI로 대부분의 기능에 접근할 수 있기 때문에 별도의 명령어를 외우지 않아도 되고, 처음 개발을 시작하는 사람이라면 이 진입 장벽 낮은 구조가 가장 큰 장점으로 다가와요.

학습곡선은 세 에디터가 극명하게 갈린다

학습곡선을 기준으로 보면 Vim이 가장 가파르고 VS Code가 가장 완만해요. Vim과 Neovim은 기본 이동 명령만 익히는 데도 며칠이 걸리고, 자신에게 맞는 플러그인 조합을 찾기까지는 수 주가 걸리기도 하지만, 일단 손에 익으면 마우스를 전혀 쓰지 않고도 코드베이스 전체를 빠르게 오갈 수 있는 수준에 도달해요. 반면 VS Code는 설치하고 몇 분 안에 바로 코드를 작성할 수 있는 대신, 손에 익숙해질수록 오히려 단축키와 확장 설정을 더 깊이 파고들게 되는 구조라 숙련도의 정점이 상대적으로 낮은 편이에요.

SSH 원격 서버 작업에서는 터미널 기반 에디터가 유리하다

SSH로 접속한 원격 서버에서는 Vim이나 Neovim처럼 터미널 안에서 직접 실행되는 에디터가 훨씬 유리해요. 서버에 GUI 환경을 띄울 필요 없이 SSH 세션 하나만으로 바로 파일을 열고 수정할 수 있고, 대부분의 리눅스 배포판에 Vim이 기본으로 설치되어 있거나 패키지 관리자로 몇 초 안에 설치할 수 있다는 점도 큰 이점이에요. VS Code도 Remote-SSH 확장을 통해 원격 편집을 지원하지만, 서버 쪽에 별도의 헬퍼 프로세스를 설치하고 유지해야 하기 때문에 저사양 서버나 접속이 잦은 환경에서는 지연과 리소스 부담이 눈에 띄게 커져요. 개발자를 위한 리눅스 배포판을 고를 때부터 이런 원격 작업 빈도를 함께 고려해두면 나중에 에디터를 바꾸는 수고를 덜 수 있어요.

결국 리눅스 개발자는 작업 환경에 맞춰 골라 써야 한다

결론부터 말하면 세 에디터 중 절대적으로 우월한 하나는 없고, 작업 환경에 맞춰 고르는 게 정답이에요. 로컬 데스크톱에서 큰 프로젝트를 다루며 디버거와 GUI 도구를 자주 쓴다면 VS Code가 편하고, SSH로 여러 서버를 오가며 설정 파일을 빠르게 고쳐야 한다면 Vim이나 Neovim 쪽이 압도적으로 실용적이에요. 실제로 많은 리눅스 개발자들이 로컬에서는 VS Code를, 서버에서는 Neovim을 함께 쓰는 식으로 두 방식을 병행하는데, WSL 리눅스 배포판 가이드데스크톱 환경 GNOME/KDE/XFCE 비교를 참고해서 자신의 개발 환경부터 정리해두면 에디터 선택도 훨씬 수월해져요. Vim, Neovim, VS Code 중 뭘 써야 하냐는 질문의 답은 결국 “어디서, 어떤 방식으로 코드를 짜는가”에 달려 있는 셈이에요.

자주 묻는 질문

Q1. Vim과 Neovim 중 어떤 걸 먼저 배워야 하나요?

처음 시작한다면 Neovim을 추천해요, LSP와 자동완성 같은 최신 기능이 기본 옵션으로 들어 있어서 별도 플러그인 없이도 바로 실용적인 환경을 갖출 수 있어요.

Q2. VS Code에서도 Vim 키바인딩을 쓸 수 있나요?

네, VSCodeVim 같은 확장을 설치하면 모달 편집 방식을 그대로 쓸 수 있지만, 실제 Vim의 모든 명령과 플러그인 생태계를 완벽히 재현하지는 못해요.

Q3. SSH로 접속한 원격 서버에서는 어떤 에디터가 더 적합한가요?

터미널 위에서 직접 실행되는 Vim이나 Neovim이 더 적합해요, GUI와 별도 서버 프로세스가 필요한 VS Code Remote-SSH보다 지연이 적고 설치 부담도 훨씬 가벼워요.

Q4. Neovim은 Vim 설정 파일을 그대로 쓸 수 있나요?

네, Neovim은 기존 vimrc 문법과 대부분 호환되기 때문에 기존 Vim 설정을 거의 그대로 가져와 쓸 수 있고, 이후 Lua로 점진적으로 옮겨가는 것도 가능해요.

Q5. VS Code는 리눅스에서 무겁게 느껴지나요?

네, Electron 기반이라 터미널 에디터보다 메모리 사용량이 크게 늘어나는 편이라, 저사양 서버나 오래된 노트북에서는 체감 속도 차이가 분명하게 나타나요.

Q6. 확장 프로그램 생태계는 어느 쪽이 더 큰가요?

VS Code 마켓플레이스가 규모 면에서 압도적으로 크지만, Vim과 Neovim도 각자의 플러그인 매니저를 통해 개발 생산성에 필요한 대부분의 기능을 충분히 확보하고 있어요.

k
kuro editor 자료 조사하고 분석하고 글을 읽기 쉽게 작성합니다
프로필

댓글

첫 번째 댓글을 남겨보세요!