VI 시작하기

UNIX&LINUX/AIX 2014. 8. 13. 11:13
728x90
반응형

2000/03/14
Lee, Hee-joon
wideface@sparcs.kaist.ac.kr


VI 시작하기
 
vi filename   :  지정한 파일을 편집
 
vi -R filename   :  읽기 전용으로 열기
 (같은 파일을 한번 더 열면 읽기 전용으로 열림)
 
vi -r    :    되살릴 수 있는 파일 목록을 보여준다.
 
vi -r filename    :   지정한 파일을 되살려서 편집한다.

 

모드변환명령모드
 이동, 삭제, 복사, 탐색 등의 명령을 수행한다.
  
vi 를 처음 실행시켰을때는 명령모드이다.
  
이때 입력되는 모든 키보드 입력은 vi 가 명령으로 해석한다.
  
vi 는 모든 입력에서 대소문자를 구분한다.
  
입력모드로 들어가는 명령에는 a,A,i,I,o,O 가 있다.
  
명령모드에서 : 를 누르면 last-line mode 로 들어간다.
  
last-line 모드에서 ESC 키를 누르면 다시 일반적인 명령모드로 돌아간다.
 
입력모드
 텍스트의 입력이 가능한 상태이다.
 ESC 키를 누르면 명령모드로 빠져나간다.


커서이동 k  h   l   h(왼쪽), j(아래), k(위), l(오른쪽)
     j
 
   
커서의 이동은 화살표 키로도 가능하다.
하지만 이것은 좋지 않은 습관이다.
  
vi 로 작업하는 동안에는 키보드 위에서 문자를 입력하기 위한 부분외에는
 
다른 곳으로 손을 이동시킬 필요가 없기 때문에 빠른 작업이 가능한데
  
커서이동에 화살표 키를 이용하는 것은 이런 장점을 무시하는 것이기
 때문이다.

 

0 현재 커서가 위치한 줄의 처음으로 이동한다.
 
$ 현재 줄의 마지막으로 이동한다.
 
% (), {}, [] 의 괄호문자 사이를 이동한다.
왼쪽 괄호에 커서를 두고
% 를 누르면 이 괄호를 닫는 오르쪽 괄호로 커서가 이동하고,

오른쪽 괄호에서 누르면 왼쪽괄호로 이동한다.
  
C 로 코딩할때 괄호를 제대로 닫았는지 확인하기에 편하다.
 
w,W 다음 단어의 첫 글자로 커서를 이동한다.
W 는 단어 구분을 띄어쓰기로
 하고,
w 는 영어권에서 단어를 구분하는 방식으로 단어를 구분한다.
    
void main(main_arg)라는 문자열을 w, W 로 이동해 보기 바란다.
 
e,E 다음 단어의 끝 글자로 커서를 이동한다.
e 와 E 의 차이는 w,W 의 차이와 같다.
 
b,B 이전 단어의 첫 글자로 커서를 이동한다. 역시 w,W 의 차이와 같다.

 
^u, ^d 반 화면 단위로 위, 아래로 이동하는 명령이다.
up, down 의 의미이다.
 
^b, ^f  한 화면 단위로 위, 아래로 이동하는 명령이다.
 backward, forward 의 의미이다.
 
#gg, #G, :#
 # 에는 숫자를 입력한다. 세가지 모두 지정한 행으로 이동하는 명령이다.
 
gg, G 문서의 첫째줄로 이동, 문서의 끝줄로 이동하는 명령이다.
삽입
 a 현재 커서위치 다음부터 입력
 
A 현재 커서가 위치한 줄의 제일 끝부터 입력
 
i 현재 커서위치부터 입력
 
I 현재 커서가 위치한 줄의 처음부터 입력
 
o 현재 커서위치의 아래에 새로운 줄이 생기면서 입력상태로 된다.
 
O 커서위치의 위에 새로운 줄이 생기면서 입력상태로 된다.


삭제 (잘라내기)
 vi 에서의 삭제는 윈도체제의 응용프로그램에서의 '잘라내기'와 같은 기능이다.


x 커서 위치의 한 문자 삭제
 
X 커서 왼쪽의 한 문자 삭제
 
D 커서위치부터 줄 끝까지 삭제
 
dw 커서가 위치한 한 단어를 삭제
 
dd 커서가 위치한 한 줄을 삭제
 
#dd # 에 입력한 수만큼의 줄을 삭제
 :10d 10번째 줄을 삭제
 
:10,20d 10~20 줄 삭제

복사
yy,Y 한 줄 복사
 
#yy  # 에 입력한 만큼의 줄을 복사

 
p(소문자) 커서의 아랫줄 혹은 커서 뒤에 붙여넣기
 
P 커서의 윗줄 혹은 커서 앞에 붙여넣기
  
붙여넣기 명령으로 '삭제(잘라내기)' 명령으로 삭제한 것을
 붙여넣을 수 있다.
 
:10co20  10번째 줄을 복사, 20번째 줄 밑에 삽입
 
:10,20co30 10~20 줄을 복사, 30번째 줄 밑에 삽입
 
:10m20  10번째 줄을 잘라내어 20번째 줄 밑으로 이동

탐색
 
/문자열  아래쪽으로 문자열 찾기
 
/  아래쪽으로 이전에 찾았던 문자열 찾기
 
?문자열  위쪽으로 문자열 찾기
 
?  위쪽으로 이전에 찾았던 문자열 찾기
 
n  / 혹은 ? 명령을 같은 방향으로 다시 찾기
 
N  / 혹은 ? 명령을 반대 방향으로 다시 찾기

치환
 
:s/from/to/ 현재 커서가 위치한 줄에서 from 이라는 문자열을
 to 라는 문자열로 바꿈
 
:1,10s/from/to/g 1~10 줄 까지 바꾸기

범위 지정하기
 
복사, 삭제, 치환 명령 등에서는 적용범위를 줄 수 있는데 이때
 범위를 나타내기 위한 특수한 문자들이 있다.

 
$  문서의 끝 줄
 
. 커서가 위치하는 줄
 
% 문서 전체
 1,10 1~10 줄

 ex) 
:.,$s/abc/cba/
 이런 명령은 현재 커서가 위치한 줄로부터 문서끝까지 abc 라는 문자열을

cba 로 바꾸라는 명령이다.
 
 
v(소문자) 블럭지정. 아래아한글에서 F3 으로 지정하는 블럭과 같다.
 
^v 블럭지정. 아래아한글에서 F4 로 지정하는 블럭과 같다.
 
V(대문자) 줄단위로 블럭을 지정한다.

 
블럭지정을 한 후 복사, 삭제, 치환 명령을 내릴 수 있다.

바꾸기(고치기)
 
J 커서가 위치한 줄과 그 아랫줄을 한 줄로 만든다.
 
r 커서가 위치한 한 문자를 다른 문자로 바꾼다.
    
abc -> aec 로 바꾸려면,
 'b' 위에 커서를 두고 re 라고 누르면된다.
 
R 커서가 위치한 부분부터 입력하는대로 겹쳐써진다.
   
워드프로세서의 '수정'상태가 되는것이라 생각하면된다.
 
s 커서가 위치한 한 문자는 겹쳐써지고, 그 뒤로 입력되는 문자들은
삽입된다.
 
C 'D' 명령으로 지우고 입력상태로 변하는 것이라고 생각하면 된다.
 
cw 커서가 위치한 한 단어가 지워지고 삽입상태로 들어간다.
 
S,cc 커서가 위치한 줄이 지워지고 삽입상태로 들어간다.
 
~ 커서가 위치한 곳의 대소문자가 바뀐다.

기타
 
u 마지막 작업을 취소한다.
   
계속해서 u 를 누르게되면 이전에 했던 작업들을 계속 거슬러
올라간다.
 
. 마지막 작업을 반복한다.
 
<<,>> 커서가 위치한 줄을 왼쪽, 오른쪽으로 이동시킨다.
   
이때 몇 칸을 이동시킬것인지에 대한 설정이 set sw 이다.

파일관련 명령
 
:r filename 파일을 읽어와서 현재 커서가 위치한 줄 아래에 삽입한다.
 
:10r filename  명령은 10째줄 아래에 파일 내용을 삽입한다.
 
:w [filename] 파일명을 주지 않으면 현재 편집중인 파일에 저장하고
 파일명을 주면 그 파일에 저장한다.
 
:wq  작업중인 파일에 저장하고 vi 를 종료한다.
 
:q  작업중인 파일을 저장하지 않고 vi 를 종료한다.
   
파일을 편집했다면 vi 를 종료할 수 없다.
 
:q!  파일을 편집한 것을 저장하지 않은채로 vi 를 종료한다.
 
:x,ZZ 파일을 편집했다면 :wq 와 같은 역할을 하고,
편집하지 않았다면 :q 와 같다.
 
:e [filename]
 작업중인 파일을 닫고 다른 파일을 연다.
 파일을 편집했다면 다른 파일을 열수 없다.
 
:e! [filename]
 작업중인 파일을 편집했더라도 저장하지 않은채로 닫고,
다른 파일을 연다.
 
:f, ^G 편집중인 파일의 정보를 화면 아랫줄에 표시해준다.

환경설정
 
:set 현재 설정된 환경변수들을 출력해준다.
 
:set all 모든 환경변수들을 출력해준다.
 
:set nu(number) 줄번호를 보여준다. 해제는 :set nonu
 
:set ai(autoindent) 자동들여쓰기. 들여쓰기를 하고 엔터로 줄을 바꿨을때 들여쓴 것을 유지해준다.
   
해제는 :set noai
 
:set cindent C 코드에 맞춘 자동 들여쓰기.
   
해제는 :set nocindent
 
:set ts(tapstop)=8 tap 키로 건너뛰는 칸 수를 8로 설정.
 
:set sw(shiftwidth)=8
 줄 밀어내기 칸 수를 8로 설정.

 
:set 명령으로 설정한 환경변수들은 vi 를 종료한 후 다시 실행시키면
기본값으로 돌아가버린다.
자신만의 설정을 항상 유지하려면 홈디렉토리에
.vimrc 라는 파일을 만들어둔다.
 
.vimrc 는 vim 의 환경설정 파일이다.

[출처] VI 시작하기|작성자 하늘이

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,