Blog
Tools
Nvim & LazyVim
keymaps

LazyVim 키맵 정리 및 Neovim 키 표기법 설명

Neovim 키 표기법 설명

LazyVim을 사용하기 전에 먼저 Neovim의 키 표기법을 이해하는 것이 중요합니다.

기본 표기법

  • <C-x> : Control + x 키를 의미합니다 (예: <C-j> = Ctrl+j)
  • <S-x> : Shift + x 키를 의미합니다 (예: <S-h> = Shift+h)
  • <A-x> 또는 <M-x> : Alt + x (또는 Meta + x) 키를 의미합니다
  • <leader> : 리더 키를 의미합니다. LazyVim에서는 기본적으로 **스페이스바(space)**가 리더 키입니다
  • <localleader> : 로컬 리더 키를 의미합니다. LazyVim에서는 기본적으로 **백슬래시(\)**가 로컬 리더 키입니다

특수 키

  • <esc> : Escape 키
  • <tab> : Tab 키
  • <space> : 스페이스바
  • <cr> 또는 <enter> : Enter 키
  • <bs> : Backspace 키
  • <up>, <down>, <left>, <right> : 방향키

모드 표시

  • n : Normal 모드
  • i : Insert 모드
  • v : Visual 모드
  • x : Visual 모드 (선택 영역)
  • o : Operator-pending 모드
  • c : Command-line 모드
  • t : Terminal 모드
  • s : Select 모드

LazyVim 핵심 키맵

윈도우 이동

설명모드
<C-h>왼쪽 윈도우로 이동n
<C-j>아래 윈도우로 이동n
<C-k>위 윈도우로 이동n
<C-l>오른쪽 윈도우로 이동n

윈도우 크기 조절

설명모드
<C-Up>윈도우 높이 증가n
<C-Down>윈도우 높이 감소n
<C-Left>윈도우 너비 감소n
<C-Right>윈도우 너비 증가n

버퍼 이동

설명모드
<S-h>이전 버퍼n
<S-l>다음 버퍼n
[b이전 버퍼n
]b다음 버퍼n
<leader>bb다른 버퍼로 전환n

파일 및 검색

설명모드
<leader><space>파일 찾기 (루트 디렉토리)n
<leader>ff파일 찾기 (루트 디렉토리)n
<leader>fgGit 파일 찾기n
<leader>fr최근 파일n
<leader>/Grep 검색 (루트 디렉토리)n
<leader>sgGrep 검색 (루트 디렉토리)n

LSP (Language Server Protocol)

설명모드
gd정의로 이동n
gr참조 찾기n
gI구현으로 이동n
gy타입 정의로 이동n
K호버 (문서 보기)n
<leader>ca코드 액션n, v
<leader>cr이름 변경n
<leader>cf코드 포맷팅n, v

진단 (Diagnostics)

설명모드
]d다음 진단으로 이동n
[d이전 진단으로 이동n
]e다음 에러로 이동n
[e이전 에러로 이동n
<leader>cd줄 진단 표시n

터미널

설명모드
<C-/>터미널 열기 (루트 디렉토리)n
<C-/>터미널 숨기기t

윈도우 관리

설명모드
<leader>-윈도우 아래로 분할n
`<leader>`윈도우 오른쪽으로 분할
<leader>wd윈도우 삭제n

Git 관련

설명모드
<leader>gbGit blame 표시n
<leader>gsGit 상태n
<leader>gdGit diff (hunks)n

토글 기능

설명모드
<leader>uf자동 포맷 토글 (전역)n
<leader>us맞춤법 검사 토글n
<leader>uw줄 바꿈 토글n
<leader>ul줄 번호 토글n
<leader>ud진단 토글n

leader와 localleader의 차이점

leader (리더 키)

  • 전역적인 명령에 사용됩니다
  • LazyVim에서는 기본적으로 스페이스바입니다
  • 파일 검색, 버퍼 관리, LSP 기능 등 대부분의 일반적인 명령에 사용됩니다
  • 예: <leader>ff (파일 찾기), <leader>ca (코드 액션)

localleader (로컬 리더 키)

  • 특정 파일 타입이나 플러그인에 특화된 명령에 사용됩니다
  • LazyVim에서는 기본적으로 **백슬래시(\)**입니다
  • 주로 특정 언어나 플러그인의 특수한 기능에 사용됩니다
  • 예: LaTeX 파일에서 <localleader>ll (컴파일), Octo.nvim에서 <localleader>i (이슈 관련)

  1. which-key.nvim: LazyVim은 which-key를 사용하여 키맵을 보여줍니다. <leader> 키를 누르고 잠시 기다리면 가능한 모든 키맵이 팝업으로 표시됩니다.

  2. 키맵 확인: <leader>sk를 눌러 모든 키맵을 검색할 수 있습니다.

  3. 모드별 동작: 일부 키는 여러 모드에서 동작합니다. 예를 들어 <leader>ca는 normal 모드와 visual 모드 모두에서 사용 가능합니다.

  4. 커스터마이징: LazyVim의 키맵은 필요에 따라 사용자가 변경할 수 있습니다. ~/.config/nvim/lua/config/keymaps.lua 파일에서 커스텀 키맵을 추가할 수 있습니다.