vi 명령어 및 사용법 정리

옛날에 아는분이 쓰시는거 보고 오히려 키보드 마우스 같이 사용하던 나로서 너무나 신기하고 빠른 속도에 신기해서 한때 vim을 쓰며 익숙해지려고 Note에 정리 했던것들 끄적여 본다.

 

명령어들 엄청 많기는 하지만 쓰다보면 익숙한것 편한것 몇가지만 사용하게 되서 자주 사용하는 명령어만 정리 해서 끄적여 본다.

 

많은 기능들은 솔직하게 다른 사람들이 정리한것들이 많아서.... ㅎㅎㅎㅎㅎ

 

 

1. 이동명령

 

vi에서 방향키 써도 된다 하지만 방향키를 무엇인가 작성하고 이동하고 수정하고 할때 손이 많이 움직이고 모르는 사람이 봤을때 방향키에 손이 와따가따 하는것보다 큰 움직임 없이 무엇인가 빠르게 움직이고 변하는것을 보는것으로 신기해 하지 않을까?

개발자도 멋나게 보여 보고 싶은거다!!!!

 

키 

설명 

 h

 커서를 현재 위치에서 왼쪽으로 한 글자 옮긴다.

 j

 커서를 현재 위치에서 한 라인 아래로 옮긴다.

 k

 커서를 현재 위치에서 한 라인 위로 옮긴다.

 l

 커서를 현재 위치에서 오른쪽으로 한 글자 옮긴다.

 

 

 

2. 편집 명령어

 

글자를 추가하거나, 기존에 있는 글자를 삭제할 경우에 사용하는 명령어이다. 입력한 내용을 명령어가 아닌 파일에 입력하는 데이터로서 인식하여 ESC를 누를때까지 입력한 모든 내용이 화면에 출력된다. 글자를 지우는 명령어를 사용하면 지운 글자는 임시 레지스터에 저장된다.

 

 

 

설명

i

현재 커서가 있는 곳에 글자를 ESC를 누를 때까지 입력한 글자를 추가한다(insert).

x

현재 커서가 있는 곳의 글자를 지운다.

 

 

3. 종료 명령어

 

중요한 명령어 수정하고 지우고 해봐야 저장 못하고 혹은 vi를 종료 못해서 Ctrl+c로 빠져 나올순 없다.

 

 

키 

 설명

 :w

 현재 편집하는 파일을 저장한다(write).

 :w!

 현재 편집하는 파일을 강제로 저장한다.

 :q

 현재 편집하는 파일을 닫고 vi 에디터를 종료한다(quit).

 :q!

 현재 편집하는 파일을 저장하지 않고 vi 에디터를 종료한다.

:wq

 현재 편집하는 파일을 저장하고 vi 에디터를 종료한다(write & quit).

  :zz  현재 편집하는 파일을 저장하고 vi 에디터를 종료한다.(사용하면서 써본적이 없는것 같다.)



 

4. 이동명령어2

 

단순 방향성이 아닌 Eclipse의 ctrl 방향키등과 비슷한 명령어 들이다.

 

아래 명령이 이외 여러가지가 있지만 솔직히 머리가 나빠서 인지 혹은 익숙하지 않아서 인지 안쓰니까 패스 ㅎㅎㅎ 0,$,w,b 이 4가지 명령어는 아주 빈번하게 사용하는 편이다.

 설명

 w

 커서를 우측 단어의 첫 글자로 옮긴다(Word).

 W

 커서를 우측 단어의 첫 글자로 옮긴다. 단, 단어는 공백으로만 나뉜다(Word).

 e

 커서를 우측 단어의 끝 글자로 옮긴다(End of word).

 E

커서를 우측 단어의 끝 글자로 옮긴다. 단, 단어는 공백으로만 나뉜다(End of word).

 b

커서를 좌측 단어의 첫 글자로 옮긴다(Backward).

 B

커서를 좌측 단어의 첫 글자로 옮긴다. 단, 단어는 공백으로만 나뉜다(Backward).

 0

커서를 라인의 첫 글자로 옮긴다.

 $

커서를 라인의 끝 글자로 옮긴다.

 

5. 편집 명령어2

 

 

키 

 설명

 a

 커서의 우측에 ESC를 입력할 때까지 입력한 모든 글자를 추가한다(Append).

 A

 현재 라인의 맨 끝에 ESC를 입력할 때까지 입력한 모든 글자를 추가한다. 숫자 n을 명시하면 n번 반복해서 입력한다(Append)

 I

 현재 라인의 공백이 아닌 첫 글자 앞에서 ESC를 입력할 때까지 입력한 모든 글자를 추가한다(Insert).

 o

 현재 라인 밑에 새로운 라인을 열고 ESC를 입력할 때까지 입력한 모든 글자를 추가한다(Open).

 X

 현재 커서의 왼쪽 글자를 지운다.

 dpos

 현재 커서부터 pos로 명시한 이동 명령어로 명시한 곳까지 글자를 지운다. 이동 명령어는 어떠한 것이 와도 상관없이, 그 명령어의 의미가 나타는 곳까지 글자를 지운다. 따라서 조합할 수 있는 명령어는 dh,dj,dk,dl,dw,db,de,dW,dB,dE,dH,dM,dL,d0,d^,d$,d-d,+,d_,d| 등 헤아릴 수 없이 많은 명령어를 만들 수 있다(Delete).

 dd

 현재 커서가 위치한 라인을 지운다(Delete).

 D

 현재 커서가 위치한 곳부터 라인의 끝까지 지운다. 앞에 숫자 n이 명시된 경우 현재 라인의 끝까지 지우고 추가로 커서 아래에 있는 n-1 개의 라인을 지워서 레지스터에 넣는다(Delete).

 r

 커서가 위치한 곳의 글자를 다른 하나의 글자로 대체한다(Replace).

 R

 커서가 위치한 곳부터 우측으로 가면서 글자를 대체하는데 ESC를 누를때까지 입력한 개수만큼 기존의 글자가 새로운 글자로 대체된다(Replace).

 ~

 커서에 있는 글자의 대소문자를 서로 바꾼다. 즉 ~를 누를 때마다 커서의 우측으로 옮기면서 커서에 있는 글자가 소문자일 경우는 대문자로, 대문자인 경우는 소문자로 바꾼다.

 yy,Y

 커서가 있는 라인의 데이터를 복사한다.

 p

 마지막으로 지우거나 복사한 데이터를 읽어서 커서의 우측에 데이터를 추가한다(Paste).

 P

 마지막으로 지우거나 복사한 데이터를 읽어서 커서의 좌측에 데이터를 추가한다(Paste).

 u

 마지막에 실행한 편집 명령어를 하나를 취소한다(Undo).

 

 
 

6. 검색 명령어

 

 

 키

설명 

 /pattern

 / 다음에 찾고자 하는 글자의 정규식을 사용해서 패턴 형태로 입력하면 커서의 우측 아래쪽 방향으로 패턴을 찾는다.

 ?pattern

 ? 다음에 찾고자 하는 글자의 정규식을 사용해서 패턴 형태로 입력하면 커서의 좌측 위쪽 방향으로 패턴을 찾는다.

 n

 가장 마지막으로 실행한 검색 명령어를 똑같은 방향으로 실행한다. 마지막 검색이 우측일 경우(/를 사용한 경우)는 우측으로, 좌측일 경우(?를 사용한 경우)는 좌측으로 패턴을 찾는다(Next).

 N

 가장 마지막으로 실행한 검색 명령어를 반대 방향으로 실행한다. 마지막 검색이 우측일 경우(/를 사용한 경우)는 좌측으로, 좌측일 경우(?를 사용한 경우)는 우측으로 패턴을 찾는다(Next).

 

 

7. vi 설정 명령어

 

밑의 명령어를 vi 에디터를 실행할 때마다 적어넣기 불편하므로 vi 에디터의 설정을 저장한 파일

즉, ~/.exrc 파일에 자신에게 적합한 설정 사항을 넣어 두면 매번 따로 설정하는 불편함이 사라진다.

   

키 

 설명

 :set nu

 각 라인 앞에 라인 번호를 붙인다(NUmber).

 :set nonu

 각 라인 앞에 라인 번호를 붙이지 않는다(NO NUmber).

 :set ts=n

 탭의 크기를 n으로 정한다(Tab Stop).

 

 

나도 vi를 잘쓰는건 아니지만 개발하면서 전혀 안쓸순 없는부분이라 위에것중 1/3 만이라도 자주 쓰는거 숙지하면 어려움이 없지 않을까 라는 생각이 든다.

 

vi 처음 접하는 개발자 분들 화이팅 입니다.

 

'Job > Tools' 카테고리의 다른 글

vi 명령어 및 사용법 정리  (2) 2015.02.26

  • Favicon of https://zoahaza.net 조아하자  Edit/Del  Reply

    2015.02.28 23:57 신고

    오... 예전에 C했을때 저런거 좀 하긴 했는데... 요즘은 웹쪽으로 완전 전향하고나서는 저런거 안하게 되네요...;;;

'Job/Tools'에 해당되는 글 1건

1 →