반응형
vi 에디터 사용법
Command Line | Description |
vi file | vi를 시작하여 지정한 파일 편집 |
vi -r file | 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집 |
view file | 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집 |
vi -r | 되살릴 수 있는 모든 파일 이름 보여주기 |
vi -r file | vi를 시작하여 지정한 파일 되살리기 |
Edit | Description |
i | 입력 모드로 전환, 커서 위치 앞에서 삽입 |
a | 입력 모드로 전환, 커서 위치 뒤에서 삽입 |
I | 입력 모드로 전환, 현재 줄의 앞에 삽입 |
A | 입력 모드로 전환, 현재 줄의 끝에 삽입 |
o | 입력 모드로 전환, 현재 줄의 아래에 전개 |
O | 입력 모드로 전환, 현재 줄의 위에 전개 |
:e file | 지정한 파일의 편집 |
:e! file | 지정한 파일의 편집, 자동 점검의 생략 |
r | 단지 한 글자만 변경(입력 모드로 바뀌지 않음) |
R | 입력하는 대로 겹쳐 써서 변경 |
s | 삽입에 의해 한 단어의 변경 |
C | 커서의 위치로부터 줄 끝까지 삽입에 의한 변경 |
cc | 전체 줄을 삽입에 의한 변경 |
S | 전체 줄을 삽입에 의한 변경 |
cmove | 커서부터 move까지 삽입에 의해 변경 |
~ | 대,소문자 바꾸기 |
u | 편집 버퍼를 수정했던 마지막 명령을 취소 |
U | 현재 줄을 저장 |
. | 편집 버퍼를 수정했던 마지막 명령 반복 |
x | 커서가 있는 문자 삭제 |
X | 커서의 왼쪽 문자 삭제 |
D | 커서부터 줄의 끝까지 삭제 |
dd | 현재 줄의 전체 삭제 |
dmove | 커서부터 move까지 삭제 |
dG | 커서부터 편집 버퍼의 끝까지 삭제 |
d1G | 커서부터 편집 버퍼의 맨 앞까지 삭제 |
:<line>d | 지정한 줄의 삭제 |
:<line>,<line>d | 지정한 범위의 삭제 |
:<line>co<target> | 지정한 줄을 복사하여 target 줄 밑에 삽입 |
:<line>, <line>co<target> | 지정한 범위를 복사하여 target 줄 밑에 삽입 |
:<line>m<target> | 지정한 줄로 이동하여 target 줄 밑에 삽입 |
:<line>, <line>m<target> | 지정한 범위로 이동하여target 줄 밑에 삽입 |
<n>!!command | n번 줄에서 command의 실행 |
!move command | 커서부터 move까지 command 실행 |
!move fmt | 커서부터 move까지 줄들을 형식 맞추기 |
:w | 원래의 파일로 데이터를 저장 |
:w file | 지정한 파일로 데이터를 저장 |
:w>> file | 지정한 파일에 데이터를 추가 |
:wq | 데이터를 저장하고 종료 |
:q! | 데이터를 저장하지 않고 종료 |
:set number | 내부 줄 번호 디스플레이 |
:set nonumber | 내부 줄 번호 디스플레이 않기 |
p | 마지막으로 지워진 것을 커서의 뒤/아래에 삽입 |
P | 마지막으로 지워진 것을 커서의 앞/위에 삽입 |
xp | 두 문자를 바꿈 |
deep | 두 단어를 바꿈 |
ddp | 두 줄을 바꿈 |
/rexp | 지정된 정규 표현식에 대해 앞으로 이동 |
/ | 이전의 패턴에 대해 앞으로 검색을 반복 |
?rexp | 지정된 정규 표현식에 대해 뒤로 이동 |
? | 이전의 패턴에 대해 뒤로 검색을 반복 |
n | /나 ?명령에 대해 같은 방향으로 반복 |
N | /나 ?명령에 대해 반대 방향으로 반복 |
:ab short long | short를 long에 대한 약어로 변경 |
:ab | 현재 약어 목록을 표시 |
:una short | 약어 short를 표시 |
r<Return> | 문자를 뉴라인으로 변경 |
J | 아래 line을 현재 line과 합치기 |
:set wm=n | 오른쪽으로 n문자 위치에서 자동적으로 줄 나눔 |
h or <Left key> | 커서를 한 칸 왼쪽으로 이동 |
j or <Down key> | 커서를 한 줄 아래로 이동 |
k or <Up key> | 커서를 한 줄 위로 이동 |
l or <Right key> | 커서를 한 칸 오른쪽으로 이동 |
<Backspace> | 커서를 한 칸 왼쪽으로 이동 |
<Space> | 커서를 한 칸 오른쪽으로 이동 |
- | 커서를 이전 줄의 처음으로 이동 |
+ | 커서를 다음 줄의 처음으로 이동 |
<Return> | 커서를 다음 줄의 처음으로 이동 |
0 | 커서를 현재 줄의 맨 앞으로 이동 |
$ | 커서를 현재 줄의 맨 끝으로 이동 |
^ | 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동 |
w | 커서를 다음 단어의 첫 글자로 이동 |
e | 커서를 다음 단어의 끝 글자로 이동 |
b | 커서를 이전 단어의 첫 글자로 이동 |
W | w와 같음(문장 부호 무시) |
E | e와 같음(문장 부호 무시) |
B | b와 같음(문장 부호 무시) |
( | 다음 문장의 처음으로 이동 |
) | 이전 문장의 처음으로 이동 |
{ | 다음 문단의 처음으로 이동 |
} | 이전 문단의 처음으로 이동 |
H | 커서를 화면 맨 위로 이동 |
M | 커서를 중간으로 이동 |
L | 커서를 맨 아래로 이동 |
^f | 한 화면 아래로 이동 |
^b | 화면 위로 이동 |
^d | 반 화면 아래로 이동 |
^u | 반 화면 위로 이동 |
n^d | n줄만큼 아래로 이동 |
n^u | n줄만큼 위로 이동 |
:!command | vi를 중단하고 지정한 셸 명령을 실행 |
:!! | vi를 중단하고 이전의 셸 명령을 실행 |
:sh | vi를 중단하고 셸을 실행 |
:!csh | vi를 중단하고 새로운 C-셸을 실행 |
:s/<pattern>/<replace>/ | 현재 줄의 치환 |
:<line>s/<pattern>/<replace>/ | 지정한 줄의 치환 |
:<line>,<line>s/<pattern>/<replace> | 정한 범위의 치환 |
:%s/<pattern>/<replace>/ | 모든 줄의 치환 |
:<line>r file | file의 내용을 지정한 줄 다음에 삽입 |
:r file | file의 내용을 현재의 줄 다음에 삽입 |
:<line>r !command | command의 결과를 지정한 줄 다음에 삽입 |
:r !command | command의 결과를 현재의 줄 다음에 삽입 |
:r !look pattern | 지정한 pattern으로 시작된 단어 삽입 |
. | 뉴라인을 제외한 모든 단일 문자와 대응 |
* | 영 또는 그 이상의 선행 문자와 대응 |
^ | 줄의 시작과 대응 |
$ | 줄의 끝과 대응 |
\< | 단어의 시작과 대응 |
\> | 단어의 끝과 대응 |
[ ] | 묶여진 문자중의 하나와 대응 |
[^ ] | 묶여진 문자를 제외한 아무것하고나 대응 |
\ | 이어지는 기호를 문자 그대로 해석 |
<n>G | 줄번호 n으로 건너뛰기 |
1G | 편집 버퍼의 첫 줄로 건너뛰기 |
G | 편집 버퍼의 마지막 줄로 건너뛰기 |
:map g lG | g가 lG와 같도록 매크로 정의 |
반응형