vim 모드 전환
앞에서 vim의 모드에 대하여 간단한 포스팅을 올린 바 있다. 그 내용은 명령(command) 모드와 편집(insert) 모드가 있다는 것이다.
대부분의 작업은 명령 모드에서 이루어진다. 편집 모드는 글자를 입력하는 역할만 하고, 편집, 수정, 삭제, 각종 명령 등 모두 명령 모드에서 이루어진다. 따라서 vim에서의 작업은 명령 모드와 편집 모드의 끊임없는 전환의 형태로 이루어지고 이것에 익숙해져야 한다.
편집 모드 → 명령 모드
편집 모드에서 명령 모드로 전환하는 키는 Esc 키다. 그런데 Esc 키가 키보드에서 누르기 어려운 위치에 있으므로 이것을 대체하는 키가 있는데 그것이 바로 <Ctrl+[> 키다. (< >로 묶인 키는 동시에 누른다. 즉, Ctrl 키를 누른 상태에서 [ 키를 누른다.)
편집 모드에서 Esc 키, <Ctrl+[> 키를 누르면 명령 모드로 전환
명령 모드 → 편집 모드
명령 모드에서 편집 모드로 전환할 때는 필요에 따라 사용할 수 있는 다양한 방식이 있다.
아래의 사례들은 모두 명령 모드에서 누르는 단축키다. 커서의 위치에 주목해서 살펴보자.
i → i(insert)는 현재 커서 위치에서 편집 모드로 전환한다.
I have a dream! → i를 누른다.
I have a dream! → 커서의 위치는 바뀌지 않고 편집 모드로 변경
a → a(append)는 현재 커서 위치 다음 칸에 첨가되고 편집 모드로 전환
I have a dream! → a를 누른다.
I have a dream! → 커서가 한칸 오른쪽으로 이동해서 편집 모드로 전환
A → 현재 커서가 위치한 행의 끝에서 첨가되고, 편집 모드로 전환
I have a dream! → A를 누른다.
I have a dream! → 현재 행의 끝으로 이동해서 첨가
I → I는 현재 행의 맨 앞으로 커서가 이동해서 편집 모드로 전환
I have a dream! → I를 누른다.
I have a dream! → 현재 행의 맨 처음으로 이동해서 끼워넣기
s → 커서가 위치한 글자를 지우고 편집모드로 전환
I have a dream! → s를 누른다.
I have a drem! → 커서가 위치한 글자가 지워짐
o → o(open line)는 커서가 있는 행 아래에 새로운 행을 만들어 커서를 위치시킨 후 편집 모드로 전환
아래의 상황에서 o 키를 누른다.
I have a dream!
I want to be an excellent programmer.
원래 커서가 있던 행의 아래에 새로운 행이 생기고 커서의 위치가 새로운 행의 처음으로 이동한다. 편집 모드로 전환된다.
I have a dream!
I want to be an excellent programmer.
O → 커서가 있는 행 위에 새로운 행을 만들어 커서를 위치시킨 후 편집 모드로 전환
아래의 상황에서 O 키를 누른다.
I have a dream!
I want to be an excellent programmer.
원래 커서가 있던 행의 위에 새로운 행이 생기고 커서의 위치가 새로운 행의 처음으로 이동한다. 편집 모드로 전환된다.
I have a dream!
I want to be an excellent programmer.
cc → 커서가 위치한 행이 지워지면서 편집 모드로 전환
다음과 같은 상황에서 cc를 누르면 그 행의 내용이 전부 지워지면서 편집모드로 전환
I have a dream!
I want to be an excellent programmer.
I have a dream!
→ 기존의 있던 내용이 전부 지워지고 커서가 처음으로 이동되면서 편집모드로 전환
r → 명령 모드에서 한 글자만 바꿀 때 사용한다. 한 번 글자키를 눌러 변경하면 다시 명령 모드로 돌아와 입력이 되지 않는다.
I want → 명령 모드에서 r을 누르고 c를 누르면
I cant → 기존의 w자가 c자로 변함
R → 명령 모드에서 R키를 누르면 바꾸기 모드가 되면서 원래 있던 글자를 덮어 쓰면서 입력된다.
Anki 파일
아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다.
'Anki로 공부하기 > vi 또는 vim 익히기' 카테고리의 다른 글
007 기타 커서 이동(1) (0) | 2018.04.20 |
---|---|
006 상하좌우로 커서 이동하기 (0) | 2018.04.19 |
004 vim의 실행과 종료 및 파일 불러오기와 저장 (1) | 2018.04.18 |
003 명령 라인(명령줄) (0) | 2018.04.17 |
002 vim 튜토리얼(vimtutor)을 소개합니다. (0) | 2018.04.10 |