※ Vim은 명령어가 워낙 많아서 같은 기능을 하는 명령어도 많기에 제가 자주 쓰는 걸로 정리했습니다.
※ Visual Studio의 Vim 확장 기능을 사용한 VSVim 명령어이니 원래 Vim과는 다를 수 있습니다.
※ [ ]는 실제 명령어 입력할때 쓰지 않습니다
Vim를 Visual Studio에서 쓸 수 있다?! 삐슝빠슝뿌슝
(설치는 extension으로 하면 되기에 생략)
모드
esc - 기본모드로 돌아가기, 커서이동은 거의 여기서만 작동한다.
a,i 등 - 입력모드로 전환, 코드를 수정할 수 있지만 여러 커서이동이 불가능하다.
v,V 등 - 선택모드로 전환, 보통 마우스로 드래그하는 걸 키보드로 한다고 생각하면 된다.
전역 명령어
진짜 필요한 명령어만 정리했으니 더 많은 명령어는 구글에...
:w - 저장(write)
:q - 나가기(quit)
:q! - 저장하지 않고 나가기
:e file.txt - file.txt 열기 VSVim에서는 안되는 것 같다
- 원래 vim에서는 이거 모르면 저장도 못하고 갇혀버리는 사태가...
커서 이동
상하좌우
h - ←
j-↓
k- ↑
l- →
- 각각 방향키에 대응한다.
- 선택모드에서 중요하게 쓰인다.
//gif
행 이동
H - 화면 기준 맨 윗줄로 이동
L- 화면 기준 맨 아랫줄로 이동
- 화면에 표시 되는 코드 기준 위아래로 이동한다.
- 그렇게 많이 쓰진 않음
//gif
gg- 맨 첫줄로 이동
G- 맨 마지막 줄로 이동
- 전체 코드의 맨 첫줄, 마지막줄로 이동한다
- 변수를 맨 위에 선언해서 확인할 때 빼고는 잘 안쓴다.
//gif
[n]gg- n번째 줄로 이동한다
- 화면에 표시된 줄로 이동할때 편하다
//gif
0- 줄의 처음으로 이동
$- 줄의 마지막으로 이동
- 글자에 상관없이 무조건 처음과 마지막으로 이동한다.
//gif
^- 줄의 처음 글자로 이동
g_- 줄의 마지막 글자로 이동
- 아래 코드에서 각각 1,2로 이동한다.
[1]System.Windows.Forms.MenuItem[2]
//gif
+ - 다음 줄의 첫 글자로 이동
- - 이전 줄의 첫 글자로 이동
- 꽤나 자주 쓰고 있다
//gif
}, {- 공백칸을 기준으로 다음, 이전 문단으로 이동
- 코드를 공백줄로 구분했다면 이동할때 매우 유용하다.
//gif
% - 대응되는 괄호로 이동
- 뭔가 엄청나지만 그리 많이 쓰이지 않는다
//gif
페이지 이동
커서로 이동하는게 불편할 때 사용, 마우스 휠과 비슷한 역할
Ctrl + b - 한 페이지만큼 위로 이동
Ctrl + f - 한 페이지만큼 아래로 이동
- 화면의 표시되는 코드만큼 이동
//gif
Ctrl + u- 반 페이지만큼 위로 이동
Ctrl + d - 반 페이지만큼 아래로 이동
- Ctrl +b,f의 반정도 이동
//gif
편집
입력모드가 아닌 선택모드나 기본모드에서 편집하는 명령어들, 많은 조합들 중 자주 쓰는 것만 정리
더 다양한 명령어는 아래 문법글 참고
복사, 붙여넣기, 잘라내기, 실행취소
dd - 현재 줄 삭제(잘라내기)
dw - 현재 단어 삭제(잘라내기)
- 커서가 있는 줄을 삭제하는 것 같지만 붙여넣기 하면 된다.
//gif
yy - 현재 줄 복사
p - 붙여넣기
- 흔히 쓰는 Ctrl + C, Ctrl + V와 기능이 거의 같다.
//gif
u - 실행취소
Ctrl + r - 다시 실행
- Ctrl + z와 Ctrl + Shift + z와 같은 기능이다.
입력모드
이동명령어가 많아서 정작 코드수정에 필요한 입력모드가 뒤로 많이 밀렸다...
i - 현재 커서 위치에서 시작
a - 커서 위치의 한칸 앞에서 시작
- i가 가장 기본적인 입력모드로 들어가는 명령어다.
//gif
I - 줄의 첫 글자 앞에서 시작
A - 줄의 마지막 글자 뒤에서 시작
- 주석을 달거나 맨 앞에서 시작할 때 유용하다.
//gif
o - 아래에 새로운 줄을 만들고 시작
O - 위에 새로운 줄을 만들고 시작
- 위에 새로운 줄을 만들고 시작하는건 꽤 쓸만하다.
//gif
cw - 현재 단어를 지우고 시작
S - 현재 줄을 지우고 시작
- 잘못된 단어나 줄만 변경할때 유용하다.
//gif
선택모드
마우스 드래그와 같은 기능이다. 많은 줄을 복사하거나 삭제할 때 사용
v - 글자단위 선택모드
Shift+ v - 줄단위 선택모드
Ctrl + v - 블럭단위 선택모드
- h,j,k,l로 범위 선택
//gif
기타 명령어
/[찾을문자] - 문자열 검색(Ctrl + F)
n - 다음 단어로 이동
N - 이전 단어로 이동
//gif
:%s/[찾을문자]/[바꿀문자]/g - 문자열을 검색한 후 수정
+범위인수
%- 코드전체
. - 현재 줄
[n],[m]- n행부터 m행까지
+변경방법
g - 물어보지 않고 변경
i- 대소문자 구분 없지 검색 후 변경
c - 찾을 때마다 물어보고 변경
//gif
문법
위 명령어의 대부분은 조합이 가능하며 조합법(문법)도 있다.
근데 딱히 외울필요는 없고 자주 쓰는 것만 기억하면 된다.
동사 : v(visual), c(change), d(delete), y(yank,/cop)등
범위 선택 : i(inner)
텍스트 선택 : w(word), s(sentence), p(paragragh), b(block)
ex) di" - ""안 글자 삭제
vap - 이 문단(공백줄 기준) 선택
매크로나 표시는 나중에 많이 쓰게 되면 추가 예정
여담
솔직히 마우스 쓰는게 복붙이나 스크롤하기 편하다.
'작업일지 > Vim' 카테고리의 다른 글
Neovide 설치하기 (0) | 2023.07.23 |
---|---|
Neovim on Windows (0) | 2023.07.23 |
VSvim에서 vimrc 파일 설정하기 (0) | 2022.01.30 |
SpaceVim on Windows (0) | 2022.01.19 |
SpaceVim 설치하기 (0) | 2021.03.28 |