-
Intro
요새 코드에디터로 Neovim을 사용하려는 시도를 하고있다.
Vim 자체가 익숙치 않아서 초기에 좀 어려움을 겪었다.
Vim motion부터 좀 익숙해지고, 개인 프로젝트 개발할 때는 급하지 않으니 최대한 Neovim을 사용했다.
이제 나름 일할 때도 쓸 수 있을만큼 적응하여 사용하고 있다.
그래서 한번 Neovim에 대해 소개를 해보려고한다.Neovim
Neovim 이란?
Fireship 소개 영상 https://youtu.be/c4OyfL5o7DU
Vim을 개선하여 현대의 IDE 처럼 다양한 기능을 제공할 수 있게함.
- lua를 통한 설정
- Built-in LSP
- 파일 트리, 자동완성 코드 하이라이팅 등 다양한 플러그인사용 계기
- 개발을 하다가 마우스에 계속 손이 가야하는데에 불편함을 느낌
- 최대한 단축키를 많이 쓰고 싶어서 기존에 쓰던 vscode에 단축키를 최대한 커스텀하여 사용
- 코드 에디팅적인 부분에선 충분했지만, 깃이나 파일 네비게이션같은 부분에서 점점 단축키가 많아지고 헷갈리기 시작
- 평소 보던 유튜버 ThePrimeTime의 여러 영상에서 Neovim을 알게됨
- 우선 Vscode의 Neovim 익스텐션을 시도
- vim의 단축키들은 operator와 motion을 조합하여 사용한다는 개념이 맘에 듦.
- ex)
ciw
-c
hangei
nnerw
ord
- ex)
- 하지만 vscode 내에서 사용하기에 버벅임이 있고 vscode 기능과 호환오류가 있음.
- vim의 단축키들은 operator와 motion을 조합하여 사용한다는 개념이 맘에 듦.
- "Vscode 위에 Neovim을 얹지 말고 Neovim 위에 vscode의 다양한 기능을 지원할 수 있는 플러그인을 얹어보자."라는 생각으로 시작
사용 후 느낀 점
Neovim 장점
- Vim motion으로 인해 키보드 사용이 편하다.
- 설치 및 실행이 가볍다.
- 키매핑이 쉽고, 깃UI나 파일트리 등도 단축키로 쉽게 동작이 가능하다.
Neovim 단점
- 러닝커브가 비교적 높다. (기존 vim 유저 제외)
- 기존에 vim을 사용하지 않았다면 적응하는데에 시간이 꽤 걸린다.
- vim motion부터 적응 후 차근차근 각종 다른 기능 및 플러그인의 단축키에 적응하는 게 필요하다.
- 타 에디터에 비해 설정이 어렵다.
- Vscode를 기준으로 하면 일단 클릭 몇번으로 수정 가능한 UI를 제공하고 json으로도 쉽게 설정을 바꿀 수 있다.
- Neovim은 lua 설정 파일을 통해서 설정을 해야하는데, lua 자체가 낯설기 때문에 적응에 시간이 필요했다.
- 대규모 프로젝트에서 tsserver의 LSP 관련 기능들이 느리게 동작한다.
- vscode는 tsserver를 내장하고 있어서 굉장히 빠른 코드 자동완성을 제공한다.
- 같은 규모의 프로젝트이지만 neovim에서는 입력 후 자동완성이 뜨기까지 tsserver를 거쳐야 하는 경우오래걸리는 것을 경험했다.
추천하는 방법
1. Neovim distro
Neovim 설정 및 여러가지 필수에 가까운 플러그인들이 구성 되어있는 Pre-configured 방식의 Neovim들이 있다.
- NvChad, LazyVim, LunarVim, AstroVim 등
cf) Distro 비교글
아래와 같은 경우에 추천한다.
- Neovim이 어떤 것인지 한번 가볍게 사용을 해보고 싶은 경우
- 하나씩 설정하는 것보단 미리 세팅된 Neovim을 이용하고 싶은 경우
2. 순정 Neovim
위의 Distro를 사용하는 방식이 top-down이라면, Bottom-up으로 시작할 수도 있다.
순정 Neovim부터 시작해서 설정을 하나씩 바꿔보고, 플러그인을 붙여보며 나만의 Neovim을 만드는 방식이다.
시간은 조금 더 걸리겠지만, neovim에 대해 더 이해할 수 있고 차근차근 하나씩 익힐 수 있는 정석에 가까운 방식이다.아래와 같은 경우에 추천한다.
- 정석적으로 하나씩 알아가는 방식을 선호하는 경우
- 다양한 플러그인을 내 입맛에 맞게 커스텀하고싶은 경우
사소한 팁
- 플러그인들은 해당 플러그인의 github 내에 설정에 관한 설명들이 가장 잘 되어있으니 github을 잘 찾아보는 것이 좋다.
- 구글에 다양한 Neovim config 관련 글이 있다. 특히 Reddit에 사용자가 많아서 많은 도움을 받았다.
- lua 설정이 헷갈린다면 chat GPT를 통해서도 도움을 받을 수 있다. 나온지 꽤 되었기 때문에 잘 알려준다.
- 따라해보면 좋은 Neovim 설정 영상 0 to LSP: Neovim RC From Scratch
나는 distro인 LunarVim으로 시작하여 LazyVim을 사용 중이다.
아직은 뉴비라서 그런지 순정 설정으로 사용해야겠다는 필요성은 못느껴 잘 사용하고있다.
파일 트리, 깃, LSP 모두 만족스러운 경험이다.
이 글을 읽은 분들도 호기심이 생긴다면 가볍게 한번 도전해보면 좋겠다.728x90'Study > 개발' 카테고리의 다른 글
Regular Expression 종류, 동작 방식, 성능 (2) 2024.03.23 React 18 - Suspense 분석하기 (0) 2024.02.21 React 18 - Transition과 외부 상태 관리 도구 (2) 2023.12.10 React 18 - Transition (0) 2023.12.09 Wasm Book 튜토리얼 (0) 2023.11.12