포스트

mini.nvim — 작은 모듈을 골라 조합하는 Neovim 플러그인 묶음

mini.nvim이 Neovim 플러그인 생태계에서 어떤 위치에 있고 왜 하나의 거대한 플러그인 대신 독립 모듈 묶음으로 구성되는지 설명하고 대표 모듈을 역할별로 정리한다.

mini.nvim — 작은 모듈을 골라 조합하는 Neovim 플러그인 묶음

mini.nvim은 Neovim용 독립적인 Lua 모듈 모음이다. 하나의 거대한 UI나 배포판을 제공하는 것이 아니라 편집, 이동, UI, 파일 탐색 같은 작은 기능을 각각 모듈로 제공하고 필요한 것만 골라 조합하게 한다.

1
2
3
4
5
6
7
8
9
10
Neovim
  ↓
플러그인 계층
  ↓
mini.nvim
  ├─ mini.ai
  ├─ mini.surround
  ├─ mini.files
  ├─ mini.icons
  └─ ...

따라서 mini.nvim을 이해할 때는 모든 모듈을 외우기보다 “작은 기능 단위를 독립 모듈로 제공하는 플러그인 컬렉션”이라는 위치를 먼저 잡으면 된다.

관련: Neovim 배포판 선택은 Neovim을 어디서 시작할까 — Vanilla / kickstart.nvim / LazyVim 비교, 기능이 어느 계층에서 오는지는 Vim vs Neovim vs 배포판 — 각 계층이 제공하는 기능 참고.

왜 모듈을 잘게 나누나

Neovim 사용자는 필요한 기능 조합이 서로 다르다.

1
2
3
4
5
6
7
8
사용자 A
→ text object + surround만 필요

사용자 B
→ file explorer + icons 필요

사용자 C
→ 여러 mini 모듈을 함께 사용

mini.nvim은 이런 차이를 하나의 설정 방식에 강제로 맞추기보다 각 기능을 독립 모듈로 제공한다.

그래서 장점은 단순히 “가볍다”보다 필요한 추상화만 선택해 구성할 수 있다는 데 있다.

대표 모듈을 역할별로 보기

모듈 수가 많기 때문에 기능 이름을 나열하기보다 어떤 문제를 해결하는지 기준으로 보는 편이 낫다.

편집과 Text Object

모듈역할
mini.ai기본 text object를 확장하고 사용자 정의 text object 구성
mini.surround괄호·따옴표 등 주변 문자 추가·변경·삭제
mini.pairs괄호·따옴표 자동 닫기
mini.comment주석 토글
mini.splitjoin한 줄과 여러 줄 표현 사이 변환

특히 mini.aimini.surround는 Vim의 operator/text-object 모델 위에서 동작하기 때문에 단순 단축키 추가보다 기존 Vim 편집 문법을 확장하는 모듈로 이해하면 좋다.

탐색과 이동

모듈역할
mini.files파일 탐색
mini.jump문자 기반 빠른 이동
mini.bracketed여러 종류의 대상 사이를 반복 이동

이 계열은 Neovim Core의 Window/Buffer 또는 기존 이동 명령 위에 더 편리한 탐색 경험을 제공한다.

UI와 표현

모듈역할
mini.icons파일 형식·UI에서 사용할 아이콘 제공
mini.indentscope현재 들여쓰기 범위 시각화
mini.animate스크롤·커서·창 변화 애니메이션
mini.starter시작 화면 구성

이 모듈들은 편집 의미론 자체보다 Neovim 상태를 어떻게 보여줄지에 가깝다.

작업 상태와 보조 기능

모듈역할
mini.sessions세션 저장·복원
mini.trailspacetrailing whitespace 표시·정리

LazyVim과의 관계

LazyVim과 mini.nvim의 관계도 계층을 구분하면 쉽다.

1
2
3
4
5
LazyVim
  ↓ 플러그인 선택·기본 설정
mini.nvim의 일부 모듈
  ↓
Neovim

즉 LazyVim이 mini.nvim 전체를 대체하거나 mini.nvim이 LazyVim의 기반 프레임워크인 것은 아니다. LazyVim이 자신의 기본 기능을 구성하면서 필요한 mini 모듈을 선택해 사용할 수 있는 관계다.

어떤 모듈이 현재 LazyVim 기본 구성에 포함되는지는 버전에 따라 달라질 수 있으므로, 특정 목록을 영구적인 사실처럼 외우기보다 배포판이 독립 플러그인 모듈을 조합한다는 구조를 기억하는 편이 낫다.

언제 mini.nvim이 잘 맞나

mini.nvim의 선택 가치는 다음 상황에서 잘 드러난다.

1
2
3
4
5
기존 Vim/Neovim 편집 모델을 유지하고 싶다
             +
작은 기능을 필요한 만큼만 추가하고 싶다
             +
서로 비슷한 설정 방식의 모듈을 선호한다

반대로 완성된 IDE 경험이나 하나의 통합 UI 프레임워크를 기대한다면 mini.nvim 자체가 그 목적의 제품은 아니다.

정리

1
2
3
4
mini.nvim
= 하나의 거대한 기능
  X
= 독립적으로 선택 가능한 작은 Neovim 모듈들의 컬렉션

핵심은 모듈 목록보다 Neovim의 기능을 작은 플러그인 단위로 선택·조합하는 설계에 있다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.