왼손잡이해방연대 아지트

사용자 확인중...

일지 545호의 개정판

본문 보기

vim 쓰세요

nix 패키지 매니저와 계속 싸우는 중. nix 기반으로 에디터나 셸 설정을 한곳에서 관리하는 home-manager를 세팅 중이다. 오늘은 vim 세팅을 했다.

neovim도 아니고 nixvim도 아닌 vim 세팅이다. vim이 원조, neovim이 vim의 포크, nixvim은 nix스럽게 neovim을 세팅하겠다는 장대한 프로젝트다. nix 쓰는 김에 nixvim도 써보려고 했지만 오류가 났다. 짜치게도 루아 스크립트가 플러그인 모듈을 못 찾았다는 오류였다. 첫째는 nixvim이 생성한 스크립트가 잘못된 것일테고 둘째는 neovim과 플러그인 사이에 루아라는 이물질을 끼워놓으니 뭔가 꼬인 것일테다. 그 외에도 쓰던 플러그인이 nixvim에 없어 비슷한 대체제를 넣었는데, 맥북에서 쓰려고 하니 미묘하게 맥북 내장 명령어 호환성이 안 맞아서 작동을 안 한다. 무서운 점은 nixvim으로 세팅했기 때문에 루아스크립트를 고치기가 아주 귀찮다는 점이었다.... nixvim을 때려치고, 루아를 비롯해 그전까지 쌓아온 neovim에 대한 나쁜 이미지에 질려서 neovim도 때려쳤다.

vim으로 돌아갔다. 역시 vim이 편안하다. 무엇보다도 플러그인들이 전부 도움말이 완전하게 내장되어있다는 게 매우 호감이다.

neovim은 자꾸 도움말을 플러그인에 안 넣을 뿐만 아니라 깃허브에 마크다운으로 쓴 도움말에도 온갖 곳에 이모지를 발라놓는다. 플러그인 자체에도 이모지가 잔뜩 묻어있다.

그리고 기능을 자꾸 루아 함수로 만들어서 준다. 루아는 일단 파싱이 이상하다. vim 설정 파일에 루아스크립트를 쓸 때는 코드 색칠에 treesitter라는 프로그램이 사용된다. 아마 treesitter의 문제일텐데, 루아스크립트에서 소괄호를 한번 열면 그 뒤의 괄호 색깔이 모두 박살난다. 아주 기본적인 하이라이팅도 안 되는 셈이다. 함수 인자는 소괄호를 생략할 수 있는데 어떨 때는 생략할 수 없다. 그리고 소문에 의하면 배열 번호가 1부터 시작한다고 한다. 나랑은 전혀 안 맞는 언어다.

vim이 neovim에 비해 뒤쳐진다고는 하지만 neovim에 구현되는 기능들은 대부분 vim에서도 충실히 구현된다. 내장 LSP를 지원하지 않는다는 결정적 차이점이 있기는 하나 이는 플러그인이 잘 지원해준다. vim 생태계에는 이미 오래 쓰임으로써 검증된 좋은 플러그인들이 많다. 이들 플러그인은 쓰는 사람도 많고 업데이트도 꾸준히 이루어진다. vim은 여전히 생생히 살아있다.

언젠가 아지트 편집기에 vim 모드가 들어갈 것이다. 편집-이동-선택 모드 전환, hjkl 이동, 특수문자 입력 등의 기능이 들어갈 것 같다.

관심있는 사람은 home.nix 레포를 참고하라. modules/common.nix에 vim 설정이 들어있다.