1619, 1/81 회원가입  로그인  
   sehkmg
   간단한 vi editor 사용법

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1925 [복사]


ftz 트레이너 과정에 없는듯 해서 올려봅니다~

vi 에디터를 사용하기 위해서는 "vi 만들파일이름" 이렇게 명령을 입력하면 된다.

ex) [root@ftz tmp]# vi test.txt

그러면 까만 화면이 뜰것이다. vi editor에서는 세 가지 모드 - 입력모드, 명령모드, 최종행모드 가 있는데 처음 들어갔을때는 명령모드 상태이다.

명령모드 상태에서 i, I, a, A, o, O를 누르면 입력모드로 전환되는데 각 키의 쓰임은 다음과 같다.

i - Insert, 현재 커서의 위치에 글자를 삽입
I - Insert, 커서가 있는 줄(line)의 맨 앞에 글자를 삽입
a - Append, 현재 커서 위치의 다음 칸에 글자를 추가
A - Append, 커서가 있는 줄(line)의 맨 뒤에 글자를 추가
o - Open line, 현재의 줄 다음에 새로운 줄을 삽입
O - Open line, 현재의 줄 앞에 새로운 줄을 삽입

입력모드 상태에서 <Esc> 키를 누르면 명령모드로 전환된다.

명령모드 상태에서는 커서를 움직일 수 있는데 방향키 설정이 되어있으면 방향키로 움직이면 되고, 안되어 있으면 h, j, k, l(←, ↓, ↑, →) 키들을 이용해 커서를 움직이면 된다. 또 다음과 같은 이동키를 이용하면 커서를 빠르게 이동시킬 수 있다.

0 - 현재 행의 맨 앞으로 이동한다.
$ - 현재 행의 맨 마지막 문자로 이동한다.
^ - 현재 행의 맨 앞 문자로 이동한다.
gg - 첫 행의 맨 앞으로 이동한다.
G - 마지막 행으로 이동한다.
nG - n행으로 이동한다.
H - 스크린의 첫 행의 맨 앞으로 이동한다.
M - 스크린의 가운데 행의 맨 앞으로 이동한다.
L - 스크린의 맨 마지막 행의 맨 앞으로 이동한다.
{ - 단락의 맨 앞으로 이동한다.
} - 다음단락의 선두로 이동한다.
<Enter> - 다음 행의 맨 앞으로 이동한다.

또 명령모드 상태에서 편집을 할 수 있는데 지우는 방법은 다음과 같다.

x - 현재 위치의 문자가 삭제된다.
X - 현재 위치에서 왼쪽에 있는 문자가 삭제된다.
dd - 현재 행을 삭제한다.
dw - 커서 위치에서 단어 끝까지 삭제한다.
D - 커서 위치에서 행 끝까지 삭제한다.

그 다음 블록을 지정하여 편집하는 방법은 다음과 같다.

v키를 눌러서 블록을 지정한후 y키를 누르면 복사, d키를 누르면 잘라내기가 된다.
그 다음으로 p키를 누르면 커서 뒤에 복사된 내용이 붙고 P키를 누르면 커서 앞에 복사된 내용이 붙는다.

블록을 지정하지 않고 행을 복사하거나 오려두는 기능은 다음과 같다.

yy를 누르면 현재 행이 복사된다.
dd를 누르면 현재 행이 지워지면서 버퍼에 저장된다.
그 다음으로 p키를 누르면 커서 뒤에 복사된 내용이 붙고 P키를 누르면 커서 앞에 복사된 내용이 붙는다.

마지막으로 명령모드 상태에서 :를 누르면 최종행 모드가 되는데
:wq는 저장하고 나가기, :q는 그냥 나가기, 이 때 수정된게 있으면 그냥 나가지지 않는데 그때 강제종료방법은 :q! 이다.

일단 이정도만 알아놓으면 될듯하다. 다 외울 필요는 없고 필요할때 이 자료를 다시 읽어보고 하면 된다. 하지만 실습은 한번씩 다 해보면서 어떻게 되는지 알아보길 권장한다.

나도 해본 결과 i, o, O, nG, x, dd 이정도만 사용하게 되는것 같다. 최종행 모드는 다 사용하게 되는것 같다. 특히 nG의 경우는 컴파일에러시 몇번째 행에 오류가 있다고 뜨는데 그때 자주 사용한다. 나는 지금은 습관이 잘 안되있어서 방향키를 많이 이용하는데 나중에 코딩 할때 코드의 길이가 길어지면 커서 이동에 관한 키들을 잘 알아놓아야 빠르게 편집을 할 수 있을 것이다.

  Hit : 10684     Date : 2012/01/16 12:21



    
sohun5013 와;; 진짜 유용하고 대단하세여!!!
잘 보고 갑니다 ㅎㅎ
2012/01/16  
BLu2Scr22n 으히히 안그래도 요즘 Vi editor 공부중이엇는데 도움이 됫네요
잘보고 갑니다 ^_^
2012/01/27  
me_thm 궁금한게 있는데
!q 로 강제종료 한다음에 계속 할려면 아무키나 누르라고 하는데
그거 무시하고 명령어창으로 뜨게 할려면 무슨 키를 눌러야하나요?
맨날 그거 ㄸㅒ문에 껏다가 다시 켜서 고생이네요
2012/01/28  
sehkmg @me_thm 강제종료는 q! 입니다^^ 햇갈리지 마세요 ㅎㅎ !는 쉘의 명령을 실행시키는 키로 ftz level2에 나옵니다. 2012/01/30  
mem0ries 감사합니다 2012/02/02