Xcode, Pycharm, Visual Studio Code, IntelliJ, vim 다섯가지의 IDE 들을 사용하다보니.. 매번 커맨드가 헷갈립니다.
올해 목표로 하나로 통일하기로 했습니다. 주인공은 바로 근본 vim.
앞으로 나오는 IDE 들도 vim 커맨드는 지원할 것 같아서!
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)
%: [, (, { 가 매칭 된 ], ), }가 있는 곳으로 이동
/검색어 : 검색어 검색
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 -> 도움말