-
더 이상 메인 에디터로 Neovim을 쓰지 않는 이유Study/개발 2024. 11. 23. 16:18
이전 글 - https://blue-tang.tistory.com/97
Neovim은 약 1년이 넘는 기간동안 나의 메인 코드 에디터였다. 키보드만으로도 모든 것을 제어할 수 있는 강력한 기능과 속도는 나에게 큰 즐거움을 주었다. 그러나 시간이 지나면서, 나는 점점 Neovim을 메인 에디터로 사용하는 것에 대한 한계를 느끼게 되었다. 이번 글에서는 내가 왜 Neovim을 더 이상 메인 에디터로 사용하지 않게 되었는지에 대해 이야기해보려고 한다.
Neovim의 장점
먼저, Neovim이 제공하는 뛰어난 기능들에 대해 짚고 넘어가자.
• Vim motion: hjkl + 기능키의 조합으로 모든 것을 제어할 수 있다는 것은 코드 작성에 있어 큰 효율성을 가져다준다. 일하면서도 게임을 하는 듯한 재미는 덤.
• 다양한 플러그인: 대부분의 작업을, 심지어 깃 클라이언트까지도 플러그인으로 제공한다. 덕분에 이런 기능들도 키보드로 수행할 수 있어 손을 마우스로 옮길 필요가 없다. 이는 작업 흐름을 끊김없이 유지하는 데 큰 도움이 된다.
• Tmux와의 유연한 연동: Tmux와 결합하여 터미널 내에서 동시에 많은 세션 관리가 가능하다. 여러 프로젝트를 동시에 진행할 때 매우 유용하다. 로컬 개발 서버 등 터미널에서 작업하는 여러 기능들과의 결합이 부드럽다.
• 빠른 시작 속도: 가벼운 무게 덕분에 에디터의 로딩이 매우 빠르다.
• 필요할 때 마우스 사용 가능: 비록 잘 사용하지는 않지만, 필요할 때는 마우스로도 조작할 수 있다.
Neovim의 단점
하지만 Neovim을 사용하면서 몇 가지 단점들도 분명히 존재했다.
• 에디팅 외적인 부분의 부족한 UI: 현대적인 IDE들이 제공하는 편리한 UI가 Neovim에는 부족하다. 디버깅, 소스컨트롤 등의 기능을 이용할 때 불편함이 있었다.
• 그래픽적인 UI의 한계: 텍스트 기반의 인터페이스로 인해 이미지나 마크다운 등 그래픽적으로 표현되는 정보들을 효과적으로 전달받기 어려웠다.
• 마우스 부재: 분명 마우스로 편한 작업들이 있다. 파일을 드래그해서 한번에 옮길 때 등 종종 그 필요성이 생길 때 단점으로 다가왔다.
• IDE와의 기능 격차: IDE들은 계속해서 발전하고 있는데, Neovim은 그런 발전 속도를 따라가지 못하는 느낌이었다.
• 유지보수 되지 않는 플러그인들: 많은 플러그인들이 시간이 지나면서 업데이트가 중단되거나 버그가 존재하는 경우가 있었고, 이는 안정성에 문제를 가져왔다.
• 설정을 위한 Lua 학습 필요성: 깊이 있는 설정을 위해서는 Lua 언어를 알아야 한다. 추가적인 학습 비용이 된다.
• Monorepo에서의 TS 서버 구동 어려움: 대규모의 Monorepo 환경에서 TypeScript 서버를 제대로 구동하기가 어려웠다.
• 큰 파일 작업 시 속도 저하: 큰 파일을 열 때의 최적화가 되어있지 않아 오히려 VSCode보다 느린 경우가 발생했다.
해결책 찾아보기
이러한 단점들을 보완하면서도 Neovim의 장점을 유지할 수 있는 방법을 찾기 시작했다. 그리고 시도한 방식은 VSCode의 Neovim 익스텐션을 사용하는 것이었다.
편리한 점
앞서 나열한 단점들을 대부분 해소하면서도 장점을 찾을 수 있었다.
• 간편한 설치: VSCode 익스텐션 형태로 제공되기 때문에 설치와 설정이 간단했다.
• Neovim 플러그인 사용 가능: 기존에 사용하던 Neovim의 플러그인들도 일부 활용할 수 있었다.
남은 불편함들
하지만 완벽한 해결책은 아니었다.
• Neovim과 VSCode의 싱크 문제: 두 환경 간의 싱크가 깨지는 문제가 발생했다. 이는 작업 흐름에 큰 지장을 주었다.
• 버퍼 이동 오류: 버퍼 싱크가 깨지면서 단축키로 버퍼를 이동할 때 엉뚱한 파일로 이동하는 문제가 있었다.
이러한 문제들은 사용에 꽤나 치명적인 경험이었고, 이로 인해 새로운 환경에 완전히 적응하기가 쉽지 않았다.
결론
Neovim은 여전히 훌륭한 에디터이지만, 나의 작업 환경과 요구사항에 완벽히 부합하지는 않았다. 하지만 키보드를 통한 만족스러운 개발 경험은 Neovim 사용을 완전히 포기할 순 없게 만든다.
VSCode 내에서 Neovim을 더욱 자연스럽게 사용할 수 있는 방법이 발전하기를 기원하며, 최대한 Neovim의 싱크를 깨지 않을 수 있는 방법을 찾아 볼 것이다.
728x90'Study > 개발' 카테고리의 다른 글
SSE 토이 프로젝트 - 프롬프터 만들기 (0) 2024.07.18 [React Conf 2024] Demystifying Accessibility in React Apps (0) 2024.07.03 타입스크립트 5.5 베타 요약 (0) 2024.07.02 Tmux 마우스 드래그 오류 (0) 2024.07.01 Regular Expression 종류, 동작 방식, 성능 (2) 2024.03.23