SeokguKim's Garage

A little space for SeokguKim


aztex.nvim 플러그인

Tags: blog, development, neovim

어딘가에서 얻은 아이디어

어쩌다보니, Vim 사용 시에 LaTeX 포맷처럼 noremap에 유니코드 문자를 바인딩하고 사용하신다는 분의 이야기를 듣게 되었습니다.

TeX를 쓸 수 있는 환경이 갖춰져 있다면 좋긴 하겠지만, 그렇지 않은 경우나 더 간단한 사용을 위해서 그런 설정이 있다고 하셨는데, 이를 플러그인의 형태로 만들어보면 어떨까 생각하게 되었습니다.

그래서 그 분의 핸들에서 어느 정도 따온 뒤 TeX와 합친 이름인 aztex.nvim 플러그인을 만들게 되었습니다.

https://github.com/seokgukim/aztex.nvim

목표

aztex.nvim을 만들면서 목표로 한 내용은 다음과 같습니다.

기본 기능

\(backslash) 를 기준으로 등록된 LaTeX 키에 맞는 경우 해당하는 유니코드 문자로 변환

상세

위의 내용을 가지고, Copilot을 시켜서 개요만 잡을 생각이었습니다.

실행

사실 저렇게 계획을 세운 뒤 agent.md에 넣고서 코파일럿을 통해 아웃라인 정도만 간단히 뽑아볼 생각이었는데, 생각보다 잘 만들어줘서 거의 그대로 빠르게 공개하게 된 상황입니다.

명세를 적당히 마크다운으로 찍었을 뿐이지만, 충실히 깔끔하게 다 구현해 주더군요.
진짜 요새 llm 잘 나오긴 하네요.

문서화나 샘플 설정 뽑기, 아스키 아트 까지 간단히 해주기에 인지적 자원을 많이 소모하진 않았습니다.

        ╔═════════════════════════════════════════╗
        ║  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  ║
        ║  █ α │ β │ γ │ δ │ θ │ λ │ σ │ ω │ π █  ║
        ║  █───┼───┼───┼───┼───┼───┼───┼───┼───█  ║
        ║  █ ∈ │ ∉ │ ⊂ │ ⊃ │ ∪ │ ∩ │ ∅ │ ℕ │ ℝ █  ║
        ║  █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█  ║
        ║  █         A   Z   T   E   X         █  ║
        ║  █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█  ║
        ║  █ → │ ← │ ⇒ │ ⇐ │ ↦ │ ↑ │ ↓ │ ∞ │ ∀ █  ║
        ║  █───┼───┼───┼───┼───┼───┼───┼───┼───█  ║
        ║  █ ≤ │ ≥ │ ≠ │ ≈ │ ± │ × │ ÷ │ · │ ∃ █  ║
        ║  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  ║
        ╚═════════════════════════════════════════╝

README.md에 쓰인 아스키 아트. Monospace 글꼴의 경우엔 제대로 보입니다.

동작

의도한 대로의 동작은 모두 잘 실행됩니다.

특히 제일 걱정했던 부분인 nvim-cmp 연동 부분이 잘 작동하네요.

aztex-cmp

의도대로 자동완성 및 버추얼 텍스트가 잘 작동해서 서포팅이 잘 되는 느낌입니다.
라인/버퍼 전체 치환도 제대로 작동하고요.

다만 좀 더 향상시킬 여지는 있을거 같기도 합니다.