1. vi의 세가지 모드

명령, 입력, ex(실행)모드(: 콜론 후 입력하는 명령어)

2. vi는 기존 파일을 보호하기 위해 swp파일을 생성한다.

3. 입력
a : 커서 위치 다음 칸부터 입력
i : 커서의 위치에 입력
o : 커서의 다음 행에 입력
s : 커서 위치의 한 글자를 지우고 입력

4. 이동
명령모드일 경우 : h, j, k, l
단어단위의 이동 : w, b
같은 행에서 처음과 마지막으로 이동 : ^, $
문장(마침표로 구분)의 이동 : ( , )
문단(공백행으로 구분) 단위의 이동 : { , }

gg : 문서의 맨 처음
G : 문서의 마지막
(nG : n번째 줄로 이동) == (:[n])
M : 현재 커서를 화면 중앙으로 이동

5. 편집
x : 현재 커서 위치의 글자 삭제
dw : 한 단어를 삭제
dd : 한 행을 삭제
(각 명령어 앞에 숫자를 붙이면 그 횟수만큼 반복)

[복사&붙이기]
yw : 현재 커서 위치의 한 단어를 복사
yy : 현재 행을 복사(앞에 숫자입력시 입력한 행만큼 복사)
p : 붙여넣기

(각 명령어 앞에 숫자를 붙이면 그 횟수만큼 반복)

[잘라내기]
vi는 총 17개의 레지스터를 가지고 있음
:reg - 레지스터 내용 확인
u : 되돌리기
. : 이전에 했던 작업을 반복

[블록지정]
v+j, ctrl+v : 블록지정
블록지정 후 명령어들
d : 삭제
y : 복사
> : 행앞에 탭 삽입
< : 행앞에 탭 제거

6. 되돌리기&되살리기
u : 되돌리기
ctrl+r : 되살리기

7. 문자열 탐색
/문자열 (순방향)
?문자열 (역방향)
n : 다음 매칭 문자
N : 이전 매칭 문자

8. 문자열 치환
:%s/old/new/g - 문서에 있는 모든 old를 new로 바꿈
(:범위/매칭문자열/치환문자열/행범위)

:%s/old/new/gc - c를 두게 되면 매칭되는 문자열에 대해 치환할 것인지 사용자에게 물어봄


[출처] http://lolmzkim.egloos.com/432152

 

+ Recent posts