Vim 9.2

1 month ago 12

  • Vim 9.2는 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 페이지에서 제공됨

Read Entire Article