[CLI vim] 1. vim 시작하기

2020. 11. 20. 16:55Linux/Command-line

반응형
  1. vim commands
  2. text 입력
  3. Cursor 한칸 이동(화살표 키)
  4. 삭제
    1. 문자 삭제 : x
    2. row 삭제 : dd
    3. 다음줄 이어 붙이기(join) : J
  5. 실행 취소, 복원
  6. vim 종료

1. vim commands

Vi IMproved

UNIX 계열 OS에서 사용되는 에디터입니다.
vi 에디터에서 기능이 더 추가된 버전으로, vi에서 지원하는 모든 기능을 포함하고 있습니다.

문서 편집시 빈번히 사용하는 다양한 기능들을 (복사, 붙여넣기, 드래그 등...) 단축키로 빠르게 실행할 수 있기 때문에 단축키들을 익혀두면 코드 편집에 속도를 향상 시킬 수 있습니다.

vim 에서 사용할 수 있는 명령어는 크게 4가지로 구분할 수 있습니다.

  • 문서를 수정 및 추가는 insert mode commands
  • 간단한 문서 조작을 할 때엔 normal mode commands
  • 복잡한 문서 조작이 필요할 때엔 command-line commands
  • 드래그 기능을 사용하여 문서를 조작해야할 때엔 visual mode commands

normal mode 명령어는 vim 에디터를 실행할 때 기본적으로 활성되어있는 command 모드로, 키보드로 입력하여도 스크린상에 출력되지 않습니다.
ggW와 단순한 명령어들로 구성되어있으며, 다수의 명령어들이 앞에 숫자를 붙여 이용할 수 있습니다.

command-line 명령어는 :.*[]^%/\?~$를 입력하여 실행할 수 있으며, normal mode 명령어로 조작할 수 없는 복잡한 조건을 regex를 적용하여 문서를 조작할 수 있습니다.
스크린 맨하단에 명령어가 출력되며, 명령어 작성 후 Enter를 눌러야 명령어가 실행됩니다.

sudo yum install vim-enhanced

vim을 시작하기 앞서, vim이 설치되어있지 않다면 설치합니다.


2. text 입력

vim 에디터를 이용하여 문서를 읽는 것은 매우 간단합니다.

vim test.txt

열고자 하는 문서의 앞에 vim이라는 명령어만 입력하면 됩니다.

vim을 시작하면 normal mode로 시작됩니다.
text를 입력하기 위해서는 insert mode로 전환해야합니다.

가장 간단하게는 현재 커서가 위치하는 곳에서 insert mode로 전환하는 i명령어가 있고, 그 외에도 커서 시작점에 따른 여러 명령어가 있습니다.

아래와 같은 텍스트 문서에서 c 위치에 커서가 있는 상태에서 zzz 문자열을 삽입하는 과정을 통해 명령어를 설명해보도록 하겠습니다.

grape 12345 nnnnn
abcde pine2 mmmmm
apple viooo fifif


i

insert
현재 커서 위치에서 insert mode를 시작합니다.
커서가 위치한 곳에서 문자가 입력됩니다.

grape 12345 nnnnn
abzzzcde pine2 mmmmm
apple viooo fifif

a

append
현재 커서의 다음 문자에 커서를 옮기고 insert mode를 시작합니다.

grape 12345 nnnnn
abczzzde pine2 mmmmm
apple viooo fifif

I

현재 커서가 위치한 row의 맨앞으로 커서를 옮기고 insert mode를 시작합니다.

grape 12345 nnnnn
zzzabcde pine2 mmmmm
apple viooo fifif

A

현재 커서가 위치한 row의 맨뒤로 커서를 옮기고 insert mode를 시작합니다.

grape 12345 nnnnn
abcde pine2 mmmmmzzz
apple viooo fifif

o

open up a new line
현재 커서가 위치한 row의 아래에 new line을 추가한 후, 그 줄에 커서를 옮기고 insert mode를 시작합니다.

grape 12345 nnnnn
abcde pine2 mmmmm
zzz
apple viooo fifif

O

현재 커서가 위치한 row에 위에 new line을 추가한 후, 그 줄에 커서를 옮기고 insert mode를 시작합니다.

grape 12345 nnnnn
zzz
abcde pine2 mmmmm
apple viooo fifif


3. Cursor 한칸 이동(화살표 키)

화살표키와 대응되는 명령어입니다.

h, j, k, l 키를 이용하여 cursor를 이동시킬 수 있습니다.(, , , )

cursor를 이동시키는 명령어 앞에 숫자를 입력하면 설정한 숫자만큼 N칸 이동되며(ex. 17j), default값은 1입니다.

^를 입력하면 현재 행의 맨 첫번째 글자로 cursor를 이동시키고, $를 입력하면 현재 행의 맨 마지막 글자로 cursor를 이동시킵니다.


4. 삭제

insert mode로 진입된 상태에서 문자나 row를 직접 지워도 되지만, normal mode에서 명령어를 이용하여 간단하게 제거할 수도 있습니다.

4-1) 문자 삭제 : x

커서에 위치한 문자를 삭제합니다.
또한, x 명령어 앞에 숫자를 입력할 경우, 여러개의 문자를 한번에 삭제할 수 있습니다.

a에 커서가 위치한 상태에서 예를 들어보자면,

grape 12345 nnnnn

x를 누를경우 커서에 위치한 a가 지워지고,

grpe 12345 nnnnn

5x를 누를경우 커서 위치로부터 5글자를 지웁니다.

gr2345 nnnnn

4-2) row 삭제 : dd

줄단위로 삭제합니다.
커서가 위치한 row를 삭제하며 마찬가지로 앞에 숫자를 붙일 경우 여러줄을 한꺼번에 지울 수 있습니다.

grape 12345 nnnnn
abcde pine2 mmmmm
apple viooo fifif
melon rrrrr dmmmn

2dd 를 누를 경우 2줄이 삭제되며 커서는 row의 맨앞에 위치한 문자로 위치됩니다.

grape 12345 nnnnn
melon rrrrr dmmmn

4-3) 다음줄 이어 붙이기(join) : J

현재 커서가 위치한 row의 맨 끝에 다음 row를 이어 붙일 수 있습니다.

만일 row의 맨 뒤에 탭(\t)이나 띄어쓰기와 같은 공백 문자가 있었을 경우에는 공백문자끝에 다음줄을 이어 붙이고, 만일 공백문자가 없었을 경우에는 한칸의 공백 후 이어 붙입니다.

grape 12345 nnnnn
abcde pine2 mmmmm
apple viooo fifif

grape 12345 nnnnn abcde pine2 mmmmmapple viooo fifif


5. 실행 취소, 복원

실행 취소 및 복원 명령어는 모두 normal mode 상에서 사용할 수 있으며, vim을 이용하여 편집을 시작한 후로부터 버퍼상에 기록된 명령어 실행 정보를 취소하거나 복원합니다.

u

실행 취소 명령어입니다.
(= Windows의 ctrl + z)

ctrl + r

실행 취소한 것을 다시 되돌립니다.
(= Windows의 ctrl + shift + z)

.

가장 최근에 실행한 명령어를 재실행합니다.


6. vim 종료

:q!

quit
버퍼에 저장된 변경사항을 반영하지 않고 종료합니다.
! 를 입력하지 않을 시, 변경사항이 존재할 경우 종료가 이뤄지지 않습니다.
대표적인 command-line 명령어 중 하나입니다.

ZZ

버퍼에 저장된 변경사항을 모두 반영하면서 vim을 종료합니다.
command-line 명령어 :wq! (write quit)와 동일하게 작동합니다.


vim 에디터 실행 중 :help를 이용하면 바로 vim에 관한 help 파일을 읽어볼 수 있으니 참고하면 좋습니다.

728x90
반응형