트랙 7에서 코드 옆에 바로 보여주는 gitsigns.nvim을 소개했지. 여기에 브랜치 작업을 맡을 더 묵직한 git 클라이언트를 하나 붙이면 필요한 범위가 다 덮여.
gitsigns.nvim — 코드 옆에 붙는 층이야. gutter에 바뀐 hunk를 표시하고, stage 하고 되돌리고 미리 보고, 줄 단위 blame까지 해줘. 편집하는 흐름 안에서는 이게 최고야.
vim-fugitive — 깊이 들어가는 층이야. :Git이 모든 git 작업을 Vim 명령으로 받아줘. :Git blame은 오갈 수 있는 blame 화면을 열고, :Git log, :Git diff, :Git rebase -i도 다 돌아가. 묵직한 작업에는 이쪽이 낫고.
아니면 둘 다 건너뛰고 옆 tmux pane의 lazygit으로 브랜치 작업을 해도 돼. 트랙 7에서 본 패턴이야.
대부분은 gitsigns에 lazygit을 붙여서 써. fugitive는 뭐든 Vim 안에서 끝내고 싶은 사람들 몫이야.
oil.nvim — 파일시스템을 buffer처럼 고치기
oil.nvim은 다들 한 번 써보면 빠지는 plugin이야. 지금 디렉토리를 평범한 Vim buffer로 여는데, 그러면 파일시스템이 곧 buffer가 돼. 줄 하나가 파일 이름이고, 평소 쓰던 Vim motion으로 고치고, :w로 저장하면 Vim이 그대로 이름을 바꾸고 옮기고 만들고 지워. 캡처 그룹 regex로 파일 다섯 개 이름을 한 번에 바꾸고 싶어? :%s/old/new/ 하고 :w면 끝이야.
파일 탐색기의 다른 학파
VS Code처럼 옆에 트리를 두는 쪽이 좋으면 neo-tree나 nvim-tree가 있어. 잘 돌아가고 익숙하지만, 파일시스템을 buffer로 고치는 힘은 못 줘. 옆 트리로 가기 전에 oil을 일주일만 써봐.
최소 설정
아래 블록이 gitsigns, fugitive (:Git을 부르기 전까지는 안 켜지니까 부담이 작아), oil을 넣어줘. 지연 로딩을 걸어놨으니 시작이 느려지지 않고, oil은 -를 누르는 순간 바로 열려.
파일시스템을 buffer처럼 고치는 게 진짜 결정타야. GUI 트리에서 끌어다 이름 바꾸는 건 파일 하나엔 괜찮아. 한 번에 열 개를 다뤄야 하면 oil에 파일 이름을 블록으로 고치고 :w 하는 쪽이 이겨. buffer 모델은 개수가 늘어도 버티고, 트리 화면은 못 버텨.
oil.nvim을 넣어. 아무 buffer에서나 -를 눌러 지금 디렉토리를 열어봐. 줄에 cw를 걸고 저장해서 파일 이름을 바꿔보고, 줄을 하나 더해 저장해서 새 파일도 만들어봐. 그다음 tmux pane에서 ls로 파일시스템을 확인해 — 편집이 진짜로 적용됐을 거야. gitsigns랑 fugitive도 같이 넣었다면, commit 안 한 변경이 있는 파일을 열고 ]c / [c로 hunk 사이를 오간 다음 <leader>hs로 하나를 stage 하고, :Git으로 fugitive의 status 화면에서 stage된 내용을 확인해봐.
Progress
Progress is local-only — sign in to sync across devices.