본문 바로가기

IT/Info

[Info] VI 편집기 사용법

 

VI편집기 사용하기

VI 편집기는 emacs와 더불어 유닉스에서 사용하는 표준편집기입니다.
리눅스 서버에 ssh 로 접속을 한 이후에 vi 명령어가 사용이 가능 합니다.
이미 존재하는 파일을 수정 할때는 vi 파일명 하시면 됩니다. 신규 파일을 만들고자 할때도 vi
신규화일명 하시면 새로운 파일이 생성 됩니다.

Vi 의 특징은 입력모드와 명령모드가 있습니다.
일반적으로 화면에 입력한 글이 실제 입력이 되는 상태를 입력 모드라고 합니다.
이때 ESC 키를 입력을 하게 되면 명령모드로 변경이 되면서 각종 명령을 할 수 있습니다.
모든 명령어는 대소문자를 구분합니다.




입력명령

    a 커서 위치의 다음 칸부터부터 끼워넣기
    A 커서가 있는 줄의 끝에서부터 끼워넣기
    i 커서 위치부터 끼워넣기
    I 커서가 있는 줄의 맨 앞에서부터 끼워넣기
    o 커서 바로 아래에 줄을 만들고 끼워넣기
    O 커서 바로 위에 줄을 만들고 끼워넣기

    아래는 실제 vi 편집기에서 입력중일 때 화면캡쳐한 것입니다. 입력모드 일때는 아래에 insert 라고 표시가 됨을 알수 있습니다.


이동명령

    이동명령은 명령모드에서 입력을 해야 합니다.
    즉 입력모드에서 ESC 키를 입력하여 명령모드로 전환후 사용하시면 됩니다.

    h 한칸 왼쪽으로 이동
    j 한줄 아래로 이동
    w 다음 단어의 첫 글자로 이동
    b 이전 단어의 첫 글자로 이동
    e 단어의 마지막 글자로 이동
    ^ 그 줄의 첫 글자로 이동
    0 그 줄의 처음으로 이동
    + 다음 줄의 첫 글자로 이동
    ( 이전 문장의 첫 글자로 이동
    { 이전 문단으로 이동
    l 한칸 오른쪽으로 이동
    k 한줄 위로 이동
    W 다음 단어의 첫 글자로 이동
    B 이전 단어의 첫 글자로 이동
    E 단어의 마지막 글자로 이동
    $ 그 줄의 마지막 글자로 이동
    <CR> 다음 줄의 첫 글자로 이동
    - 윗줄의 첫 글자로 이동
    ) 다음 문장의 첫 글자로 이동
    } 다음 문단으로 이동

수정명령

    입력되어 있는 글을 수정할 때 명령모드에서 수정명령을 내리고 수정을 할 때 사용합니다.

    r 커서 위치의 한 글자 교체
    R 커서 위치부터 <ESC>를 누를때까지 다른 글자로 교체
    s, cl 커서 위치의 글자를 한개를 여러 글자로 교체
    ch 커서 바로 앞의 글자를 한개를 여러 글자로 교체
    cw 커서 위치의 한 단어를 교체
    c0 커서 위치부터 줄의 처음까지 교체
    C, c$ 커서 위치부터 줄의 끝까지 교체
    cc 커서가 있는 줄을 교체
    cj 커서가 있는 줄과 그 다음 줄을 교체
    ck 커서가 있는 줄과 그 앞줄을 교체

삭제명령

    글을 한글자, 한단어, 한줄, 전체 삭제등 삭제 할 때 사용하는 명령어 입니다.

    x, dl 커서 위치의 글자 삭제
    X, dh 커서 바로 앞의 글자 삭제
    dw 한 단어를 삭제
    d0 커서 위치부터 줄의 처음까지 삭제
    D, d$ 커서 위치부터 줄의 끝까지 삭제
    dd 커서가 있는 줄을 삭제
    dj 커서가 있는 줄과 그 다음 줄을 삭제
    dk 커서가 있는 줄과 그 앞줄을 삭제
    dG 커서가 있는 줄부터 문서 마지막까지 삭제

복사 및 붙여 넣기 명령

    단어 혹은 줄단위로 복사를 하여 원하는 위치에 붙여 넣을 때 사용하는 명령어 입니다.

    yw 커서 위치부터 단어의 끝까지 복사
    y0 커서 위치부터 줄의 처음까지 복사
    y$ 커서 위치부터 줄의 끝까지 복사
    yy 커서가 있는 줄을 복사
    5yy 커서가 있는 줄부터 5줄을 복사
    yj 커서가 있는 줄과 그 다음 줄을 복사
    yk 커서가 있는 줄과 그 앞줄을 복사
    p 커서의 다음 위치에 붙여넣기
    P 커서가 있는 위치에 붙여넣기

기타 명령

    주로 많이 사용하는 일반 명령어 들입니다.

    u 작업 취소(undo)
    U 그 줄에 행해진 작업 모두 취소
    Ctrl+r 작업 재실행(redo)
    . 조금 전에 했던 명령을 반복
    J 현재 줄과 아래 줄을 연결
    ~ 대문자를 소문자로, 소문자를 대문자로 바꿈
    % 괄호의 반대쪽 짝으로 이동
    Ctrl+l 현재 화면을 지우고 다시 그림
    Ctrl+g 파일에 관한 정보를 표시

화면 이동 명령

    화면 이동 명령은 기존의 h,j,k,l 등으로 한칸씩 움직이기에는 시간이 많이 소요 될 때 한꺼번에 많은 화면 이동이 필요할 때 유용합니다.

    H 커서를 화면의 맨 위로
    M 커서를 화면의 중앙으로
    L 커서를 화면의 맨 아래로
    [n]H 커서를 위에서 [n]번째 줄로
    Ctrl+u 반 화면 위로 스크롤
    Ctrl+d 반 화면 아래로 스크롤
    gg, 1G 문서의 맨 처음 줄로
    [n]G [n]번째 줄로 이동
    z<CR> 현재 줄을 화면의 맨 위로
    z. 현재 줄을 화면의 중앙으로
    z- 현재 줄을 화면의 맨 아래로
    [n]L 커서를 아래에서 [n]번째 줄로
    Ctrl+b 한 화면 위로 스크롤
    Ctrl+f 한 화면 아래로 스크롤
    G 문서의 맨 마지막 줄로

    원하는 줄로 이동이 되었는지 확인 하기 위해서는 옵션중에 number 를 켜면 됩니다.
    :set nu 를 입력하시면 문서 좌측에 줄 번호를 볼수 있습니다.
    해제하시려면 :set nonu 라고 입력하시면 됩니다.



검색 명령

    글의 내용중 원하는 단어를 검색하고자 할 때 사용합니다.

    /[pattern]<CR> 현재 위치에서부터 아래 방향으로 패턴 검색
    ?[pattern]<CR> 현재 위치에서부터 위쪽 방향으로 패턴 검색
    n 검색하던 방향으로 계속 패턴 검색
    N 검색하던 반대 방향으로 계속 패턴 검색


치환(교체) 명령

    어떤 단어를 다른 단어로 변경할 때 사용하는 명령 입니다.

    :s/old/new<CR> 현재 줄의 처음 old를 new로 교체
    :s/old/new/g<CR> 현재 줄의 모든 old를 new로 교체
    :1,20s/old/new/g<CR> 1부터 20번째 줄까지 모든 old를 new로 교체
    :-2,+4s/old/new/g<CR> 커서 2줄 위부터 4줄 아래까지 old를 new로 교체
    :%s/old/new/g<CR> 문서 전체에서 old를 new로 교체
    :%s/old/new/gc<CR> 문서 전체에서 old를 new로 확인하며 교체


파일관련 명령

    파일을 저장하거나, 불러 올 때 사용하는 명령입니다.

    :q<CR> vi를 종료함
    :w<CR> 편집중인 문서를 저장
    :w [file]<CR> 편집중인 문서를 [file]로 저장
    :w >> [file]<CR> 편집중인 문서를 [file]에 덧붙여서 저장
    :e [file]<CR> [file]을 불러옴
    :e#<CR> 이전에 편집하던 파일을 불러옴
    :e%<CR> 현재 파일을 다시 불러옴, 즉 저장하지 않은 작업 취소
    :r [file]<CR> [file]을 커서위치에 끼워넣기

    파일에 쓰기 권한이 없을 때 저장을 하고자 할 때에
    'readonly' option is set (use ! to override) 라는 메시지가 출력이 되면서 저장이 안되는 경우가 있습니다. 이때는 강제 옵션인 ! 를 추가로 붙여 주면 됩니다.

     

- 출처 : HOSTWAY

- URL : http://www.hostway.co.kr/doc/manual/linux/linux_3.htm#c