[2023-03-22] 1. VIM
Modes
- VI는 일반모드(nomral), 입력모드(insert), 명령행모드(command-line)를 가짐
- Vim은 Visual mode(마우스를 대신하는 드래그 모드)를 추가함
Insert mode로 변환
- a : a(append)는 현재 커서 위치에서 한 칸 뒤로 이동한 후 입력 모드로 전환
- A : 현재 행의 끝으로 이동 후, 입력모드로 전환
- i : i(insert)는 현재 커서 위치에서 입력모드로 전환
- I : I는 현재 행의 맨 앞으로 이동 후, 입력모드로 전환
- o : o(open line)는 현재 행 아래에 새로운 행을 하나 만든 후 입력모드로 전환
- O : 현재 행 위에 새로운 행을 하나 만든 후 입력모드로 전환
- R : 수정(replace) 모드로 작동하여 모든 글자가 덧쓰임
Cursor 기능
-
화살표키 대신 h(왼), j(아래), k(위), l(오) 를 사용
-
[#]h : 좌로 # 칸 이동
-
^ : 행의 맨 앞으로 이동
-
$ : 행의 맨 끝으로 이동
-
Scroll 기능
-
Ctrl + B(Page up) : 위로 한 화면 스크롤
-
Ctrl + F(Page Down) : 아래로 한 화면 스크롤
-
Ctrl + U : 위로 1/2 화면 스크롤
-
Ctrl + D : 아래로 1/2 화면 스크롤
goto 기능
- : [#] : #행으로 이동
- [#]gg : #행으로 이동(# 생략시 1을 의미)
- [#]G : #행으로 이동(# 생략시 마지막 행을 의미)
문서내 현재 위치 정보 표시
- : file(Ctrl + G)
삭제
- x : 커서에 위치한 문자 삭제(
키와 같음) - : d (dd) : 현재 행을 삭제
- D(d$) : 현재 컬럼 위치에서 현재 행의 끝부분까지 삭제
- J : 아래 행을 현재 행의 끝에 한칸 뛰고 붙임(아래 행의 앞부분 공백은 제거)
복사
- yy / :y / Y : 현재 행을 레지스터에 복사함
붙여넣기
- p : 현재 행에 붙임
- :pu : 현재 행의 아래에 붙여 넣음
- P : 현재 행의 위쪽에 붙임
- [#]p : #번만큼 현재 행에 붙임
Undo / Redo
-
u : 바로 이전에 행한 명령 1개를 취소함(Undo)
-
Ctrl + R : 바로 이전에 취소했던 명령을 다시 실행(Redo)
-
. (dot) : 이전 명령어 반복
Range CMD
-
명령행 모드에서 범위를 지정해서 명령이 가능하며 특히 특정 행 범위 삭제 편리
-
meta character
- . : 현재 행을 의미
- $ : 마지막 행을 의미
- +[#] : 현재 위치에서 # 만큼 아래 행을 의미
- -[#] : 현재 위치에서 # 만큼 위 행을 의미
- % : 문서 전체를 의미
-
예시
-
:20d : 20번 행을 삭제
-
:10,25d : 10~25 행을 삭제
-
:10,$d : 10~마지막 행까지 삭제
-
:%y : 문서 전체를 복사함
-
:.,+20y : 현재 행부터 아래로 20행을 복사함
-
:-10,+5d : 현재 행부터 위로 10행, 아래로 5행, 총 열여섯행을 삭제
-
:40pu : 40번 행에 레지스터의 내용을 붙여넣음
-
Drag
- v : 일반 비주얼 모드로 현재 커서 위치에서 블록을 지정함
- V : visual line mode로 현재 커서가 위치한 행에서 행 단위로 블록을 지정
- Ctrl + V : visual block mode로 열 단위로 블록을 지정함
- 여기서 Drag 한 후 명령을 할 수 있음
- gv : 최근 드래그한 텍스트 영역을 불러옴
- o : 드래그한 블록의 시작, 끝으로 이동
강제종료
- ! 를 추가