h j k l | 좌, 하, 상, 우 |
w / W | 다음 단어 / 단어 |
b / B | 이전 단어 / 단어 |
e / E | 단어 끝 |
0 | 줄 시작 |
^ | 첫 번째 비공백 |
$ | 줄 끝 |
gg | 파일 시작 |
G | 파일 끝 |
{number}G | 해당 줄로 이동 |
Ctrl+d / Ctrl+u | 반 페이지 아래/위 |
Ctrl+f / Ctrl+b | 전체 페이지 아래/위 |
% | 매칭 괄호로 이동 |
/{pattern} | 앞으로 검색 |
?{pattern} | 뒤로 검색 |
n / N | 다음 / 이전 매치 |
* | 커서 아래 단어 검색 |
# | 뒤로 단어 검색 |
f{char} | 문자 앞으로 찾기 |
F{char} | 문자 뒤로 찾기 |
t{char} | 문자 앞까지 |
; / , | f/t 반복 |
i / I | 커서 / 줄 시작에 삽입 |
a / A | 커서 / 줄 끝에 추가 |
o / O | 아래 / 위에 새 줄 |
s / S | 문자 / 줄 대체 |
c{motion} | 변경 (삭제 + 삽입) |
C | 줄 끝까지 변경 |
Esc / Ctrl+[ | 삽입 모드 종료 |
x / X | 문자 삭제 |
d{motion} | 모션으로 삭제 |
dd | 줄 삭제 |
D | 줄 끝까지 삭제 |
y{motion} | 복사 |
yy / Y | 줄 복사 |
p / P | 뒤 / 앞에 붙여넣기 |
"+y | 시스템 클립보드로 복사 |
"+p | 클립보드에서 붙여넣기 |
iw / aw | 단어 내부 / 주변 |
i" / a" | 따옴표 내부 / 주변 |
i( / a( | 괄호 내부 / 주변 |
i{ / a{ | 중괄호 내부 / 주변 |
it / at | 태그 내부 / 주변 |
ip / ap | 문단 내부 / 주변 |
v | 문자 단위 비주얼 |
V | 줄 단위 비주얼 |
Ctrl+v | 블록 단위 비주얼 |
gv | 마지막 선택 다시 |
o | 반대 끝으로 이동 |
> | 들여쓰기 |
< | 내어쓰기 |
= | 자동 들여쓰기 |
:w | 파일 저장 |
:q | 종료 |
:wq or :x | 저장 후 종료 |
:q! | 저장 없이 종료 |
:e {file} | 파일 편집 |
:sp {file} | 수평 분할 |
:vsp {file} | 수직 분할 |
:%s/old/new/g | 전체 치환 |
:%s/old/new/gc | 확인하며 치환 |
:noh | 검색 하이라이트 제거 |
:set number | 줄 번호 표시 |
:set relativenumber | 상대 줄 번호 |
Ctrl+w s | 수평 분할 |
Ctrl+w v | 수직 분할 |
Ctrl+w w | 창 전환 |
Ctrl+w h/j/k/l | 창 이동 |
Ctrl+w q | 창 닫기 |
Ctrl+w o | 다른 창 닫기 |
Ctrl+w = | 창 크기 동일 |
Ctrl+w _ / | | 높이 / 너비 최대화 |
:tabnew {file} | 새 탭 |
gt / gT | 다음 / 이전 탭 |
{n}gt | n번 탭으로 |
:tabclose | 탭 닫기 |
:ls or :buffers | 버퍼 목록 |
:b {n} | n번 버퍼로 |
:bn / :bp | 다음 / 이전 버퍼 |
:bd | 버퍼 삭제 |
:b# | 이전 버퍼 |
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.wrap = false
vim.opt.clipboard = "unnamedplus" vim.keymap.set("n", "<leader>w", ":w<CR>")
vim.keymap.set("n", "<leader>q", ":q<CR>")
vim.keymap.set("n", "<C-h>", "<C-w>h")
vim.keymap.set("n", "<C-l>", "<C-w>l")
vim.keymap.set("i", "jk", "<Esc>") vim.g.mapleader = " " -- Space as leader local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({"git", "clone", "--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", lazypath})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
"nvim-treesitter/nvim-treesitter",
"neovim/nvim-lspconfig",
"hrsh7th/nvim-cmp",
}) gd | 정의로 이동 |
gD | 선언으로 이동 |
gr | 참조로 이동 |
gi | 구현으로 이동 |
K | 호버 문서 |
<leader>rn | 심볼 이름 변경 |
<leader>ca | 코드 액션 |
[d / ]d | 이전 / 다음 진단 |