vim 커맨드 정리

dodo·2025년 1월 29일
0
post-thumbnail

Xcode, Pycharm, Visual Studio Code, IntelliJ, vim 다섯가지의 IDE 들을 사용하다보니.. 매번 커맨드가 헷갈립니다.

올해 목표로 하나로 통일하기로 했습니다. 주인공은 바로 근본 vim.
앞으로 나오는 IDE 들도 vim 커맨드는 지원할 것 같아서!


  • Lunar vim 을 이용합니다.
  • 한글과 제대로 사용하기 위해서는 Karabina Elemenets를 통해 esc를 누르면 영어로 전환되도록 설정했습니다.

Editing mode

h, j, k, l : 왼쪽, 아래, 위, 오른쪽 커서 이동

Visual mode

i: insert
A: Editing mode 전환 && 맨 뒤로 이동 (Append)

q! : discard change && quit
wq : write file && quit

x : 한 글자 삭제

w / e → 다음 단어 이동 (word, end of word)
b → 이전 단어 이동 (back)
0 -> 현재 줄의 처음으로 이동
^ -> 현재 줄의 첫 글자로 이동
$ -> 현재 줄의 마지막 글자로 이동


(w) - until the start of the next word, EXCLUDING its first character.
(e) - to the end of the current word, INCLUDING the last character.
($) - to the end of the line, INCLUDING the last character.

이 개념을 숙지하면 좋다.


2w -> w를 2번 반복, 2단어 앞으로
3e -> e를 3번 반복, 3단어 앞으로


dw : 현재 글자부터 다음 단어까지 삭제 (delete word)
de : 현재 글자부터, 현재 단어 끝까지 삭제 (delete end of word)

d2w: dw 2번 반복.
d3e: de 3번 반복.

dd : delete whole line, (삭제한 라인은 register에 저장되어서 p로 복붙가능)


u: undo
U: 한 라인 전체 되돌리기
Ctrl + R: redo


p: 붙여넣기 (paste) -> 커서 이후 라인에 붙여짐.
P: 붙여넣기 -> 커서 이전 라인에 붙여짐.


r: replace
re: 해당 글자를 'e' 로 치환
rx: 해당 글자를 'x' 로 치환


c: change
ce: change until of end word
c$: change until of line
C: change until of line


Ctrl-g: 현재 파일명, 총 라인 수, 커서 위치, 백분율 진행 상태 등을 표시
G: 파일 끝으로 이동
gg: 파일 처음으로 이동
``: 이전 커서 위치로 이동 (같은 파일에서만)
Ctrl + o: 이전 점프 이동위치로 이동 (다른 파일로도 이동가능)
Ctrl + i: 점프 이동위치 거꾸로 이동 (다른 파일로도 이동가능)
noh: 하이라이트 지우기 (no highlight)

%: [, (, { 가 매칭 된 ], ), }가 있는 곳으로 이동

/검색어 : 검색어 검색

  • 동일한 단어가 여러개 잡혔다면 n으로 다음 커서 이동, N으로 이전 커서로 이동
    ?검색어 : 뒤에서 부터 잡힘.

s: substitute (대체)
:s/old/new -> 한 라인에서 첫번째 "old"를 "new"로 대체
:s/old/new/g -> 한 라인에서 "old"를 "new"로 모두 대체
:1,3s/old/new/g -> 1~3 번째라인에서 "old"를 "new"로 대체
:%s/old/new/g-> 전체 파일에서 "old"를 "new"로 대체
:%s/old/new/gc -> 전체 파일에서 "old"를 "new"로 대체할지 말지 선택할 수 있음.


! - 외부 커맨드 입력 가능
!ls - 현재 폴더 볼 수 있음.
!ls 이후 :w TEST 등을 하면 TEST 파일이 생김


:v -> 선택 (visual selection)
:v 이후 :w TEST -> 선택된 글자들이 TEST 라는 이름의 파일로 생김


:r -> 가져오기 (retrive)
:r !ls -> 현재 파일 목록들이 붙여와짐


o -> 아래에 새로운 라인으로 1줄 추가
O -> 위에 새로운 라인으로 1줄 추가
a -> append (insert 모드로 바뀜)

a, i, and A all go to the same Insert mode, the only difference is where the characters are inserted.

R -> replace (insert 모드로 바뀌면서 대체)

NOTE: Replace mode is like Insert mode, but every typed character
replaces an existing character.

yw -> 한 word 복사
yy -> 한 라인 복사


F1 -> 도움말
:help -> 도움말

profile
토스에서 iOS 개발자로 일하고 있습니다. 개발자로서 사용성이 좋은 앱을 만드는 것과, 개발자의 생산성을 올리는 방법에 관심이 많습니다.

0개의 댓글