2009. 3. 31.

VI 편집기 단계별 가이드

[vi 1단계]

1. 명령행에서 vi test.txt 해서 vi를 시작합니다.

2. vi 에는 3가지 모드가 있습니다.한번씩 눌러보세요.이거눌렀다,저것 눌렀다...

(1)명령모드: ESC 키 vi 화면 좌측하단에 아무표시도 없습니다.

(2)입력모드: i 키 vi 화면 좌측하단에 -INSERT- 표시가 나타납니다.

(3)ex모드: Shift + : 키 vi 화면 좌측하단에 : 표시가 나타납니다.
.... (#!!!-ESC 키를 꼭 눌러서 명령모드로 바꾼후 해야합니다.)

3. i 키를 누르고(입력모드) 아무거나 2~3줄 입력합니다.

4. 방향키를 눌러 상하좌우로 커서를 움직여 보세요.

5. ESC 키(명령모드)를 누르고, Shift + : 키(ex모드)를 누르고 wq를 입력해 보세요.

6. 자판의 키를 누르면서 어떤일이 벌어지는지 감이 쬐금 올때까지만 계속해보시기 바랍니다.

##1단계에서 여러분이 알게된 명령어##

명령모드( ESC ) 화살표 방향키 커서 이동하기
입력모드( i )
ex모드( Shift + : ) wq 저장하고 종료하기





[vi 2단계]

1. 명령행에서 vi test.txt 해서 1단계서 만든것을 다시 엽니다.

2. 첫번째 라인에 커서를 위치시킵니다.

3. yy 를 누릅니다.(y를 두번 누르면 됩니다)-복사하기 명령입니다.

4. p 를 누릅니다.(3번이상 눌러봅니다)-복사한것 붙혀넣기 명령입니다.

5. x 를 누릅니다.(3번이상 눌러봅니다)-삭제명령입니다.그것도 한글자씩 삭제하기 명령.

6. u 를 누릅니다.(3번이상 눌러봅니다)-되살리기 명령입니다.

7. ESC 키(명령모드)를 누르고, Shift + : 키(ex모드)를 누르고 wq를 입력합니다.

##2단계에서 여러분이 알게된 명령어##

명령모드( ESC ) 화살표 방향키 커서 이동
yy 복사(한줄)
p 붙히기(커서아래에)
x 삭제(한글자)
u 되살리기
입력모드( i )
ex모드( Shift + : ) wq 저장하고 종료하기






[vi 3단계]

1. 명령행에서 vi test.txt 해서 2단계까지 작업한것을 다시 엽니다.

2. 첫번째 라인에 커서를 위치시킵니다.(화살표 방향키 이용)

3. i를 누르고 windows라고 입력합니다.enter키를 두세번 누른후 다시 windows라고 입력, 3번정도 이과정을 반복합니다.

4. ESC 키를 눌러 명령모드로 바꾼후 커서를 windows라는 문구 맨앞에 위치시킨후 Shift + r 을 누릅니다.(vi 화면 하단에 -REPLACE-라는 문구가 나타날 것입니다.)

5. linuxvi 라고 입력해보세요.(기존 windows가 linuxvi라고 교체되는 것을 볼수 있을 것입니다.)

6. Shift + : 키(ex모드)를 눌러 명령모드로 바꾼후 set nu 라고 입력합니다.(라인에 번호가 매겨집니다.)

7. ESC 키(명령모드)를 누르고, Shift + : 키(ex모드)를 누르고 wq를 입력합니다.

##3단계에서 여러분이 알게된 명령어##

명령모드( ESC ) 화살표 방향키 커서 이동
yy 복사(한줄)
p 붙히기(커서아래에)
x 삭제(한글자)
u 되살리기
R 교체
입력모드( i )
ex모드( Shift + : ) wq 저장하고 종료
set nu 라인에 번호매기기






[vi 4단계]

1. 명령행에서 vi test.txt 해서 3단계까지 작업한것을 다시 엽니다.

2. linuxvi 문구중 v자에 커서를 위치시킵니다.(화살표 방향키 이용)

3. i를 누르고 space bar 를 눌러 linux 와 vi 를 구분합니다.
....다시 ESC 키를 누른후 linux 맨앞에 커서를 위치시킵니다.

4. yw 를 누른후 p 를 두세번 천천히 눌러봅니다. (linux라는 단어가 계속 붙혀넣기 될것입니다.)

5. 자 이제 dw 를 눌러보세요.붙혀넣기 되었던 linux 단어가 삭제 될것입니다.)

6. 아무라인에나 커서를 위치시킵니다.

7. dd를 눌러보세요.(한라인통째로 삭제가 될것입니다.
.. 이것이 바로 한줄 통째 복사 명령어인 .yy의 반대명령어입니다.)

8. ESC 키(명령모드)를 누르고, Shift + : 키(ex모드)를 누르고 q!를 입력하세요.
.. (이명령을 주고 vi 를 빠져 나오면 방금했던 작업들이 저장되지 않습니다.)

##4단계에서 여러분이 알게된 명령어##

명령모드( ESC ) 화살표 방향키 커서 이동
yy 복사(한줄)
yw 복사(한단어)
p 붙히기(커서아래에)
x 삭제(한글자)
dw 삭제(한단어)
dd 삭제(한라인)
u 되살리기
R 교체
입력모드( i )
ex모드( Shift + : ) wq 저장하고 종료
q! 저장않고 종료
set nu 라인에 번호매기기






[vi 5단계]

1. 명령행에서 vi test.txt 해서 4단계까지 작업한것을 다시 엽니다.

2. 첫번째 라인에 커서를 위치시키고 3yy를 누릅니다(3줄이 한꺼번에 복사되어집니다.).

3. p를 3번이상 눌러보세요.

4. 3dd 를 누릅니다.(3줄씩 한꺼번에 지워지는 것을 볼수 있습니다.)

5. / (Slash) 를 누른후 (검색모드입니다.vi 화면하단에 / 표시가 나타납니다.)
.. linux라고 입력한후 enter 를 치세요다.그러면 linux 라는 단어가 있는곳으로 이동합니다.
.. 그다음 linux라는 단어로 이동하고자 할때는 n 을 누르면 됩니다.
.. 다시 역으로 올라가고자 하려면 Shift + n 을 누르면됩니다.
.. (#!!! - / 대신 ? 을 누르면 현재 커서위치부터 위쪽으로 검색해 올갑니다.

6. ESC 키(명령모드)를 누르고, Shift + : 키(ex모드)를 누르고 w test2.tst를 입력합니다.

7. vi 에서 빠져나온후 ls 명령을 내려보면 test2.txt 라는 파일이q 새로생긴것을 알 수있습니다.

##5단계에서 여러분이 알게된 명령어##

명령모드( ESC ) 화살표 방향키 커서 이동
yy 복사(한줄)
nyy 복사(n 라인만큼)
yw 복사(한단어)
p 붙히기(커서아래에)
x 삭제(한글자)
dw 삭제(한단어)
dd 삭제(한라인)
ndd 삭제(n 라인만큼)
u 되살리기
R 교체
/ 검색
입력모드( i )
ex모드( Shift + : ) wq 저장하고 종료
wq test2.txt test2.txt 파일명으로 저장
q! 저장않고 종료
set nu 라인에 번호매기기
1단계부터 5단계 까지 나온 명령들만 여러분이 익히면 vi 명령어의 99%를 배운것입니다.
나머지 1%는 지금까지 분류된 범위에서 조금씩 첨가되는 명령이라 보면 됩니다.
조금더 상황에 맞게 세분화 시킨 명령어들이면서,더 작업을 빨리 할 수 있게끔 하는 명령어들
말입니다.방향키 만으로도 얼마든지 이동이 가능하지만 라인의 끝으로 단번에 이동하거나
한페이지씩 이동하거나 범위를 설정한 만큼만 복사합니다거나..등등..이 있다고 보면 됩니다.
물론 앞으로 지금까지 해온것에 조금씩 하나하나씩 첨가해 나간다면 어느새 vi 에 익숙해진
여러분의 빠른 손놀림을 보게 될것입니다...:)





[vi PowerUP 6단계]

1. 명령행에서 vi powerupvi.txt 해서 세로운 파일을 여세요.

2. 첫번째 라인에 커서를 위치시키고 입력모드( i )에서 linuxvi linuxvi linuxvi linuxvi linuxvi 라고
.. 입력하고 명령모드로 전환(ESC)후 이것을 복사(yy)하여 붙혀넣기(p)해서 5줄을 만듭니다.

3. j,k,h,l 순으로 마구마구 눌러보면서 커서가 어떻게 움직이나 잘 보세요.

4. w를 한번 두번 세번 마구마구 눌러보세요.한단어씩 이동하죠.
.. 자.그럼 이젠 b를 한번 두번 세번 마구마구 눌러보세요.역시 한단어씩 이동하는데 아까와 반대로
.. 움직이죠.지금은 한칸씩 이동이나 단어단위 이동이나 별차이 없이 느껴지실지도 모르지만 라인수
..많아지고 한라인이 무진장 긴문장을 접하고 그 가운데 있는 문자를 수정해야 할경우 큰 도움을 볼것
.. 입니다...:)

5. ex모드로( shift + : ) 전환후 : w linuxvi.txt 라고 명령해 보세요.

6. 명령모드(ESC)로 전환후 커서를 마지막라인으로 이동시킨후 o(알파벳입니다.숫자 0 가 아니고,,)를
.. 누르고, windows windows windows windows windows 라고 입력하고 명령모드로 전환(ESC)후 이것을
.. 복사(yy)하여 붙혀넣기(p)해서 5줄을 만듭니다.

7. ex모드로( shift + : ) 전환후 : w linux-windows.txt 라고 명령해 보세요.

8. :wq 하고 저장후 나와서 ls 해 보시면 powerupvi.txt 이외에 linuxvi.txt 와 linux-windows.txt 파일이
.. 추가로 생긴것을 볼 수 있으실 겁니다.

##powerup 6단계에서 여러분이 알게된 명령어##

명령모드( ESC ) j 아래로 이동
k 위로 이동
h 좌로 이동
l 우로 이동
w 한단어씩 정방향으로 이동
b 한단어씩 역방향으로 이동
입력모드( o ) 현재라인 아래 입력모드
ex모드( Shift + : ) w 새로운 이름으로 파일저장하기








[vi PowerUP 7단계]

1. 명령행에서 vi linux-windows.txt 해서 세로운 파일을 여세요.

2. linuxvi 의 마지막 라인의 끝으로 이동후 J (대문자)를 눌러 봅니다.라인 붙히기 입니다.

3. 이제 0(아라비아 숫자)를 눌러 보세요.라인 맨앞으로 이동 할 것입니다. 이젠 $ 를 눌러보세요.
.. 라인의 맨끝으로 이동 할 것입니다.이두가지 명령역시 w,b와 잘 사용하면 프로그램 코딩시 한라인이
.. 엄청길때 원하는 위치로 방향키나,j.k.h.l 보다 신속히 원하는 위치로 이동시켜 주기때문에 무척 편리하게
.. 쓰실 수 있을 것입니다.

4. 이젠다시 1G를 눌러 보세요.글구 $G를 눌러 보세요.계속 번갈아 가면서 눌러 보세요..
.. 어떤 변화가 있나..이것은 파일의 처음과 끝으로의 이동입니다.
.. 라인수가 작을때나 별쓰임새가 없지만 http.conf와 같이 라인수가 1000라인 이상 넘어가는 파일등에서
.. 간혹 마지막 부분의 설정파일을 보면서 고쳐야 할경우이나 마지막 부분에 뭔가 작업을 해야 할경우..
.. 매우 유용합니다..pageup/pagedown 보다 빠르죠.단칼이니까..-_-''

5. 자 위에서 pageup/pagedown키로 한화면씩 이동한다고 했죠.근데 제가 모시고 있는 심사부님말로는
...진정한 vi의 고수는 옆에서 봤을때 키보드에서 손이 움직이는 모습이 보이지 않아야 한다라는 가르침을
...주시더군요..결국 vi의 고수들은 자판의 오른쪽에 위치하여 손의 움직임이 보이게 하는 방향키나
...pageup/pagedown 키를 만지지 않아야 한다는 것이죠...-_-''..따라서 손의 움직임을 보이게 하는
...pageup/pagedown키 대신 손의 움직임을 최소화 시켜줄 단축키를 알아보죠.다음 단계에서...vi 고수라..

6.ex모드( shift + : )로 전환후 : set nu 해서 라인수가 나오게 합니다.
...그리고 : 5 라고 명령후 커서위치를 확인합니다. : 1 이라고 명령후 커서위치를 확인합니다.
...이 명령어 쓰임은 보통은 http.conf등과 같은 설정화일을 변경후 데몬을 다시구동시킬때 잘못된 구문이
...있을시엔 문제가 있는 라인수가 나오게 됩니다.이때 바로 이명령어를 유용하게 쓰는 겁니다.
...파일을 열고 : 에러라인수를 입력하면 바로 그곳으로 커서가 이동하죠...
...유용하게 활용하시고 벌레 많이 잡으세요.....:)

7.저장하고 종료합니다.

##powerup 7단계에서 여러분이 알게된 명령어##

명령모드( ESC ) j 아래로 이동
k 위로 이동
h 좌로 이동
l 우로 이동
w 한단어씩 정방향으로 이동
b 한단어씩 역방향으로 이동
J 라인 붙히기
0(아라비아 숫자) 라인 맨앞으로 이동
$ 라인 맨끝으로 이동
1G 파일의 첫라인으로 이동
$G 또는 G 파일의 끝라인으로 이동
pageup키 한화면 위로 이동
pagedown키 한화면 아래로 이동
입력모드( o ) 현재라인 아래 입력모드
ex모드( Shift + : ) w 새로운 이름으로 파일저장하기
n(원하는 아라비아 숫자) 이동하고자 하는 라인위치로 이동








[vi PowerUP 8단계]

1. 명령행에서 cp /etc/httpd/conf/httpd.conf ./testsample.txt 라고 명령주시고요,

2. vi testsample.txt 해서 파일을 여시구요.

3. 전단계에서 파일의 라인수가 적어서 제대로 확인못한 $G,1G,pageup키,pagedown키를 눌러보세요.
... 마음껏..원본파일이 아니니까..막지워도 보구요..지금까지 기억나는 명령어 다 써보세요....
... 100라인씩 막 지워도 보고 복사도 해보고 .....마구마구...

4. 이제 다시 마음을 가다듬고.Ctrl + f 해보시고 이번엔 Ctrl + b 해보세요.
... 이두가지가 손의 움직임을 최소화 시켜 줄 pagedown/pageup 를 대치합니다...:)

5. 근데...Ctrl + f 후엔 커서가 화면의 첫라인에 위치하고 Ctrl + b 후엔 화면의 마지막 라인에 위치하죠.
... 이때 H,L,M(모두 대문자입니다.)을 눌러보세요.여러번 눌러보세요..감이 잡히시죠..
... [H]move to Home - top line on screen,[L]move to Last line on screen,
... [M]move to Middle line on screen의 약자인것이....

6. O(대문자 알파벳)를 눌러보세요.입력커서가 현재라인의 위로 이동하는것을 볼수 있습니다.
...아무거나 입력해보고,

7. 다시 명령모드로 변경후 이번엔 a를 눌러보자.i를 눌렀을때와는 틀리게 커서뒤에서 입력모드가
...시작됨을 알수 있을 것입니다.

8.다시 명령모드로 변경후 커서의 위치를 라인의 중간에 위치 시키고, I(알파벳 대문자)를 눌러보고,
...다시 명령모드로 전환후 A(알파벳 대문자)를 눌러 보세요.
...아까와는 반대로 라인의 끝에서 입력모드가 시작됨을 알수 있을 것입니다.
...대부분의 단순 입력모드로 i를 많이 이용하고 추가라인 입력시엔 o를 많이 이용하므로
...적어도 i 와 o를 이용한 입력모드는 꼭 익숙하게 사용하실 수 있도록 익혀두시면 좋습니다.

7.저장하고 종료합니다.

##powerup 8단계에서 여러분이 알게된 명령어##

명령모드( ESC ) j 아래로 이동
k 위로 이동
h 좌로 이동
l 우로 이동
w 한단어씩 정방향으로 이동
b 한단어씩 역방향으로 이동
J 라인 붙히기
0(아라비아 숫자) 라인 맨앞으로 이동
$ 라인 맨끝으로 이동
1G 파일의 첫라인으로 이동
$G 파일의 끝라인으로 이동
pageup키 한화면 위로 이동
pagedown키 한화면 아래로 이동
Ctrl + b 한화면 위로 이동
Ctrl + f 한화면 아래로 이동
H 현재화면 첫라인으로 이동
M 현재화면 중간라인으로 이동
L 현재화면 마지막라인으로 이동
입력모드( o ) 현재라인 아래 입력모드
입력모드( O ) 현재라인 위 입력모드
입력모드( a ) 커서뒤 입력모드
입력모드( I ) 현재라인 맨앞 입력모드
입력모드( A ) 현재라인 맨뒤 입력모드
ex모드( Shift + : ) w 새로운 이름으로 파일저장하기
n(원하는 아라비아 숫자) 이동하고자 하는 라인위치로 이동








[vi PowerUP 9단계]

1. 명령행에서 vi linux-windows.txt 파일을 여세요,

2. 그동안 놀고 있었던 마우스를 이용해 첫번째 라인을 블럭으로 지정후 휠마우스나 3버튼이면
....가운데버튼을 2버튼이면 양쪽마우스버튼을 동시에 눌러보세요.블럭으로 범위가 지정됐던 영역이
....붙혀넣기가 되는것을 보실 수 있습니다.마우스로 원하는 범위지정을 한만큼 복사하기가 진행됨을
....볼수 있을 것입니다.
....그러나 vi 고수는 손의 움직임이 보이면 안되는 법...-.-

3. vi 의 visual 모드가 바로 고수를 위한 해답입니다.

4. 명령모드로 전환후 첫번째 라인 맨앞으로 이동후 v 를 누러보세요.화면 아래쪽 좌측에 -- VISUAL --
... 표시가 나타날 것입니다. 그리고 j.k.h.l을 이용해 커서를 움직여보세요.범위가 지정됨을 알수 있습니다.
... k를 눌러 범위를 linux라는 단어까지만 지정되게 한후 y를 한번누른후 라인맨끝으로 이동후 p를
... 눌러보세요.마우스를 이용해서 범위설정후 copy하는 방법보다 visual 모드를 이용해서 범위설정후
... copy하는 방법엔 어떤 장점이 있을까요....

1)마우스의 상태에 따라 다르겠지만 visual 모드를 이용하면 마우스보다 정교하게 범위설정을 할 수
...있다는 사실입니다.제것도 마우스가 부드럽지 못하다 보니 정확한 범위를 지정하려고 하다보면 속
.. 뒤집어 질때가 많았죠....아마 동감하시는 분이 있으실 겁니다..-_-''

2)마우스를 이용한 copy는 화면에 보여지는 부분만 copy된다는 것입니다.
.. 그러나 visual 모드를 이용하면 그런 제약이 없다는 것이죠.

3)그리고 가장 중요한 차이점!! visual 모드를 이용하면 vi 고수같아 보인다는 것..:)

5. visual 모드로 진입하는 방법에는 3가지가 있습니다.

1) v : 일반 visual 입니다.-- VISUAL -- 이라고 표시됩니다.

2) Ctrl + v : 블럭 visual 입니다. -- VISUAL BLOCK -- 이라고 표시됩니다.

3) Shift + v : 라인 visual 입니다. -- VISUAL LINE -- 이라고 표시됩니다.

6. 다시 첫번째 라인 맨앞으로 이동후 Ctrl + v 를 이용해 블럭 visual 로 진입후 j를 눌러 5번째 라인까지
.. 내려간후 l을 눌러 1~5번째 라인까지 첫번째 linuxvi 만을 범위 설정후 y를 눌러보세요.
.. 5 lines yanked 라는 문구가 화면 하단 좌측에 나타날것 입니다.커서를 라인 맨 마지막으로 이동시킨후 o 를
.. 눌러 라인아래 입력모드로 만든후 엔터키를 두세번 누른후 명령모드로 다시 바꾸고 p를 눌러보세요.
.. 자 이게 바로 visual 모드의 하이라이트입니다.이것을 잘 이용하면 특정범위를 지정해서 특정부위에
.. 정확하게 넣을 수 있죠... 또한 맨앞 라인을 모두 대문자로 바꾸고 싶을때 visual block을 이용해 라인들
.. 맨앞자만 범위를 지정후 Shift + u를 눌러보세요..어떠세요.vi 쓸만하죠..:) 소문자는 범위지정후 u 라고만
.. 함 됩니다.지정된 범위의 삭제는 d 입니다.지정된 범위의 한줄로의붙히기는 shift + j 입니다.

7.저장하고 종료합니다.

##powerup 9단계에서 여러분이 알게된 명령어##

명령모드( ESC ) j 아래로 이동
k 위로 이동
h 좌로 이동
l 우로 이동
w 한단어씩 정방향으로 이동
b 한단어씩 역방향으로 이동
J 라인 붙히기
0(아라비아 숫자) 라인 맨앞으로 이동
$ 라인 맨끝으로 이동
1G 파일의 첫라인으로 이동
$G 파일의 끝라인으로 이동
pageup키 한화면 위로 이동
pagedown키 한화면 아래로 이동
Ctrl + b 한화면 위로 이동
Ctrl + f 한화면 아래로 이동
H 현재화면 첫라인으로 이동
M 현재화면 중간라인으로 이동
L 현재화면 마지막라인으로 이동
입력모드( o ) 현재라인 아래 입력모드
입력모드( O ) 현재라인 위 입력모드
입력모드( a ) 커서뒤 입력모드
입력모드( I ) 현재라인 맨앞 입력모드
입력모드( A ) 현재라인 맨뒤 입력모드
ex모드( Shift + : ) w 새로운 이름으로 파일저장하기
n(원하는 아라비아 숫자) 이동하고자 하는 라인위치로 이동
visual( v )

visual line( Shift + v )

visual block( Ctrl + v )


y 복사
p 붙혀넣기
d 삭제
U 대문자로
u 소문자로
J 한줄의 라인으로 붙히기








[vi PowerUP 10단계]

1. 명령행에서 vi linux-windows.txt 파일을 다시 여세요,

2. ex모드로 전환하세요.그리고 :%s/linuxvi/vimpire/g 라고 명령해 보세요

3. 이번엔 : ! ls 라고 해보시고, : ! vi /etc/httpd/conf/httpd.conf 라고 해보세요.
... 빠져나올때는 : q 입니다.대충 감이 잡히시죠...:)

4. 마지막으로 : h 라고 해보세요.자 이제 여러분이 유심히 봐주셔야 할 내용이 나왔습니다.
.. 지금까지 여러분은 많은 vi에 대한 사용법을 배웠다고 생각하실것입니다.
.. 하지만 저도 아는것은 여러분게 설명드린 이게 전부고 아직도 vi의 기능은 여러분 앞에 보이는
.. 내용만큼 많이 남아 있습니다.이제부터는 여러분의 몫입니다.그리고 여러분의 도움이 필요합니다.
.. 많은 작업상황과 실전에 많이 적용시켜보시고 유용한 vi의 기능들을 조금씩 모아 좀더 많은 리눅스
.. 사용자들이 좀더 빠른 시간안에 프로그램을 코딩하고 효과적인 작업을 함으로써 좀더 유용한
.. 리눅스용 프로그램들을 좀더 빨리 만들고 리눅스를 효율적으로 운영함으로써 우리의 리눅스가
.. 더욱더 가치있는 OS로써 사용되고 발전하는데 여러분의 힘을 모아주세요...:)

5.도움말에서 빠져 나올땐 : q 입니다.

6.영원히 저장하고 종료합니다.이제 준비는 끝났습니다.
.. 이제 vi 고수를 위한 실전 연습만이 남았습니다.
.. 자 이제 실전으로 돌아가서 vi의 내면에 숨겨진 기능들을 마음껏 발휘시켜 사용하시기 바랍니다.

##powerup 10단계에서 여러분이 알게된 명령어##

명령모드( ESC ) j 아래로 이동
k 위로 이동
h 좌로 이동
l 우로 이동
w 한단어씩 정방향으로 이동
b 한단어씩 역방향으로 이동
J 라인 붙히기
0(아라비아 숫자) 라인 맨앞으로 이동
$ 라인 맨끝으로 이동
1G 파일의 첫라인으로 이동
$G 파일의 끝라인으로 이동
pageup키 한화면 위로 이동
pagedown키 한화면 아래로 이동
Ctrl + b 한화면 위로 이동
Ctrl + f 한화면 아래로 이동
H 현재화면 첫라인으로 이동
M 현재화면 중간라인으로 이동
L 현재화면 마지막라인으로 이동
입력모드( o ) 현재라인 아래 입력모드
입력모드( O ) 현재라인 위 입력모드
입력모드( a ) 커서뒤 입력모드
입력모드( I ) 현재라인 맨앞 입력모드
입력모드( A ) 현재라인 맨뒤 입력모드
ex모드( Shift + : ) w 새로운 이름으로 파일저장하기
n(원하는 아라비아 숫자) 이동하고자 하는 라인위치로 이동
%s/a/b/g 파일 전체에서 a 를 b 로 바꿈
! 외부 명령사용(종료는 q)
h 도움말(종료는 q)
visual( v )

visual line( Shift + v )

visual block( Ctrl + v )


y 복사
p 붙혀넣기
d 삭제
U 대문자로
u 소문자로
J 한줄의 라인으로 붙히기






이제 여러분은 vi의 기본적인 메뉴 그룹을 알게되었습니다.
그리고 지금까지 알게된 명령어만으로도 vi를 충분히 활용하고도 남습니다.
하지만 좀더 다양한 명령들이 추가로 더 있습니다.추가로 더 알아서 혼동되실것 같으면
어느정도 vi 명령이 익숙해지신후에 보셔도 무관합니다.하지만 알게되면 언젠가 사용하실
경우가 있을것입니다.시간있으실때 하나하나 연습해보세요.:)



##추가 명령어##

이동 e 단어의 마지막 글자로
E 단어의 마지막 글자로(띄워쓰기 전까지)
^ 커서위치 라인의 첫 글자로(라인 처음위치))
$ 커서위치 라인의 마지막 글자로(라인 끝위치)
enter 커서위치 다음 라인 첫 글자로
+ 커서위치 위 라인 첫 글자로
- 커서위치 아래 라인 첫 글자로
( 이전 문장 첫 글자로
) 다음 문장 첫 글자로
{ 이전 문단으로
} 다음 문단으로
수정 r 커서 위치의 한글자 교체
R 커서 위치부터 를 누를때까지 다른 글자로 교체
s,cl 커서 위치의 글자를 한개를 여러 글자로 교체
ch 커서 바로 앞의 글자를 한개를 여러글자로 교체
cw 커서위치의 한단어를 교체
c0 커서 위치부터 줄의 처음까지 교체
C,c$ 커서 위치부터 줄의 끝까지 교체
cc 커서가 있는 줄을 교체
cj 커서가 있는 줄과 그 다음 줄을 교체
ck 커서가 있는 줄과 그 앞줄을 교체
삭제 x,dl 커서 위치의 글자 삭제
X,dh 커서 바로 앞의 글자 삭제
dw 한 단어를 삭제
d0 커서 위치부터 줄의 처음까지 삭제
D,d$ 커서 위치부터 줄의 끝까지 삭제
dd 커서가 있는 줄을 삭제
dj 커서가 있는 줄과 그 다음 줄을 삭제
dk 커서가 있는줄과 그 앞줄을 삭제
복사 & 붙히기 yw 커서 위치부터 단어끝까지 복사
y0 커서 위치부터 줄의 처음까지 복사
y$ 커서 위치부터 줄의 끝까지 복사
yy 커서가 있는 줄을 복사
yj 커서가 있는 줄과 그 다음줄을 복사
yk 커서가 있는 줄과 그 앞줄을 복사
p 커서의 다음 위치에 붙혀넣기
P 커서가 있는 위치에 붙혀넣기
기타 . 조금전에 했던 명령을 반복(하나만)
~ 대문자는 소문자로,,소문자는 대문자로....
Ctrl + l 현재 화면을 지우고 다시그림...








이제 vi의 하이라이트 mapping에 대해 배워보는 공간입니다.
지금까지 익혀온 명령들과 앞으로 실전에 활용하면서 배우게될 많은 명령어들과 사용법을 앞으로
해볼 mapping과 잘 접목시키면 효율적인 작업에 많은 도움이 될것입니다..



[vi 11단계]-mapping(1)!!!

1. 명령행에서 vi map.txt 해서 파일을 엽니다.

2. 첫번째 라인에 windows notepad라고 입력합니다.

(참고로 vi에서 key는 도움말로 mapping 되어 있으니,를 사용하겠습니다. )

3. ex모드로 전환후 :map :%s/windows/linux/g 까지만 입력후 enter를 치세요.

4. (자 먼저 위의 명령입력은 ex모드에서 map이라는 명령을 입력하고, 한칸띄우고 funtionkey F1을
.. 누르면 이라고 입력됩니다.그리고 다시 한칸띄우고 :%s/windows/linux/g라고 입력하면 됩니다.)

5. 자 이제 명령모드 상태니까 key를 눌러보세요.

6. 좌측하단 입력모드에 아까 입력한 명령이 나옵니다.이제 enter만 치면 명령이 실행됩니다.

7. 자..근데..key누르고 명령확인후 enter치기 구찮죠..자이제 이것을 한번에 해보면..

8.이번엔 에 mapping 해서 역으로 linux를 windows로 바꿔보죠.

9. ex모드로 전환후 :map :%s/linux/windows/g 까지만 입력후 ctrl + v 를 눌러보세요.

( ctrl + v가 명령모드에선 -VISUAL BLOCK-이지만 ex모드에선 funtion key 입력기능을 합니다.)

10. :map :%s/linux/windows/g^ 이렇게 되죠...이제 enter를 눌러보세요.

11. :map :%s/linux/windows/g^M 이렇게 되죠...이제 enter를 쳐서 명령을 입력시키고,

12. 명령모드 상태에서 를 눌러보세요.바로 바뀌죠.

13. 이제 다시 key를 눌러보세요. 명령확인후 enter를 쳐야만 바뀌죠.

14. 자이제 어느정도 mapping 활용용도가 머리에 막 떠오르세요?..^^

15. 참고로 여기선 mapping 할 문자로 등..funtionkey를 사용했는데..
... 이것만 쓸수 있는것이 아니고 vi에서 사용하는 명령과 중복되지 않으면 어떤문자라도 쓸수
... 있습니다.예를 들어 @,&,qq,등등..자신이 얼마든지 만들어 쓸수 있습니다.

##11단계에서 여러분이 알게된 명령어##

ex모드( Shift + : ) map + 원하는 mapping 문자 매크로만듬.
ctrl + v funtion key 입력








[vi 12단계]-mapping(2)!!!

1. 11단계에서 사용한 파일을 그대로 이용합니다.

2. 모든 라인을 지우고 첫번째라인에 notepad 두번째라인에 kldp라고 입력합니다.

(현재가 mapping이 되어있으니...)

3. ex모드로 전환후 :map :%s/notepad/vi/g^M까지만 입력후 enter를 치세요.

4. 다시 ex모드로 전환후 :map :%s/kldp/mapping/g^M까지만 입력후 enter를 치세요.

5. 다시 ex모드로 전환후 :map ^M까지만 입력후 enter를 치세요.

6. 를 차례로 한번씩 눌러보고 u 키를 이용해 다시 2번 상태로 만든후,

7. ex모드로 전환후 :map owow!!^M라고 mapping 시킵니다.

8. 한번 눌러보세요.

9. owow!!의 의미는 첫번째 단어 o는 입력모드(아래라인에 입력명령) wow!!는 입력문자.

10. u 키를 이용해 다시 2번 상태로 만든후,

11. ex모드로 전환후 :map owow!!^[:w mapping.txt^M라고 mapping 시킵니다.

12. 명령모드 상태에서 를 다시 눌러보세요.

13. ^[ 이것은 ex모드에서 ctrl + v 하고서 esc를 누르면 됩니다.
... 즉, ^[은 ESC(명령모드)를 의미합니다.
... 따라서 owow!!^[:w mapping.txt의 의미는 입력모드로가서 wow!!를 입력하고 다시 명령모드로
... 전환후 ex모드를 실행시켜 mapping.txt라는 새로운 파일로 저장한다라는 의미입니다.

14. 이제 :wq명령으로 저장후 빠져나온후
.... 다시 vi map.txt를 열어서 를 눌러보세요.

15. 명령이 안먹죠..vi 실행시 마다 사용하려면.vimrc파일에 저장후 사용하시면 됩니다.

16. mapping을 편집상태에서도 사용하고 싶다면 mapping시 map 뒤에 !를 붙히면 됩니다.

##12단계에서 여러분이 알게된 명령어##

ex모드( Shift + : ) map + 원하는 mapping 문자 매크로만듬.
ctrl + v funtion key 입력
map! + 원하는 mapping 문자 편집모드에서도 실행가능 매크로








[vi 13단계]-marking!!!

1. vi mark.txt를 하나 만들어 시작합니다.

2. 라인맨 앞줄마다 라인번호를 입력합니다.30줄이상으로 만드세요.

3. 10번라인으로 이동후 명령모드 상태서 ma 즉,m 과 a를 순서대로 누릅니다.

4. 20번라인으로 이동후 명령모드 상태서 mb 즉,m 과 b를 순서대로 누릅니다.

5. 30번라인으로 이동후 명령모드 상태서 mc 즉,m 과 c를 순서대로 누릅니다.

6. ` 을 누른후 a를 눌러보세요.

7. ` 을 누른후 b를 눌러보세요.

8. ` 을 누른후 c를 눌러보세요.

9. 이렇게 marking을 코딩시 table의 시작이나 끝,또는 구분하여야 할 영역이나
...참조해야할 부분에 시켜놓고 사용하면 됩니다.

##13단계에서 여러분이 알게된 명령어##

ex모드(Shift + :) map + 원하는 mapping 문자 매크로만듬.
ctrl + v funtion key 입력
map! + 원하는 mapping 문자 편집모드에서도 실행가능 매크로
명령모드(ESC) m + 원하는 marking 문자 marking

댓글 없음: