ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • vi 에디터
    Technique/LPIC 2019. 5. 14. 14:17
    반응형

    vi 에디터는 Linux나 UNIX에 표준적으로 사용되는 데이터이다. Linux에서는 vi의 기능을 확장한 vim( VI Improved)를 vi 에디터로서 채용하고 있다.

    기본

    vi 에디터의 특징은 커맨드 모드, 입력 모드라는 2가지의 동작 모드를 바꿔가면서 사용하는 점이다 vi를 기동한 시점에는 커맨드 모드이다. 커맨드 모드에서는 키보드로부터 입력은 vi 커맨드로 해석된다. 초심자는 복잡하다고 생각할 수 있지만, 되도록 키보드로부터 손을 떼지 않고 동작을 제어할 수 있기 때문에 편리하다.

    vi를 기동하기 위해서는 파일명을 지정한 vi 커맨드를 실행한다. 파일명을 지정하지 않을 경우 비어있는 새로운 파일이 열린다. -R 옵션을 지정하면 읽기 전용 모드로 파일을 열 수 있다.

    새로운 텍스트를 입력하기 위해서는 텍스트를 입력하고 싶은 위체에 커서를 이동하고 입력 모드로 바꾸면 된다.

    입력 모드

    커맨드 설명
    i 커서의 앞에 텍스트를 입력한다
    a 커서의 뒤에 텍스트를 입력한다
    I 행두의 최초 문자에 커서를 이동한 뒤 그 바로 뒤에 텍스트를 입력한다.
    A 행 마지막에 커서를 이동시켜 그 직후에 텍스트를 입력한다.
    o 커서가 위치한 행의 한 줄 아래에 빈행을 입력한 뒤 텍스트를 입력한다.
    O 커서가 위치한 행의 한 줄 바로 위에 빈 행을 입력하여 텍스트를 입력한다.

    입력 모드에서 ESC키를 누르면 커맨드 모드로 전환된다. 커맨드 모드에서는 커서 키를 사용하지 않고 커서의 이동 또한 불가능하다. 커서 이동에 자주 사용하는 커맨드는 아래와 같다.

    커맨드 설명
    h 1문자 왼쪽으로 이동한다
    l 1문자 오른쪽으로 이동한다
    k 1문자 위로 이동한다.
    j 1문자 아래로 이동한다
    O 행의 선두로 이동한다
    $ 행의 끝으로 이동한다
    H 화면의 제일 위 행의 맨앞으로 이동한다
    L 화면의 제일 아래 행의 맨 뒤로 이동한다
    gg 파일의 선두행으로 이동한다.
    G 파일의 제일 마지막 행으로 이동한다.
    nG 파일의 n행으로 이동한다
    :n 파일의 n행으로 이동한다.

    이 커맨드의 앞의 수치를 입력하면 그 횟수분 커맨드가 반복한다.

    vi를 종료할 경우 아래와 같은 커맨드가 사용된다.

    커맨드 설명
    :q 파일을 저장하지 않고 종료 ( 편집할 경우 파일을 저장할지 말지 묻는다 )
    :q! 편집중의 내용을 저장하지 않고 종료
    :wq 편집 중의 내용을 저장한 뒤 종료
    ZZ 편집중의 내용을 저장하고 종료
    :w 편집중의 내용으로 파일을 덮는다.
    :e! 마지막에 저장한 내용으로 복귀한다.
    :r 파일명 파일의 내용을 지금 위치한 행 아래에 읽어 들인다.
    :! 커맨드 vi를 종료하지 않고 쉘 커맨드를 실행한다.
    :r! 커맨드 쉘 커맨드의 실행 결과를 투입한다.

    vi 의 편집 커맨드

    커맨드 설명
    x 커서 위치의 문자를 삭제한다 ( delete ) 
    X 커서 위치의 바로 앞 문자를 삭제한다.
    dd 현재 행을 삭제한다.
    dw 커서 위치로 부터 다음의 단어까지 삭제한다.
    yy 현재행을 버퍼에 복사한다.
    p 현재 행의 아래에 버퍼에 저장된 내용을 붙여 넣는다.
    P 현재 행의 위에 버퍼 내용을 붙여 넣는다.
    r 커서의 위치에 1문자를 치환한다.

    vi의 검색 패턴

    커맨드 패턴
    /패턴 커서의 위치로 부터 뒤로 지정된 패턴을 검색한다.
    ?패턴 커서의 위치로 부터 앞으로 지정된 패턴을 검색한다.
    n 다음 검색
    N 이전 검색
    :noh 검색 결과의 하이라이트를 해제
    :%s/A/B/ 최초로 발견한 문자열 A를 문자열 B로 치환
    :%s/A/B/g 모든 문자열 A 를 B로 치환

    vi의 설정 변경

    커맨드 설명
    :set nu 행 번호를 표시한다.
    :set nonu 행 번호를 표시하지 않는다.
    :set ts=tab 폭 탭의 폭을 수치로 지정한다.
    반응형

    'Technique > LPIC' 카테고리의 다른 글

    권한 설정  (0) 2019.05.14
    기본적인 파일 관리  (0) 2019.05.14
    정규 표현을 사용한 텍스트 검색  (0) 2019.05.09
    텍스트 처리 필터  (0) 2019.05.09
    파이프와 리다이렉트  (0) 2019.05.08

    댓글

Designed by Tistory.