Vim vs Neovim: 어떤 것이 더 나은가, 그리고 어떤 것을 사용해야 할까?

Neovim은 무엇이며 Vim과 어떻게 다른가

코드 작업, 스크립트 작성 또는 단순히 구성 파일 관리 등 어떤 작업을 하든지 편집기를 선택하는 것은 생산성과 즐거움에 큰 영향을 미칠 수 있습니다. 리눅스의 장점은 Vim과 그 향상된 버전인 Neovim을 포함하여 선택할 수 있는 여러 텍스트 편집기 옵션이 있다는 것입니다. Vim과 Neovim 간의 논쟁은 리눅스 사용자들 사이에서 계속 진화하고 있으며, 양측 모두 강한 의견을 가지고 있습니다. 이 가이드에서는 Vim, Neovim, 그들의 기능 및 주요 차이점을 살펴보겠습니다.

Vim이란?

Vim, 또는 Vi IMproved는 UNIX 운영 체제에서 기본 도구였던 오래된 텍스트 편집기 vi의 더 발전되고 기능이 풍부한 버전입니다. Unix 시스템, Windows, macOS 등 여러 플랫폼에서 실행됩니다. macOS 또는 어떤 리눅스 배포판을 사용하고 있다면, Vim이 이미 설치되어 있고 사용할 준비가 되어 있을 가능성이 매우 높습니다.

설치되어 있지 않다면, 기본 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다. 예를 들어, Ubuntu에서는 다음과 같이 사용할 수 있습니다:

sudo apt install vim

설치 후, 터미널에 vim을 입력하여 실행합니다.

우분투 터미널에서 Vim 실행하기

Vim은 파일을 탐색하고, 편집하고, 작업을 저장하며, 마우스를 사용하지 않고도 수많은 다른 작업을 수행할 수 있는 모달 편집 환경을 제공합니다. 또한 구성 파일을 통해 작업 흐름에 완벽하게 맞도록 동작과 외관의 거의 모든 측면을 조정할 수 있습니다. 단점은 새로운 사용자에게 사용하기 어려울 수 있으며, 일부는 Vim에서 나가는 데 어려움을 겪기도 합니다.

Neovim이란?

Neovim은 vi와 Vim의 유산을 기반으로 합니다. 2014년에 Vim의 포크로 시작되어, 많은 사용자가 좋아하는 모달 편집 철학을 유지하면서 Vim의 아키텍처에서 인식된 한계를 해결하는 것을 목표로 했습니다. Neovim은 Vim의 드롭인 대체품으로, 기존의 “.vimrc” 구성 파일을 계속 사용할 수 있습니다.

기본 사용에 있어 Neovim은 Vim과 거의 동일한 느낌을 줍니다. Neovim을 차별화하는 점은 비동기 처리와 같은 현대적인 기능을 지원하여 인터페이스를 멈추지 않고도 작업을 백그라운드에서 실행할 수 있다는 것입니다. 다른 기능으로는 사용자가 편집기를 떠나지 않고도 셸 명령을 실행할 수 있는 내장 터미널 에뮬레이션이 포함됩니다.

Vim과 달리 Neovim은 기본적으로 설치되어 있지 않습니다. 그러나 Neovim 설치는 간단합니다. 예를 들어, Ubuntu에서는 다음을 실행합니다:

sudo apt install neovim

우분투에서 Neovim 설치하기

설치 후, nvim 명령으로 Neovim을 시작합니다.

우분투 터미널에서 Neovim 실행하기

Neovim에는 시작하는 데 도움이 되는 내장 튜토리얼이 포함되어 있습니다. Neovim을 실행하고 :Tutor를 입력하여 기본 사항을 배우세요(프로그램 종료 방법 포함).

Vim과 Neovim의 주요 차이점

Vim과 Neovim은 비슷하게 작동하지만, Neovim은 전반적으로 더 세련된 경험을 제공합니다.

Neovim의 주요 개선 사항 중 하나는 아키텍처에 있습니다. 더 유지 관리 가능하고 모듈화되도록 설계되어 기여 장벽을 낮추고 더 빠르게 발전할 수 있게 합니다. 이러한 아키텍처 변화는 성능과 신뢰성을 향상시킵니다. Vim은 여전히 강력한 편집기이지만, Neovim의 설계는 더 미래 지향적이고 개발자 친화적입니다.

Neovim 가이드 옵션

또한 Neovim의 비동기 아키텍처 덕분에 작업이 백그라운드에서 실행될 수 있어 편집기를 잠그지 않습니다. 자동 완성 제안을 받거나, 린터를 실행하거나, 대규모 프로젝트를 로드할 수 있으며, Neovim은 원활하게 실행됩니다.

Neovim은 Vim 플러그인만 지원하는 것이 아니라, 이를 개선합니다. Vim의 플러그인 시스템은 Vimscript에 크게 의존하는데, 이는 제한적이고 작업하기 어려울 수 있습니다. Neovim은 이를 확장하여 현대적이고 경량의 스크립팅 언어인 Lua를 지원합니다. telescope.nvimnvim-treesitter와 같은 도구는 Vim이 제공하는 것보다 훨씬 더 나은 검색 및 구문 강조 기능을 제공합니다.

Neovim은 구성 파일을 보다 표준화된 방식으로 처리합니다. Vim은 구성을 하드코딩된 “~/.vim” 디렉토리에 저장하는 반면, Neovim은 XDG 기본 디렉토리 사양을 따르며 파일을 “~/.config/nvim”에 배치합니다. 이 구조는 파일 조직을 더 깔끔하고 유연하게 유지합니다. 이러한 차이에도 불구하고 Neovim은 Vim 구성 파일과 호환됩니다.

Vim과 마찬가지로 Neovim은 터미널 기반 UI를 제공하지만, 내장 터미널 에뮬레이터의 편리함을 추가합니다. 터미널을 넘어 Neovim은 Oni, Goneovim 및 VimR과 같은 현대적인 그래픽 사용자 인터페이스를 지원합니다.

Vim과 Neovim의 장단점

각 편집기의 장단점을 논의하여 어떤 것이 귀하의 필요에 더 잘 맞는지 결정할 수 있도록 하겠습니다.

Vim 장점:

  • 대부분의 리눅스 기반 시스템에 사전 설치됨
  • 성숙하고 잘 테스트된 코드베이스로 뛰어난 안정성
  • 광범위한 채택 및 커뮤니티 지원
  • 제한된 리소스 또는 대역폭을 가진 시스템에서 잘 작동

Vim 단점:

  • 초기 학습 곡선이 상당히 가파를 수 있음
  • 플러그인 관리가 더 복잡할 수 있음
  • 특정 현대 기능 통합이 더 어려움
  • 언어 서버 프로토콜(LSP)에 대한 내장 지원 부족

Neovim 장점:

  • 개선된 성능과 더 반응적인 사용자 경험 제공
  • 언어 서버 프로토콜에 대한 내장 지원
  • Lua 스크립팅은 플러그인을 개발하고 구성하는 더 효율적인 방법 제공
  • 플러그인 관리가 일반적으로 더 쉽고 간소화됨
  • 더 합리적이고 사용자 친화적인 기본 설정 제공
  • 내장 터미널 에뮬레이터 포함

Neovim 단점:

  • 대부분의 시스템에 기본적으로 설치되어 있지 않음
  • Vim 특정 기능에 의존하는 일부 Vim 플러그인은 조정이 필요할 수 있음
  • 오래된 Vim 플러그인은 수정 없이 완벽하게 작동하지 않을 수 있음
  • Vim보다 약간 더 많은 리소스를 사용함
  • 구성을 위해 Lua로 전환하는 것은 새로운 언어를 배우는 것을 요구함

어떤 것을 사용해야 할까요: Neovim vs. Vim?

Vim과 Neovim 중에서 선택하는 것은 귀하의 작업 흐름, 편안함 수준 및 편집기에서 필요한 것에 따라 다릅니다. 새로운 소프트웨어를 설치할 수 없는 다양한 시스템에서 자주 작업한다면 Vim을 선택하세요 – 거의 모든 곳에서 사용할 수 있습니다. 또한 안정적이고 가벼운 편집기를 원한다면 Vim이 좋습니다. 또한 이미 수년간 Vim 설정을 조정해왔다면 계속 사용하세요.

반면에, 현대적인 편집 경험을 원한다면 Neovim을 선택하세요. 더 나은 기본값, 활발한 커뮤니티 지원 및 내장 LSP와 Lua 스크립팅과 같은 기능이 있습니다. IDE와 같은 기능을 원하지만 부풀리지 않은 편집기를 원한다면 Neovim이 이상적입니다. 모달 편집에 처음이라면 Neovim의 더 스마트한 기본값이 학습 곡선을 쉽게 만들어줍니다.

최종 생각

Vim과 Neovim 모두 동일한 핵심 목적을 수행하지만, Neovim은 더 현대적이고 능력 있는 편집 경험을 제공합니다. 성능 향상, 플러그인 개발 용이성, LSP 통합 및 향상된 UI 지원으로 Vim의 기반 위에 구축됩니다. 이러한 개선 사항은 더 강력하고 확장 가능한 편집기를 찾는 개발자에게 Neovim을 강력한 대안으로 만듭니다.

많은 개발자들이 두 가지를 모두 사용합니다 – 로컬 개발 작업에는 Neovim을, 원격 서버에서의 빠른 편집에는 Vim을 사용합니다. 개인적으로 두 가지를 모두 시도해본 결과, 신뢰성과 여러 리눅스 배포판에서의 가용성 때문에 Vim을 선택했습니다.

궁극적으로, 두 편집기는 대부분 동일한 기술과 키 바인딩을 공유하므로 하나를 배우면 다른 하나에 능숙해질 수 있습니다. 이들은 단순한 두 개의 편집기가 아니라, 리눅스의 특별함은 모든 사용자의 선호에 맞는 다양한 편집기 옵션이 있다는 것입니다.