System/OS

[linux] 간단한 vi편집기 사용 명령

by hooni posted Apr 23, 2003
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
환경:
        :set nu                # 라인줄 보기
        :set nonu                 # 라인줄 취소
        :wq(:ZZ)                 # 저장하고 빠져 나오기
        :q!                # 그냥 빠져 나오기
        :syntax off                # 글자 안나올 때 syntax hilighting 기능을 꺼버린다

이동: h, j, k, l
        ^(0)                # 그 줄의 처음으로
        $                # 그 줄의 끝으로
        G([[)                # 그 파일의 끝으로 이동
        1G(]])                # 그 파일의 첫줄로 이동
        w(W)                # 우측으로 한단어(빈칸까지) 이동하고 단어의 앞에 위치 word
        b(B)                # 좌측으로 한단어(빈칸까지) 이동하고 단어의 앞에 위치 back
        e(E)                # 우측으로 한단어(빈칸까지) 이동하고 단어의 끝에 위치 end
        H                # 한 화면의 처음으로 이동 high
        M                # 한 화면의 중간으로 이동 middle
        L                # 한 화면의 끝으로 이동 low
        ctrl+g                # 정보 보기(파일이름, 커서의 줄넘버, 총 줄)
        ctrl+f                # 아래로 한화면 이동 forward
        ctrl+b                # 위로 한화면 이동 backward
        ctrl+d                # 아래로 반화면 이동 down
        ctrl+u                # 위로 반화면 이동 up
        6j                # 아래로 6칸 이동
        6k                # 위로 6칸 이동

입력모드:
        a(A)                # 현재 커서의 문자뒤에서(그줄뒤에서) 입력모드 append
        i(I)                # 현재 커서의 문자앞에서(그줄앞에서) 입력모드 insert
        o(O)                # 현재 커서의 다음줄에(위줄에) 빈칸을 새로 만들고 입력모드

바꾸기:
        x                # 우측으로 한문자 지우고 명령모드
        X                # 좌측으로 한문자 지우고 명령모드
        s                # 한문자를 지우고 입력모드
        r                # 한문자만 바꿔치기
        R                # 한문자씩 계속 진행하면서 바꿔치기 한다
        C                # 현재커서 위치에서 줄의 끝까지 지우고 입력모드 
        cw                # 우측으로 한단어 지우고 입력모드 change word
        cb                # 좌측으로 한단어 지우고 입력모드 change back
        J                # 현재 줄을 다음줄과 한줄로 연결

복사, 붙여넣기(p), 잘라내기:
        dG                # 현재 커서가 있는 줄부터 끝줄까지 잘라내기
        d1G                # 현재 커서가 있는 줄부터 처음줄까지 잘라내기
        yw                # 우측으로 한단어 복사
        yb                # 좌측으로 한단어 복사하고 단어 앞으로 이동
        y0                # 좌측으로 그줄 처음까지 복사하고 그줄 앞으로 이동
        y$                # 우측으로 그줄 끝까지 복사
        dd(yy)                # 한줄 잘라내기(복사)
        3dd(3yy)        # 세줄 잘라내기(복사)
        6x                # 커서가 있는 문자부터 6개의 문자를 지우라
        6s                # 커서가 있는 위치의 문자부터 6개의 문자를 지운 후 입력모드로 전환
        6r                 # 6개의 문자 각각을 모두 다음에 입력하는 하나의 문자로 바꾼다 
        6r0                # 현재 커서가 있는 위치부터 7개의 문자를 '0' 즉 '0000000'으로 바꾼다

찾기:
        ?'findword'        # 특정단어 찾기
        /'findword'        # 특정단어 찾기
        /'findword'        # 특정단어를 문자로 인식해서 찾기 예 ., .., $, ^ 등
        n                # 뒤로 찾기
        N                # 앞으로 찾기
            :1,$s/^M//g        # ^M(ctrl+v+M) 문자 일괄 지우기
        :%s/oldword/newword/g   # 처음부터 끝까지에서 특정단어를 새단어로 바꾼다

버퍼를 이용한 복사, 붙여넣기, 잘라내기:
        "a2yy                # 현재 커서가 있는 줄을 포함해서 2줄을 버퍼(") a에 넣는다
        "by$                # 현재 커서가 있는 위치부터 줄의 끝까지의 내용을 버퍼(") b에 넣는다
        ap                # a에 저장된 2줄의 내용을 현재 커서가 있는 줄 다음에 붙여 넣는다
        bp                # 버퍼 b에 저장된 내용을 현재 커서가 있는 문자의 뒤에 붙여 넣는다

편집모드 고급활용:
        :!'command'        # 편집모드 상태에서 명령어 실행
        :sh                # 편집모드에서 잠시 쉘로 나가 작업하고 $ exit, ctrl+d로 다시 원래 편집모드로 돌아옴
        :e 'newfile'        # 편집모드에서 새파일을 편집
        :e 'oldfile'        # 편집모드에서 이전파일을 편집
        :e#                # 이전 편집파일 불러오기
        :e!(q!)                # 수정 내용 취소