- 20년간 Vim을 사용해온 개발자가 Helix 에디터로 전환하여 3개월간 사용한 경험을 공유
- Helix는 복잡한 설정 없이 언어 서버(LSP) 를 기본 지원하는 점에서 매력적임
- 특히 Vim/Neovim 대비 뛰어난 검색 기능과 다중 커서 등이 개선되어, 여러 파일 내에서 맥락(context) 파악과 일괄 편집이 편리함
- 키 입력 시 빠른 참조 팝업(quick reference) 으로 단축키를 잊지 않고 활용 가능함
- Markdown 리스트 자동 생성 미지원, 영구 undo 부재, 주 1회 정도의 크래시 등 일부 불편한 점이 있지만 전반적으로 만족스러운 사용 경험
- 20년간 쌓인 Vim 근육 기억을 재학습하는 과정이 예상보다 쉬웠으며, Vim 방식을 강제하지 않고 "Helix 방식"을 학습하는 것이 훨씬 효과적이었음
Helix로 전환한 이유
- Helix를 사용하게 된 계기는 언어 서버 통합 기능을 간편히 이용하기 위함임
- Vim/Neovim에서 언어 서버 설정은 복잡했으며, Helix는 별도 설정 없이 즉시 정의 이동이나 심볼 이름 변경 등이 가능함
- 기존에는 수많은 플러그인과 설정 파일을 유지해야 했으나 Helix는 기본 지원으로 부담이 줄어듦
Helix의 주요 장점
-
검색 시스템의 우수성
- 저장소 전체에서 문자열 검색 시 결과를 미리보기 창으로 표시해 매칭되는 파일을 스크롤하며 주변 코드를 함께 볼 수 있음
- Vim의 ripgrep 플러그인과 달리 결과 맥락이 풍부해 빠른 판단이 가능함
-
빠른 단축키 참조 기능
-
g키를 누르면 이동 가능한 명령 목록이 도움말 팝업으로 표시되어 직관적임 - 자주 사용하지 않는 단축키도 쉽게 확인 가능해 학습 곡선이 완만함
-
Vim과 Helix의 차이점
-
마크 기능은
ma,'a대신Ctrl+O,Ctrl+I로 커서 이동 이력을 추적함 -
매크로 대신 멀티 커서 편집을 주로 사용함
- 문서 내 일괄 변경 작업 시
%로 전체 선택 →s로 정규식 선택 → 필요한 다중 편집 수행 - 매크로를 항상 작성하는 것보다 다중 커서가 훨씬 편리
- 문서 내 일괄 변경 작업 시
-
탭 대신
space + b로 버퍼 스위처를 활용해 빠르게 전환 가능함
Helix의 불편한 점
-
텍스트 리플로우 기능이 Vim의
gq보다 덜 효과적임- 리스트와의 호환성이 떨어짐
-
Markdown 리스트 자동 생성 미지원
- 리스트 항목 끝에서 "Enter"를 눌러도 리스트가 계속되지 않음
- 불릿 리스트에 대한 부분적 해결책은 있으나 번호 리스트에는 없음
-
영구 undo 기능 아직 미구현
- Vim에서는
undofile을 사용하여 종료 후에도 변경사항 취소 가능했으나 Helix는 아직 이 기능이 없음
- Vim에서는
-
파일 자동 리로드 미지원
- 디스크에서 파일이 변경된 후
:reload-all(:ra<tab>)을 수동으로 실행해야 함
- 디스크에서 파일이 변경된 후
-
가끔 크래시 발생
- 주 1회 정도, Markdown을 많이 편집하는 것과 관련이 있을 수 있음
- 다시 열면 되므로 크게 문제되지 않음
- 그럼에도 불구하고 Helix를 계속 사용하고 있음
전환 과정과 학습 경험
- 20년간 쌓인 Vim 근육 기억을 재학습하는 것이 매우 어려울 것으로 걱정했음
- 휴가 중 사이드 프로젝트에서 Helix를 사용하기 시작했고, 1~2주 후 더 이상 혼란스럽지 않았음
- 처음에는 Vim과 유사한 키 바인딩을 강제하려 했으나 실패했고, "Helix 방식"을 학습하는 것이 훨씬 쉬웠음
- 여전히 혼란스러운 부분 존재
- Vim의
w와 Helix의w는 "단어"에 대한 정의가 다름 (Helix는 단어 뒤의 공백 포함, Vim은 미포함)
- Vim의
터미널 기반 편집 환경
- 수년간 주로 GUI 버전의 vim/neovim을 사용했기 때문에 터미널에서 편집기를 사용하는 것이 약간의 적응 필요
- 최종 결정한 워크플로우
- 각 프로젝트마다 별도의 터미널 윈도우를 사용하고, 해당 윈도우의 모든 탭이 동일한 작업 디렉토리를 가짐
- Helix 탭을 터미널 윈도우의 첫 번째 탭으로 배치
- 여러 프로젝트를 병렬로 다루기 편리해, 이전 워크플로우보다 더 나을 수도 있음
설정
- Neovim 설정이 수백 줄이었던 것에 비해 매우 간단한 설정을 유지
- 주로 4개의 키보드 단축키만 설정
- 주요 설정 내용
- 테마:
solarized_light - 기본 yank 레지스터를
+로 설정하여 시스템 클립보드와 동기화 -
#을 주석 토글 단축키로 설정 (기본Ctrl+C가 마음에 들지 않았음) -
^와$를 줄의 시작/끝으로 이동하도록 재매핑 (다른 방식을 배우고 싶지 않았음) -
<space>l을:reflow로 설정 (텍스트를 많이 작성하므로 자주 리플로우 필요, vim의gq단축키가 그리웠음)
- 테마:
- 별도의
languages.toml설정 파일에서 언어별 선호도 설정- Python의 경우: black 포매터 사용, pyright 언어 서버, 자동 포맷 비활성화
결론: 3개월간의 인상
- 3개월은 그리 긴 시간이 아니며, 언젠가 Vim으로 돌아갈 가능성도 있음
- 과거 nix로 전환했다가 8개월 후 Homebrew로 돌아간 경험이 있음 (단, 한 서버 관리에는 여전히 NixOS 사용 중이며 만족)
- Helix는 아직 완성형은 아니지만 “설정 없는 편집기”의 방향성이 명확함
- 단순함과 기본 내장 기능 덕분에 장기적으로 Vim 대체 가능성을 지님
- 다만 지속적 사용 여부는 향후 안정성 개선과 기능 확장에 따라 달라질 전망임