개발 기록/OS & Server

vi 편집기 명령어 - 리눅스/유닉스

JasonM 2023. 5. 18. 22:19
반응형

 
 
사용하는 사람이 아직 많이 있는지는 모르겠지만 예전에 어디선가 받아둔 vi 편집기 명령어 모음
 
 
1.시작

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

 
2.종료

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

 
3. 디스플레이 제어하기

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


4. 마지막으로 지운 것 복사하기

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


5. 패턴 검색

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

 
6. 약어의 사용

:ab short longshort를 long에 대한 약어로 변경
:ab현재 약어 목록을 표시
:una short약어 short를 표시

 
7. 줄 길이의 조정

r문자를 뉴라인으로 변경
J줄의 결합
:set wm=n오른쪽으로 n문자 위치에서 자동적으로 줄 나눔

 
8. 커서 이동

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

 
9. 편집 버퍼를 통한 이동

^F한 화면 아래로 이동
^B한 화면 위로 이동
n^Fn화면 아래로 이동
n^Bn화면 위로 이동
^D반 화면 아래로 이동
^U반 화면 위로 이동
n^Dn줄만큼 아래로 이동
n^Un줄만큼 위로 이동

 
10. 셸 명령 실행

:!commandvi를 중단하고 지정한 셸 명령을 실행
:!!vi를 중단하고 이전의 셸 명령을 실행
:shvi를 중단하고 셸을 실행
:!cshvi를 중단하고 새로운 C-셸을 실행


11. 패턴에 의한 치환

:s/pattern/replace/현재 줄의 치환
:lines/pattern/replace/지정한 줄의 치환
:line,lines/pattern/replace/지정한 범위의 치환
:%s/pattern/replace/모든 줄의 치환


12. 데이터 읽기

:liner filefile의 내용을 지정한 줄 다음에 삽입
:r filefile의 내용을 현재의 줄 다음에 삽입
:liner !commandcommand의 결과를 지정한 줄 다음에 삽입
:r !commandcommand의 결과를 현재의 줄 다음에 삽입
:r !look pattern지정한 pattern으로 시작된 단어 삽입

 
13. 정규 표현식을 사용하기 위한 특수 기호

.뉴라인을 제외한 모든 단일 문자와 대응
*영 또는 그 이상의 선행 문자와 대응
^줄의 시작과 대응
$줄의 끝과 대응
\<단어의 시작과 대응
\>단어의 끝과 대응
[ ]묶여진 문자중의 하나와 대응
[^ ]묶여진 문자를 제외한 아무것하고나 대응
\이어지는 기호를 문자 그대로 해석

 
14. 줄 번호

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

 
15. 삽입

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

 
16. 편집하고 있는 파일을 바꾸기

:e file지정한 파일의 편집
:e! file지정한 파일의 편집, 자동 점검의 생략

 
17. 내용 고치기

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


18. 고치기의 취소 또는 반복

u편집 버퍼를 수정했던 마지막 명령을 취소
U현재 줄을 저장
.편집 버퍼를 수정했던 마지막 명령 반복

 
19. 문자 삭제

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

 
20. 여러 줄의 복사와 이동

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

 
21. 데이터를 처리하기 위한 셸 명령의 사용

n!!commandn번 줄에서 command의 실행
!move command커서부터 move까지 command 실행
!move fmt커서부터 move까지 줄들을 형식 맞추기

 
22. 데이터 저장하기

:w원래의 파일로 데이터를 저장
:w file지정한 파일로 데이터를 저장
:w>> file지정한 파일에 데이터를 추가

 

반응형