LazyVim 사용자가 본 Emacs — 에디터가 아니라 Elisp 런타임
Vim과 Emacs의 차이는 단축키가 아니라 '에디터를 무엇으로 보느냐'다. evil-mode, Doom=설정 레이어 vs Neovim=포크, magit/org-mode/런타임 리프로그래밍, 생태계 규모까지 Neovim 유저 관점으로 정리한다.
Vim과 Emacs의 차이는 단축키가 아니라 '에디터를 무엇으로 보느냐'다. evil-mode, Doom=설정 레이어 vs Neovim=포크, magit/org-mode/런타임 리프로그래밍, 생태계 규모까지 Neovim 유저 관점으로 정리한다.
셸 시작 시 tmux 자동 attach 스니펫이 매번 빈 세션을 새로 만드는 문제. `attach -t <이름>` 하드코딩과 세션 이름 불일치가 원인이고, 타깃 없는 attach 한 줄로 해결한다. JetBrains IDE 터미널에서 tmux가 자동 실행되는 것을 막는 방법까지.
fzf는 Neovim 없이도 도는 독립 Go 바이너리, Telescope는 Neovim API에 얹힌 순수 Lua 플러그인. '둘 다 파일 검색된다'는 겹치는 기능 하나일 뿐, 어디서 도느냐가 본질이다.
README를 :help로 변환하는 panvimdoc, doc/*.txt vimdoc 포맷(태그·링크·모드라인), :helptags 생성. awesome-neovim 등록 요건인 헬프 문서를 자동으로 만드는 법.
외부 프로세스를 UI 멈춤 없이 돌리는 법. 0.10+ vim.system, 레거시 jobstart, 저수준 vim.uv(libuv), 그리고 콜백을 vim.schedule로 메인 루프에 되돌리는 이유.
augroup로 중복 등록 막기, callback이 받는 args, pattern vs buffer, 자주 쓰는 이벤트, nvim_exec_autocmds로 내 플러그인의 공개 이벤트 만들기까지.
scratch 버퍼 만들기, floating window 띄우기, extmark로 virtual text·하이라이트 붙이기. 거의 모든 플러그인이 화면에 뭔가 그릴 때 쓰는 API와 인덱스 함정을 한 장으로.
플러그인 Lua 코드에 나오는 vim.* 가 대체 뭔지 한 장으로. 옵션 4갈래(o/opt/bo/wo/g), vim.api와 vim.fn의 갈림길, 키매핑·커맨드·오토커맨드·유틸·스케줄링까지.
객체의 내부 상태를 캡슐화를 깨지 않고 스냅샷으로 저장했다가 나중에 되돌리는 패턴. undo/redo의 본체. Command의 역연산 방식과 비교한다.
GoF 23개 중 실무 빈도가 낮은 세 패턴을 한 곳에 모아 짧게 훑는다. 언제 쓰나, 핵심 구조, 그리고 왜 요즘 잘 안 쓰는지까지.