3P by GN⁺ 3일전 | ★ favorite | 댓글 1개
  • Vim9 스크립트 언어의 대폭 개선, 향상된 diff 모드, 완전한 자동완성 기능, Wayland 실험적 지원 등을 포함한 메이저 업데이트
  • fuzzy 매칭, 레지스터 기반 단어 완성, 새로운 completeopt 옵션 등으로 입력 모드 자동완성이 강화됨
  • Wayland UI 및 클립보드 지원, 수직 탭패널, Windows 네이티브 다크 모드 등 플랫폼별 UI 개선이 이루어짐
  • Enums, Generic 함수, Tuple 타입 등 언어 기능이 확장되어 AI 기반 플러그인 개발에도 활용 가능함
  • Bram Moolenaar 사후에도 Vim은 Charityware 철학을 유지하며, 지원 단체가 Kuwasha로 이관됨

주요 기능 개선

  • 자동완성 기능 강화
    • 입력 모드에서 fuzzy 매칭을 지원하며, 레지스터(CTRL-X CTRL-R) 에서 직접 단어를 완성할 수 있음
    • 'completeopt'nosort , nearest 옵션이 추가되어 결과 정렬 방식을 세밀하게 제어 가능
  • 플랫폼 및 UI 개선
    • Wayland UI 및 클립보드 완전 지원
    • Linux/Unix 계열에서 XDG Base Directory Specification을 준수하여 $HOME/.config/vim을 설정 경로로 사용
    • 수직 탭패널 추가, Windows GUI는 메뉴·제목 표시줄의 다크 모드고해상도 아이콘 지원
  • 학습 지원 기능 추가
    • :Tutor 명령으로 실행되는 인터랙티브 튜터 플러그인이 새로 도입되어 기존 vimtutor보다 현대적인 학습 경험 제공

Vim9 스크립트 언어 확장

  • 언어 구조 강화
    • Enum, Generic 함수, Tuple 데이터 타입이 새로 지원됨
    • 내장 함수가 객체 메서드로 통합되고, 클래스는 보호된 _new() 메서드:defcompile 을 통한 완전한 메서드 컴파일 지원
  • AI 도구와의 통합
    • GitHub Copilot을 활용한 두 가지 예시 프로젝트가 공개됨
      • Battleship in Vim9: 클래스를 활용한 고전 게임 구현
      • Number Puzzle: 인터랙티브 플러그인 형태의 논리 퍼즐

Diff 모드 개선

  • Linematch 알고리듬
    • 'diffopt' 설정에 새로 추가되어 유사한 줄 간의 변경을 정렬, 하이라이팅 정확도 향상
  • Diff Anchors
    • 'diffanchors' 옵션으로 앵커 포인트를 지정해 복잡한 파일의 구간별 diff 정렬 가능
  • Inline Highlighting
    • 한 줄 내 변경 사항을 세밀하게 표시하며, "inline" 하위 옵션으로 제어 가능
    • "inline:simple"이 기본 'diffopt' 값에 포함됨

기본값 변경

  • 현대적 환경에 맞게 여러 기본 설정값이 갱신
    • 'history': 50 → 200
    • 'backspace': 빈값 → "indent,eol,start"
    • 'diffopt': "internal,filler""internal,filler,closeoff,indent-heuristic,inline:char"
    • 'fontsize' (GTK): 10pt → 12pt
    • 'showcmd', 'ruler': 기본 On으로 변경

기타 개선 및 버그 수정

  • Vim 9.1 이후 다수의 보안 취약점, 메모리 누수, 충돌 문제가 수정됨

자선 활동 전환

  • ICCF Holland 해산
    • 창립자 Bram Moolenaar 사망 이후 재단이 유지 불가하여 해산됨
    • 남은 자금은 Kibaale 프로젝트 지원을 위해 이전됨
  • Kuwasha와의 협력
    • 캐나다 기반 단체 Kuwasha가 우간다 프로젝트를 이어받아 후원 지속
  • Charityware 지속
    • Vim은 여전히 Charityware로 유지되며, 사용자는 Kuwasha를 통해 기부 가능

감사 및 배포

  • 패치, 번역, 버그 리포트 등으로 기여한 모든 참여자에게 감사 표시
  • 최신 버전은 Download 페이지에서 제공됨
Hacker News 의견들
  • Vim9이 계속 발전하는 걸 보니 반가움
    중심이 다소 Neovim 쪽으로 옮겨간 듯하지만, Neovim 생태계는 IDE 같은 환경을 원하는 사람들에게 초점이 맞춰져 있는 듯함
    궁금한 점은, 더 많은 플러그인 개발자들이 Vim9Script로 옮겨갈까 하는 부분임. Neovim 사용자는 대부분 Lua 기반 플러그인으로 이동했기에, 양쪽을 모두 지원할 동기가 줄어든 것 같음

    • 나는 vim9script를 정말 좋아해서, 다른 vim에서도 동작해야 할 때를 제외하면 대부분 그걸로 플러그인을 작성함
      특히 tuple 지원이 추가된 게 정말 기쁨
    • 나는 플러그인을 배포하지 않지만, Neovim의 Lua 지원이 Emacs에서 옮겨온 주된 이유였음
      Elisp과 Vimscript 모두 나에겐 너무 답답했음
      그래도 선택권이 있었다면 Lua 말고 다른 언어를 원했을 것 같음
  • Vim이 30년 넘게 Charityware로 운영되어 온 점이 인상적임
    Bram Moolenaar가 세상을 떠난 후 ICCF Holland 재단이 해산되었지만, 남은 자금은 우간다의 Kibaale 프로젝트를 계속 지원하도록 이전되었음
    나는 기술적인 이유로 vim을 선택했지만, Bram이 선의로 이런 기부 활동을 이어온 걸 알고 나서는 더 뿌듯했음

    • 예전에 대기업에서 일할 때 vim을 내부 사용 승인받으려 했는데, 이 charityware 조항 때문에 법무팀이 기부 의무 여부로 한참 논쟁했음
      결국 리눅스 배포판에 이미 포함돼 있다는 사실은 그냥 조용히 넘어갔음
      그래도 Bram의 뜻은 전적으로 지지함
    • 사람들이 vim에 기부하면, 그 돈이 우간다 아동 지원 단체로 전달된다는 게 맞는지 궁금함
  • 나는 vim 팬이지만 결국 nvim으로 옮겼음
    솔직히 vim 유지보수자들이 nvim과 somehow 병합할 방법을 찾았으면 함

    • 새로운 기능을 자주 추가하지 않고 안정성을 유지하는 것도 가치가 있다고 생각함
      내 로컬, 라즈베리파이, Ubuntu 20.04 VM 어디서나 동일하게 동작함
      Vim은 단순함과 일관성이 핵심이라, 더 많은 기능을 원하면 차라리 vscode에 vim 확장을 쓰는 게 낫다고 봄
      예전에 nvim을 써봤지만 큰 장점은 못 느꼈고, :sh 명령이 다르게 동작해서 포기했음
    • 두 프로젝트는 이미 핵심 구조가 달라졌기 때문에 병합은 불가능하다고 봄
      개인적으로 vim9의 방향이 마음에 듦
    • 나도 nvim으로 옮겼지만, 매 릴리스마다 다시 돌아갈까 고민함
      솔직히 Lua가 싫음. 인프라가 전부 Lua로 가는 게 피할 수 없게 됨
      XDG 지원이 해결된 건 다행임
    • 나는 vim과 nvim을 병행해서 씀. init.nvim~/.vimrc를 읽게 하면 문제없음
    • 그런데 nvim은 이제 UI 표준이 정해진 건지 궁금함
  • “AI 기능은 어디 있나요?”라는 농담이 나올 정도로, 이번 릴리스는 AI 없는 대형 업데이트라 신선하게 느껴짐

    • vim에 AI는 필요 없지만, 멀티 커서 기능은 정말 있었으면 함
      예전에 Sublime Text로 옮긴 이유도 그거였고, 지금 쓰는 VSCode나 Zed에서도 필수 기능임
      플러그인은 있지만, 기본 지원이 되면 훨씬 강력할 것 같음
    • vim에는 이미 충분한 AI가 있음 — 바로 사용자의 손과 두뇌
    • 내 생각엔 vim이야말로 에이전틱 코딩에 가장 잘 맞는 도구임
    • 나도 궁금함. 요즘 사람들은 vim에서 AI를 어떻게 쓰는지? ollama 스크립트는 봤는데, 일반적인 활용 사례가 궁금함
    • 참고로 vim은 AI 플러그인과도 잘 호환됨
  • 예전에 Bram Moolenaar가 Neovim이 나오기 전까지는 vim 업데이트를 거부했던 시절이 있었음

    • 이제 그가 세상을 떠난 만큼, 그런 언급은 굳이 할 필요 없다고 생각함
  • GitHub 태그 목록에 v9.2 태그가 없어서 이상했음

    • 이제는 v9.2.0과 v9.2.0000 태그가 추가되었음
    • 관련 커밋은 이 링크임. 작성 시점에는 태그가 아직 안 달려 있었음
  • 오랜 관심 끝에 드디어 제대로 vim을 배우기 시작했음
    AI 덕분에 요청 사이에 시간이 생겨서 학습할 여유가 생겼고, IDE나 AI에게 단순한 수정 요청을 하는 게 오히려 느리게 느껴짐
    에이전틱 워크플로우 덕분에 세밀한 수정과 반복 작업을 훨씬 빠르게 할 수 있게 됨

    • 하지만 나에겐 AI가 오히려 vim의 필요성을 없앴음
      예전엔 vim 전도사였지만, 이제는 음성 명령과 AI 수정으로 대부분의 버그를 해결함
      그래도 vim의 철학은 여전히 사랑함
  • vim이 계속 발전하고 있다는 소식이 정말 반가움

  • Windows GUI가 이제 다크 모드와 개선된 전체화면, 고해상도 아이콘을 지원하게 됨
    새 릴리스를 축하하며, 이 멋진 개선들을 적용해볼 날을 기대함

    • 특히 IT 부서가 Notepad++ 접근을 막은 사람들에게는 정말 완벽한 타이밍의 업데이트임