가장 흔한 Vim+tmux 프로젝트 레이아웃이 일관돼서 거의 기본이야. 세 window: editor, server, shell. 가끔 네 번째: logs. 각 window 가 작업이 얼마나 chatty 한지에 따라 1–3 pane. 일주일 쓰면 프로젝트 전환이 그냥 세션 이름 바꾸는 거.
Window 1 — editor
풀스크린 Vim, 또는 같은 프로젝트 root 의 Python REPL / 터미널을 위한 사이드 pane 과 함께 Vim. Vim 안에 buffer + split + LSP 가 실제 코드 작업. 오른쪽 pane 은 코드 라인 보내기 (vim-slime 또는 비슷한 거로) 또는 에디터에서 발동시키는 pytest path/to/test.py 같은 명령 실행용.
Window 2 — server
Dev 서버. npm run dev, uvicorn app.main:app --reload, cargo watch, 스택이 실행하는 뭐든. 보통 한 pane. 가끔 서버가 자체로 안 보이면 로그 tail 과 함께 split.
Window 3 — shell
범용. Git operation, 임시 스크립트, docker exec, psql, 뭐든. 종종 한쪽에 lazygit 또는 tig 와 split 해서 대화형 git 작업.
Window 4 — logs (옵션)
많은 로그 출력 만드는 서비스에 대해, 로그 파일에 tail -f 또는 pod 에 kubectl logs -f 위한 window 전용. 항상 열어둠; 뭔가 이상해 보이면 그쪽으로 flip.
REPL 워크플로우
Vim 에서 코드 편집; 인접 tmux pane 의 Python/Node/SQL REPL 에 영역이나 단락 보냄. 자동화 도구:
vim-slime — Vim 선택을 타깃 tmux pane 에 보냄. 어떤 REPL 에든 작동.
vim-tmux-runner — slime 같지만 "테스트 파일 보내기" 명령이 first-class.
iron.nvim — 언어 인식 send 명령 가진 Lua-native REPL 통합.
Git 워크플로우
똑같이 좋은 두 패턴:
gitsigns.nvim 으로 Vim 안에서: gutter 에 hunk 보고, leader 바인딩으로 hunk stage / reset / preview. 미세한 "이 hunk 응, 저 hunk 안 됨" 작업에 최고.
인접 pane 에 lazygit: 자체 pane 의 TUI git 클라이언트. 브랜치 operation, commit 히스토리 브라우징, "사실 interactive-rebase 원해" 순간에 최고.
대부분 숙련자가 둘 다 써. 패턴이 보완적이지 경쟁적 X.
영구 dev 환경 endgame
리모트 워크스테이션 (강력한 데스크톱, 클라우드 VM, colocate 된 서버) 에 SSH. 거기서 tmux 시작. 세 window 레이아웃 한 번 셋업. 이제부터:
집에서 노트북 터미널로 작업.
커피숍에서 태블릿으로 SSH.
밋업에서 빌린 머신으로 SSH.
매번 같은 세션 — 같은 buffer, 같은 프로세스, 같은 스크롤백.
리모트-퍼스트 dev 환경이 해자야. 일상 작업이 리모트 워크스테이션의 tmux 세션 안에서 일어나면, 앞에 앉은 디바이스가 중요해지지 않아. 노트북, 키보드 있는 iPad, 친구 머신 — 다 진짜 워크스페이스로 가는 thin 클라이언트야.
실제 작업하는 프로젝트 하나. pippa-up.sh 모델로 시작 스크립트 작성, 세 window 레이아웃과 함께. lazy.nvim spec 에 gitsigns.nvim 추가. 수정된 파일에서 검증: ]c 와 [c 가 hunk 사이 점프; <leader>hp 가 hunk 미리보기; <leader>hs 가 stage. 그 다음 시작 스크립트를 프로젝트와 함께 commit 해서 미래의 너가 매 아침 옳은 상태에서 시작.
Progress
Progress is local-only — sign in to sync across devices.