정보기술 ·
텍스트 에디터 Vim 9.2 출시...Vim9 스크립트 강화·Wayland 지원 추가
30년 전통의 오픈소스 에디터, 퍼지 매칭·다크모드 등 현대적 기능 탑재
[한국정보기술신문] Vim 프로젝트가 텍스트 에디터 Vim 9.2를 출시했다고 2월 14일 발표했다. 이번 버전은 Vim9 스크립팅 언어의 대폭 강화, 개선된 차이점 비교 모드, 포괄적인 자동완성 기능, 플랫폼별 개선사항 등을 포함한다.
Vim 9.2는 삽입 모드 자동완성 중 퍼지 매칭을 지원하며, 레지스터에서 직접 단어를 완성할 수 있는 기능을 추가했다. 'completeopt' 플래그에 'nosort'와 'nearest' 옵션이 신설돼 매칭 결과의 표시와 정렬을 세밀하게 제어할 수 있다.
리눅스와 유닉스 계열 시스템에서는 XDG 베이스 디렉터리 규격을 준수하여 사용자 설정을 '$HOME/.config/vim'에 저장한다. 실험적 Wayland UI와 클립보드 지원도 완전히 추가됐다.
UI 및 학습 기능 개선
UI 개선사항으로는 기존 가로 탭라인의 대안으로 세로 탭패널이 추가됐다. MS 윈도우 GUI는 메뉴와 타이틀바에 네이티브 다크모드를 지원하며, 개선된 전체화면 모드와 고품질 툴바 아이콘을 제공한다.
새로운 인터랙티브 튜터 플러그인은 ':Tutor' 명령으로 실행할 수 있으며, 기존 vimtutor를 넘어선 현대화된 학습 경험을 제공한다.
Vim9 스크립트 언어 진화
Vim9 스크립트는 Enum, 제네릭 함수, Tuple 데이터 타입에 대한 네이티브 지원을 포함한 주요 언어 개선사항을 도입했다. 내장 함수가 객체 메서드로 통합됐으며, 클래스는 보호된 '_new()' 메서드와 전체 메서드 컴파일을 위한 ':defcompile'을 지원한다.
기여자 예가판 락슈마난은 GitHub Copilot을 활용하여 Vim9의 현대적 구조를 활용한 두 가지 프로젝트를 선보였다. 클래스와 타입 별칭을 보여주는 전함 게임과 인터랙티브 플러그인의 효율성을 입증하는 숫자 퍼즐 게임이다.
차이점 비교 기능 강화
Vim 9.2는 차이점 비교 모드의 시각화와 정렬을 크게 개선했다. 'diffopt' 설정에 'linematch' 알고리즘이 추가되어 버퍼 간 유사한 라인의 변경사항을 정렬하고, 차이점 하이라이팅 정확도를 대폭 향상시켰다.
새로운 'diffanchors' 옵션은 앵커 포인트를 지정하여 버퍼 섹션을 분할하고 독립적으로 비교할 수 있게 하며, 라인 내 변경사항에 대한 인라인 하이라이팅을 개선했다.
기본값 업데이트
현대적인 하드웨어와 워크플로우에 맞춰 여러 기본값이 업데이트됐다. 'history'는 50에서 200으로, 'backspace'는 빈 값에서 'indent,eol,start'로 변경됐다. GTK의 'fontsize'는 고해상도 모니터 최적화를 위해 10pt에서 12pt로 증가했으며, 'showcmd'와 'ruler'는 기본적으로 활성화됐다.
자선 활동 전환
30년 이상 Vim은 우간다 키바레의 어린이들을 지원하는 자선웨어로 운영됐다. 브람 무레나르의 별세 이후 ICCF 홀란드 재단이 해산되었으며, 모든 후원 활동이 캐나다 기반의 장기 파트너인 Kuwasha로 이관됐다. Vim은 계속해서 자선웨어로 남으며, 사용자들에게 우간다의 어린이들을 지원할 것을 권장하고 있다.
Vim 9.2는 공식 다운로드 페이지를 통해 배포되고 있다. 이번 릴리스는 9.1 이후 발견된 보안 취약점, 메모리 누수, 잠재적 충돌을 포함한 다수의 버그를 수정했다.
한국정보기술신문 정보기술분과 최수하 기자 news@kitpa.org