rand(life)

vi 명령어 요약 본문

컴퓨터/리눅스

vi 명령어 요약

flogsta 2007. 3. 30. 19:11

vi 명령어 요약

 1.시작
 
vi file
 vi를 시작하여 지정한 파일 편집
 
vi -R file
 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
 
view file
 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
 
 

2.종료
 
:wq
 데이터를 저장하고 종료
 
:q!
 데이터를 저장하지 않고 종료
 
 

3. 시스템이 다운된 후에 되살리기
 
vi -r
 되살릴 수 있는 모든 파일 이름 보여주기
 
vi -r file
 vi를 시작하여 지정한 파일 되살리기
 
 

4. 디스플레이 제어하기
 
^L
 현재 화면을 다시 디스플레이하기
 
:set number
 내부 줄 번호 디스플레이
 
:set nonumber
 배부 줄 번호 디스플레이 않기
 
 

5. 마지막으로 지운 것 복사하기
 
p
 마지막으로 지워진 것을 커서의 뒤/아래에 삽입
 
P
 마지막으로 지워진 것을 커서의 앞/위에 삽입
 
xp
 두 문자를 바꿈
 
deep
 두 단어를 바꿈
 
ddp
 두 줄을 바꿈
 
 

6. 패턴 검색
 
/rexp
 지정된 정규 표현식에 대해 앞으로 이동
 
/
 이전의 패턴에 대해 앞으로 검색을 반복
 
?rexp
 지정된 정규 표현식에 대해 뒤로 이동
 
?
 이전의 패턴에 대해 뒤로 검색을 반복
 
n
 /나 ?명령에 대해 같은 방향으로 반복
 
N
 /나 ?명령에 대해 반대 방향으로 반복
 
 

7. 약어의 사용
 
:ab short long
 short를 long에 대한 약어로 변경
 
:ab
 현재 약어 목록을 표시
 
:una short
 약어 short를 표시
 
 

8. 줄 길이의 조정
 
r<Return>
 문자를 뉴라인으로 변경
 
J
 줄의 결합
 
:set wm=n
 오른쪽으로 n문자 위치에서 자동적으로 줄 나눔
 
 

9. 커서 이동
 
h<Left>
 커서를 한 칸 왼쪽으로 이동
 
j<Down>
 커서를 한 줄 아래로 이동
 
k<Up>
 커서를 한 줄 위로 이동
 
l<Right>
 커서를 한 칸 오른쪽으로 이동
 
<Backspace>
 커서를 한 칸 왼쪽으로 이동
 
<Space>
 커서를 한 칸 오른쪽으로 이동
 
-
 커서를 이전 줄의 처음으로 이동
 
+
 커서를 다음 줄의 처음으로 이동
 
<Return>
 커서를 다음 줄의 처음으로 이동
 
0
 커서를 현재 줄의 맨 앞으로 이동
 
$
 커서를 현재 줄의 맨 끝으로 이동
 
^
 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동
 
w
 커서를 다음 단어의 첫 글자로 이동
 
e
 커서를 다음 단어의 끝 글자로 이동
 
b
 커서를 이전 단어의 첫 글자로 이동
 
W
 w와 같음(문장 부호 무시)
 
E
 e와 같음(문장 부호 무시)
 
B
 b와 같음(문장 부호 무시)
 
(
 다음 문장의 처음으로 이동
 
)
 이전 문장의 처음으로 이동
 
{
 다음 문단의 처음으로 이동
 
}
 이전 문단의 처음으로 이동
 
H
 커서를 화면 맨 위로 이동
 
M
 커서를 중간으로 이동
 
L
 커서를 맨 아래로 이동
 
 

10. 편집 버퍼를 통한 이동
 
^F
 한 화면 아래로 이동
 
^B
 한 화면 위로 이동
 
n^F
 n화면 아래로 이동
 
n^B
 n화면 위로 이동
 
^D
 반 화면 아래로 이동
 
^U
 반 화면 위로 이동
 
n^D
 n줄만큼 아래로 이동
 
n^U
 n줄만큼 위로 이동
 
 

11. 셸 명령 실행
 
:!command
 vi를 중단하고 지정한 셸 명령을 실행
 
:!!
 vi를 중단하고 이전의 셸 명령을 실행
 
:sh
 vi를 중단하고 셸을 실행
 
:!csh
 vi를 중단하고 새로운 C-셸을 실행
 
 

12. 패턴에 의한 치환
 
:s/pattern/replace/
 현재 줄의 치환
 
:lines/pattern/replace/
 지정한 줄의 치환
 
:line,lines/pattern/replace/
 지정한 범위의 치환
 
:%s/pattern/replace/
 모든 줄의 치환
 
1,$s/aaaaa/bbbbb/g 모든줄의 치환
 

13. 데이터 읽기
 
:liner file
 file의 내용을 지정한 줄 다음에 삽입
 
:r file
 file의 내용을 현재의 줄 다음에 삽입
 
:liner !command
 command의 결과를 지정한 줄 다음에 삽입
 
:r !command
 command의 결과를 현재의 줄 다음에 삽입
 
:r !look pattern
 지정한 pattern으로 시작된 단어 삽입
 
 14. 정규 표현식을 사용하기 위한 특수 기호
 
.
 뉴라인을 제외한 모든 단일 문자와 대응
 
*
 영 또는 그 이상의 선행 문자와 대응
 
^
 줄의 시작과 대응
 
$
 줄의 끝과 대응
 
\<
 단어의 시작과 대응
 
\>
 단어의 끝과 대응
 
[ ]
 묶여진 문자중의 하나와 대응
 
[^ ]
 묶여진 문자를 제외한 아무것하고나 대응
 
\
 이어지는 기호를 문자 그대로 해석
 
 

15. 줄 번호
 
nG
 줄번호 n으로 건너뛰기
 
1G
 편집 버퍼의 첫 줄로 건너뛰기
 
G
 편집 버퍼의 마지막 줄로 건너뛰기
 
:map g lG
 g가 lG와 같도록 매크로 정의
 
 

16. 삽입
set noautoindent set nocindent
 
i
 입력 모드로 전환, 커서 위치 앞에서 삽입
 
a
 입력 모드로 전환, 커서 위치 뒤에서 삽입
 
I
 입력 모드로 전환, 현재 줄의 앞에 삽입
 
A
 입력 모드로 전환, 현재 줄의 끝에 삽입
 
o
 입력 모드로 전환, 현재 줄의 아래에 전개
 
O
 입력 모드로 전환, 현재 줄의 위에 전개
 
 

17. 편집하고 있는 파일을 바꾸기
 
:e file
 지정한 파일의 편집
 
:e! file
 지정한 파일의 편집, 자동 점검의 생략
 
 

18. 내용 고치기
 
r
 단지 한 글자만 변경(입력 모드로 바뀌지 않음)
 
R
 입력하는 대로 겹쳐 써서 변경
 
s
 삽입에 의해 한 단어의 변경
 
C
 커서의 위치로부터 줄 끝까지 삽입에 의한 변경
 
cc
 전체 줄을 삽입에 의한 변경
 
S
 전체 줄을 삽입에 의한 변경
 
cmove
 커서부터 move까지 삽입에 의해 변경
 
~
 대,소문자 바꾸기
 


 

19. 고치기의 취소 또는 반복
 
u
 편집 버퍼를 수정했던 마지막 명령을 취소
 
U
 현재 줄을 저장
 
.
 편집 버퍼를 수정했던 마지막 명령 반복
 
 

20. 문자 삭제
 
x
 커서가 있는 문자 삭제
 
X
 커서의 왼쪽 문자 삭제
 
D
 커서부터 줄의 끝까지 삭제
 
dd
 현재 줄의 전체 삭제
 
dmove
 커서부터 move까지 삭제
 
dG
 커서부터 편집 버퍼의 끝까지 삭제
 
d1G
 커서부터 편집 버퍼의 맨 앞까지 삭제
 
:lined
 지정한 줄의 삭제
 
:line, lined
 지정한 범위의 삭제
 
 

21. 여러 줄의 복사와 이동
 
:linecotarget
 지정한 줄을 복사하여 target 줄 밑에 삽입
 
:line, linecotarget
 지정한 범위를 복사하여 target 줄 밑에 삽입
 
:linemtarget
 지정한 줄로 이동하여 target 줄 밑에 삽입
 
:line, linemtarget
 지정한 범위로 이동하여target 줄 밑에 삽입
 
 

22. 데이터를 처리하기 위한 셸 명령의 사용
 
n!!command
 n번 줄에서 command의 실행
 
!move command
 커서부터 move까지 command 실행
 
!move fmt
 커서부터 move까지 줄들을 형식 맞추기
 
 23. 데이터 저장하기
 
:w
 원래의 파일로 데이터를 저장
 
:w file
 지정한 파일로 데이터를 저장
 
:w>> file
 지정한 파일에 데이터를 추가