1

vi

· 18년 전 · 6339

vi

9.1 미리 알아두어야 할것들
9.1.1 VI 명령어 모드 3 가지
1) ESC 모드
2) 편집모드
3) 콜론모드(ex모드)

9.1.2 VI 명령어의 간단한 문법
(반복횟수)(편집명령)(반복횟수)(커서이동명령)
현재의 위치에서 커서 이동명령의 내용대로 문서의 임의위치로 이동하는 순간, 편집명령어의 내용이 수행된다.

9.1.3 ESC 모드에서 사용되는 몇 가지 기호
G :  화일의 맨끝
^ :  현재줄의 맨앞 (빈칸무시)
0 :  현재줄의 맨앞
$ :  현재줄의 맨뒤
% :  짝을 이루는 기호 확인하기
w :  다음 단어
b :  이전 단어
e :  현재 단어의 끝 글자

9.1.4 여러가지 특수한 기호들
. :  한글자를 대표하는 기호 (dos 의 ? 와 동일)
* :  여러 개의 문자를 동시에 대표하는 기호
^ :  줄의 처음시작.
$ :  줄의 맨끝.
% :  처음 줄부터 끝 줄까지
\ :  특수한 기호들이 가지는 뜻을 없앨 때 사용.
[ ]  :  일정한 제한을 두어 글자를 대표하고자 하는 기호.
[a-z] :  a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z 를 대표
[A-Z] : A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z를 대표
[AB] :  A 또는 B
p[aeiou]t :  pat, pet, pit, pot, put 를 대표
[0-9] :  0,1,2,3,4,5,6,7,8,9 를 대표

9.2 커서 움직이기
9. 2.1 글자 단위 이동
위쪽으로

                    k                   사선을 옆으로 그어 놓은 이유는 보통
                                          초보자들이 h, l 은 잘 구별하는 반면
  왼쪽으로 h       \      l  오른쪽으로     k, j 를 항상 혼동하기 때문이다
             
                    j              항상 h,j \ k,l 로 기억해두면 잊지않게 된다.
              아래쪽으로

9.2.2 줄 단위 이동
^ :   줄의 맨앞으로 (빈칸무시)
0 :   줄의 맨앞으로
$ :   줄의 맨뒤로
% :   짝을 이루는 기호 확인하기
+ :   다음줄의 첫번째 글자로
- :   윗줄의   첫번째 글자로
n| :   현재줄의 n 번째 열로 (n은 임의의 숫자)
H :   화면상에 처음줄로
M :   화면상의 중간줄로
L :   화면상의 마지막줄로
nH :   화면상의 처음줄로부터 n 줄 밑으로
nL :   화면상의 마지막줄로부터 n 줄 위로
G :   맨 마지막줄로 (go)
nG :   n 번째줄로
gg :   맨 마지막줄로
ngg :   n 번째줄로
:n :   n 번째줄로

9.2.3 단어 단위 이동
w :   한단어 오른쪽으로 (word)
b :   한단어 왼쪽으로 (back)
e :   현재 단어의 끝으로 이동 (end)
E :   현재 단어의 끝으로 이동 (구두점 무시 - 영문자에 해당 - ? . !.)
) :   다음 문장의 시작으로
( :   이전 문장의 시작으로
} :   다음 문단의 시작으로
{ :   이전 문단의 시작으로
]] :   다음 섹션의 시작으로
[[ :   이전 섹션의 시작으로

9.2.4 화면단위 이동
Control - F(orward)   한화면   밑으로 이동.
Control - B(ackward)  한화면   위로   이동.
Control - D(own)      반쪽화면 밑으로 이동.
Control - U(pon)      반쪽화면 위로   이동.
Control - E           커서는 현재위치 그대로 화면만 한줄씩 위로   이동
Control - Y           커서는 현재위치 그대로 화면만 한줄씩 아래로 이동
z                     커서의 위치와 함께, 화면상의 맨위로
nz                    n번 라인을 화면상의 맨위로
z.                    커서의 위치와 함께, 화면상의 중간으로
z-                    커서의 위치와 함께, 화면상의 맨아래로

 


Control - G        현재 편집문서의 정보 보여주기
Control - L        화면 재표시 (글자가 깨졌을경우)
Control - R(edraw) 화면 재표시 (글자가 깨졌을경우)

9.3 편집하기
9.3.1  복사, 붙이기, 합치기
y       :   (Yank) 복사하기
            yy 한줄복사
            2yy 두줄복사
            nyy n줄 복사 (n 은 임의의숫자)
            yw 한단어 복사
            y2w 두단어 복사
            y$ 그줄 끝까지 복사
            y0(y^) 그줄 처음까지 복사
            yG 문서의 끝까지 복사
            Y 한줄복사 (yy 와 동일)

마지막 명령어의 반복
.       :   마지막에 수행한 명령어를 반복한다.
           2.  명령어를 2번 반복한다.
p       :   (Put or Paste) 붙이기
           p  아래로(오른쪽으로) 붙이기
           2p 아래로(오른쪽으로) 두번 붙이기
           P  위로(왼쪽으로) 붙이기
           2P 위로(왼쪽으로) 두번 붙이기
J       :   (Join) 두줄 합치기
           J  현재줄을 윗줄에 붙이기 (두줄 합치기)
           3J 세줄합치기

9.3.2 지우기, 복구하기, 바꾸기
d       :   (Delete)  지우기
           dd 한줄지우기

 


           2dd 두줄지우기
           ndd n줄지우기 (n 은 임의의숫자)
           dw 한단어 지우기
           d2w 두단어 지우기
           d$ 그줄 끝까지 지우기
           d0(d^) 그줄 처음까지 지우기
           dG 문서 끝까지 지우기
           D  그줄 끝까지 지우기 (d$ 와 동일)
u       :   (Undo) 복구하기
           u  한번복구하기
           2u 두번복구하기
c       :   (Change) 바꾸기
           cc 한줄바꾸기
           2cc 두줄바꾸기
           ncc 여러줄 바꾸기 (n 은 임의의숫자)
           cw 한단어 바꾸기
           ce 한단어 바꾸기 (공백 제외)
           c2w 두단어 바꾸기
           c$ 그줄 끝까지 바꾸기
           c0(c^) 문서 끝까지 바꾸기
           C  그줄 끝까지 바꾸기 (c$ 와 동일)
r       :   (Replace) 한글자 바꾸기
           r  한글자 바꾸기
          2r  두글자 바꾸기
## r 명령어는 insert 모드로 바뀌지 않는다. ##

R : 바꾸면서 덮어 쓰기
S : 한글자 지우고 insert 모드로 - cl 와 동일 -
S : 한줄지우고 insert 모드로 - cc 와 동일 -
~ : 대문자 <-> 소문자 바꾸기 - 영문자에만 해당 -
## 지우기와 바꾸기의 차이점은 바꾸기 명령어 후에 vi 편집모드로 바뀐다. ##

 

 

9.3.3 block 지정하기
v :  block을 지정한다.
(화면 밑에 -visual-이라고 나오면 커서를 이동해서 block지정한다.)
y :  block을 copy한다.
x :  block을 잘라두기 한다.
p :  copy된 것을 커서가 위치한 다음 column에 붙여쓰기 한다.
yy :  커서가 위치한 라인을 copy한다.

9.4 찾기
/pattern pattern이라는 단어 찾기 - 위에서 아래로
?pattern pattern라는 단어찾기 - 아래에서 위로
/ : 찾기 반복 - 위에서 아래로
n : 찾기 반복 - 위에서 아래로
? : 찾기 반복 - 아래에서 위로
N : 찾기 반복 - 아래에서 위로

fx : 현재 줄에서 x문자 찾기, x는 한 개의 글자
Fx : 현재 줄에서 반대방향으로 x문자 찾기, x는 한 개의 글자
tx : 현재 줄에서 x문자를 찾아서 바로 전에 커서 놓기
Tx : 현재 줄에서 반대방향으로 x문자를 찾아서 바로 후에 커서 놓기

; : 현재 줄에서 한글자 찾기 반복
' : 현재 줄에서 한글자 찾기 반복, 반대방향으로

## 찾기와 편집 명령의 응용 ##
d/simple simple 이라는 단어가 나올 때까지 지우기
d/^scully 줄의 맨 앞에 scully 라는 단어가 나올 때까지 지우기
y/yahoo yahoo라는 단어가 나올 때까지 복사하기

9.5 편집모드 지정하기
i : insert    현재커서위치
10i*      * 문자를 10개 집어넣기

 


25i=-     =- 를 25개 반복하기
I : 현재커서가 위치한 줄의 맨 처음에
a : append    현재커서위치 바로 다음에
A : 현재커서가 위치한 줄의 맨 끝에
o : open      현재커서위치 바로 아래 줄에
O   : Open      현재커서위치 바로 윗 줄에

9.6 위치 기억하기
mx : mark      현재의 커서위치를 x 라는 문자로 기억         
`x : 기억된 x 위치로 이동
`` : 이동하기 전의 위치로 (제자리)
'x : 기억된 x 위치의 맨 앞으로 이동
'' : 이동하기 전 위치의 맨앞으로 이동

9.7 버퍼 이용하기
"xyy : x 라는 이름의 버퍼에 한 줄 복사 하기
"xp : x 라는 이름의 버퍼에 저장된 내용을 붙이기

## 잠시 쉬었다 가기 ##
:=  현재 줄 번호 보여주기
:/pattern/ = pattern이 위치한 줄 번호 보여주기

9.8 ex 명령어 익히기
9.8.1 ex 명령어의 기본형식
:k,l command m
(범위지정) (명령어) (명령이 수행될 위치)

예)
:1,10 co 50  1줄 부터 10줄 까지를 50줄 이후로 복사.
:34,50 d  34줄 부터 50줄 까지 삭제.
:100,150 m 10 100줄 부터 150줄까지를 10줄 이후로 옮김.

 

 

:.,$ d  현재 줄부터 끝까지 지우기
:.,+20 co –4  현재 줄부터 20줄을, 4줄 위에 복사하기
:-,+ t 0  위, 아래로 한 줄(총 3줄)씩을, 문서 맨 위에 복사하기
:/pattern/ d  pattern이 들어있는 줄 지우기
:/pattern/ -nd pattern이 들어있는 줄로부터 n번째 위줄 지우기
:/pattern/ +nd pattern 이 들어있는 줄로부터 n 번째 아래줄 지우기

:/pattern1/,/pattern2/d   pattern1이 있는 줄부터, pattern2가 있는 줄까지 지우기

:.,/pattern/ m 23 현재 줄부터 pattern이 들어있는 줄까지, 23번줄 이후로 옮기기

9.8.2 g 옵션 붙이기
:g/pattern  파일전체에서 마지막으로 pattern이 쓰여진 줄로 가기
:g/pattern/ p  파일전체에서 pattern이 있는 줄 보여주기
:g/pattern/ nu 파일전체에서 patterm이 있는 줄을 번호와 함께 보여주기
:60,124 g/pattern/p   60,124줄 사이에서 pattern이 들어있는 줄 보여주기

9.8.3 저장 및 종료하기
:w   저장하기 (write)
:q    종료하기 (quit)
:wq   저장하고 종료하기
:x   저장하고 종료하기 (:wq 와 동일)
:w!   강제로 저장하기 (read-only로 열었을 경우)
:q!   편집한 내용을 저장하지 않고 종료하기
:w new_file_name 새로운 파일이름으로 저장하기
:w %.new  현재 파일 이름에 .new를 붙여서 새로운 파일로 저장.
:230,$ w file_name 230 줄부터 끝 줄까지 file_name으로 저장하기
:.,600 w file_name 현재 줄부터 600줄까지 file_name으로 저장하기
:1,10 w new_file 1줄부터 10줄까지 new_file로 저장하기
:340,$ w >> new_file 340줄부터 끝 줄까지 new_file에 추가하기

 

 


9.8.4 읽기
:r[ead] filename 현재위치에 filename 읽어 들이기
:r /usr/local/data 현재위치에 /usr/local/data 읽어 들이기

:185 r /usr/local/data 185줄 이후에 /usr/local/data 읽어 들이기
:$ r /usr/local/data 맨 끝줄 이후에 /usr/local/data 읽어 들이기
:0 r /usr/local/data 맨 위줄에 /usr/local/data 읽어 들이기
:/pattern/ r /usr/local/data  pattern이 존재하는 줄에 /usr/local/data 읽어 들이기

9.8.5  다중편집하기
#vi file1 file2 file3

:args 편집중인 파일목록 보여주기
:n[ext] 다음 파일로 넘어가기
:prev[ious] 이전 파일로 돌아가기

## 편집중인 파일이 저장되지 않으면 다음 파일로 넘어갈 수 없다. ##

새로운 화일 편집하기
:e[dit] file_name 새로운 file_name 편집하기.
기존에 편집하던 파일을 저장해야 한다.
        
:e!  현재의 편집중인 내용을 무시하고 가장 최근에 편집한 내용을
다시 편집하기
:new file_name      새로운 window로 파일을 연다.
Ctrl+w+w  window간 이동

9.8.6 g 옵션과 바꾸기
:m,n s/old/new/g
:g/pattern/ s/old/new/g

:1,30 s/his/the/gc 1 줄부터 30 줄까지 his를 the로 바꾸면서 확인하기.

 


:g/BX/ s/Esc/ESC/g BX가 있는 줄만 찾아서 Esc를 ESC로 바꾸기.

:%s/editer/editor/g 처음 줄부터 마지막 줄까지, editer를 editor로 바꾸기

:g/editer/ s//editor/g 위와 동일("s/" 다음에 인자가 없어서 윗 줄과 같은 효과)

9.9 vi 편집기 설정
#vi ~/.exrc
#vi ~/.vimrc

set autoindent :  자동 들여쓰기
set cindent  :  C 언어 형식에 맞춰 들여쓰기
set ruler  :  화면의 오른쪽 아래에 커서의 위치를 표시
set binary  :  이진 파일 편집
syntax on  :  여러 파일의 형식에 맞춰서 해당 문법을 파싱한 다음에
각 토큰이나 아규먼트를 색색으로 구분해 보여준다.
프로그래밍을 한다거나, html을 편집할 때에 편리한 기능
ls의 앨리어스에서 '--color=auto 설정 여부
set background=dark 
fe=korea  :  한글 입력

9.10 vi -r filename

9.11 vi 환경변수 값 설정
set all  :  설정된 값들을 보여준다.
set number  :  line 번호를 보여준다.
set nonumber  :  표시된 line 번호를 제거한다.
set tabstop=4 :  tap의 크기를 4 column으로 한다.

9.12 Homepage 예제
http는 html문서를 클라이언트에게 전달하는 protocol이다.
web server에 html 문서를 만들어 놓고 클라이언트에서 요구할 때 그 문서를 전달한다.

 


클라이언트는 웹 브라우져가 된다.
브라우져의 주소 부분에 http://edu00.net을 입력하면 www.edu00.net 호스트 시스템의 특정 디렉토리 안에 있는 index.html을 보여주게 된다.
먼저 각 계정 사용자들은 다음 위치에 파일을 만든다.
/home/linux00(계정)/public_html
클라이언트가 http://edu00.net/~linux/라고 입력하면 위의 디렉토리 밑에 있는 index.html을 브라우져에서 볼 수 있다.
1) #mkdir /home/linux00/public_html
2) #cd ~/public_html
3) #chmod 711 /home/linux00/public_html
4) #chmod 755 /home/linux00/public_html/index.html
5) #vi index.html
<

[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
18년 전 조회 2,666
18년 전 조회 2,997
18년 전 조회 2,828
18년 전 조회 2,040
18년 전 조회 2,201
18년 전 조회 4,851
18년 전 조회 4,199
18년 전 조회 2,828
18년 전 조회 2,386
18년 전 조회 2,887
18년 전 조회 2,360
18년 전 조회 3,527
18년 전 조회 2,199
18년 전 조회 1,986
18년 전 조회 1,838
18년 전 조회 1,661
18년 전 조회 3,259
18년 전 조회 4,583
18년 전 조회 4,859
18년 전 조회 2,146
18년 전 조회 3,603
18년 전 조회 3,321
18년 전 조회 4,609
18년 전 조회 3,253
18년 전 조회 4,250
18년 전 조회 3,942
18년 전 조회 3,627
18년 전 조회 3,027
18년 전 조회 2,927
18년 전 조회 3,506
18년 전 조회 2,162
18년 전 조회 2,103
18년 전 조회 5,507
18년 전 조회 2,693
18년 전 조회 2,437
18년 전 조회 2,737
18년 전 조회 2,087
18년 전 조회 3,071
18년 전 조회 1만
18년 전 조회 1,930
18년 전 조회 2,842
18년 전 조회 2,875
18년 전 조회 2,132
18년 전 조회 2,976
18년 전 조회 3,975
18년 전 조회 2,938
18년 전 조회 2,317
18년 전 조회 6,038
18년 전 조회 3,666
18년 전 조회 6,340
18년 전 조회 2,433
18년 전 조회 2,360
18년 전 조회 2,376
18년 전 조회 3,327
18년 전 조회 3,192
18년 전 조회 1,979
18년 전 조회 3,714
18년 전 조회 1,628
18년 전 조회 1,368
18년 전 조회 1,391
18년 전 조회 1,546
18년 전 조회 1,637
18년 전 조회 3,419
18년 전 조회 2,268
18년 전 조회 1,720
18년 전 조회 2,117
18년 전 조회 4,617
18년 전 조회 2,343
18년 전 조회 2,988
18년 전 조회 1,976
18년 전 조회 3,474
18년 전 조회 1,846
18년 전 조회 7,659
18년 전 조회 3,313
18년 전 조회 1,289
18년 전 조회 2,319
18년 전 조회 3,531
18년 전 조회 2,378
18년 전 조회 2,149
18년 전 조회 2,771
18년 전 조회 3,729
18년 전 조회 3,498
18년 전 조회 2,581
18년 전 조회 1,933
18년 전 조회 1,961
18년 전 조회 2,530
18년 전 조회 2,005
18년 전 조회 2,886
18년 전 조회 1,684
18년 전 조회 2,230
18년 전 조회 1,696
18년 전 조회 2,156
18년 전 조회 2,379
18년 전 조회 2,311
18년 전 조회 2,269
18년 전 조회 2,195
18년 전 조회 3,500
18년 전 조회 1,689
18년 전 조회 3,456
18년 전 조회 2,034