본문 바로가기

OS/리눅스

 VI 편집기 명령어

1. 문자열 블럭 잡아 복사 & 붙여넣기

ctrl + v로 블록잡고 y로 복사 후 p로 붙여넣기

2. vi편집기에서 해당 문자열 찾기 및 바꾸기(^M이거 바꿀 때 유용)
명령 모드에서 원하는 문자열을 찾기 위해서는 "/" 를 누릅니다. 그러면 vi에서 화면의 맨 마지막에 "/"가 보입니다.
이때 자신이 찾으려는 문자열을 입력한후 엔터를 치면 파일의 맨 처음 부터 문자열을 찾게 됩니다.
 
문자열을 찾은후 "n"을 누르면 순차적으로 찾으려는 문자열을 매칭해 가며 찿을 수 있습니다.
역방향으로 찾기위해서는 "N"을 누르면 역방향으로 찾으려는 문자열을 매칭하여 찾을 수 있습니다.
 
 자 이제 원하는 문자열을 찾고  찿은 문자열을 바꾸고 하는 작업을 해보도록 하겠습니다. 
마찬가지로 명령 모드에서 ":"을 입력하면 vi에서 화면의 맨 마지막에 ":"이 보입니다.
이제 아래와 같이 사용을 하면 문자열을 바꾸는 작업을 수행 할 수 있습니다.
 
:s/old/new<엔터> 현재 줄의 처음 old를 new로 교체 
:s/old/new/g<엔터> 현재 줄의 모든 old를 new로 교체 
:%s/old/new/g<엔터> 문서 전체에서 old를 new로 교체 
문저 전체 에서 위에서 예로든 "^M" 을 찾고 그 문자열을 없애는 예제를 해보도록 하겠습니다.
:%s/<Ctrl+v><Ctrl+M>//g<엔터>
 문서 전체에서 "^M" 를 없앨 수 있습니다.
 
3. vi 모든 명령문
VI 에디터 전체 명령어

# 시작/종료 및 기타

:set number    또는 :set nu    행에 번호 부여
:set nonumber 또는 :set nonu    행에 부여된 번호 제거
:ZZ 또는 :wq    저장하고 vi 에디터 종료
:w [filename]    주어진 파일 이름으로 저장
:w! [filename]    주어진 파일 이름으로 저장/덮어쓰기 후 종료
:w!    저장후 편집종료
:q    저장하지 않고 vi 에디터 종료
:q!    저장하지 않고 vi 에디터 강제종료
:e    vi 에디터 종료하지 않고 다른 파일 편집
:e!    편집한 내용 저장하지 않고 최종 저장된 상태로 파일 열기

# 입력 편집 명령어

i    문자 앞에서부터 입력
a    현재 문자 뒤에서부터 입력
I    현재 라인 첫머리에서부터 입력
A    현재 라인 맨뒤에서부터 입력
o    현재라인 아래에 입력
O    행의 위에 입력
r    겹쳐쓰기(커서위치 1문자 변환)
R    현재문자 이후부터 겹쳐쓰기
s    커서가 있는 단어를 지우고 입력하기
ch    커서 바로 앞의 한글자를 여러글자로 수정하기
S    커서가 있는 행을 지우고 입력하기
cw    커서 위치의 한 단어를 수정하기
co    커서 위치부터 줄의 처음까지 수정하기
c    커서 위치부터 줄의 끝까지 수정하기
cc    커서가 있는 줄을 수정하기
cj    커서가 있는 줄과 그 다음 줄을 수정하기
ck    커서가 있는 줄과 그 앞줄을 수정하기



# 삭제 명령어

dw    한 단어 삭제
dd    한 라인 삭제
[number]dd    커서있는 위치에서 숫자만큼  라인 삭제
dj    커서가 있는 줄과 그 다음 줄을 삭제
dk    커서가 있는 줄과 그 앞줄을 삭제
do    커서 위치부터 줄의 처음까지 삭제
x    커서의치의 글자 삭제
D    한줄삭제
d$    커서 위치부터 줄의 끝까지 삭제
X    커서 바로 앞의 글자 삭제

# 치환 명령어

cw    한 단어 바꾸기(단어의 첫머리에 커서 위치해야함)

# 복사 명령어

y    문자 복사
yy    한라인 복사
yw    커서 위치부터 단어의 끝까지 복사하기
yj    커서가 있는 줄과 그 다음줄을 복사하기
yo    커서 위치부터 줄의 처음까지 복사하기
yk    커서가 있는 줄과 그 앞줄을 복사하기
y$    커서 위치부터 줄의 끝까지 복사하기
p    현재 줄 다음에 버퍼의 내용을 붙임
P    현재 줄 앞에 버퍼의 내용을 붙임



# 명령어 취소/반복

esc key  입력화면에서 빠져나옴옴
u 또는 :u    되돌리
U    그줄에 행해진 작업 모두 취소하기
.    조금전에 했던 명령 반복하기

# 이동 명령어

:[number]  숫자의 행으로 이동
:0    문서의 맨앞으로 이동
:$    문서의 맨뒤로 이동
l    오른쪽으로 이동
h    왼쪽으로 이동
j    아래로 이동
k    위로 이동
B    특수문자,기호제외(한단어 뒤로이동)
b    한단어 뒤로 이동
w    한단어 앞으로 이동
W    특수문자, 기호제외(한단어 앞으로 이동)
enter    다음줄의 첫글자로 이동
e    단어의 마지막 글자로 이동
o    라인의 시작으로 이동
E    단어의 마지막 글자로 이동하기
$    라인의 끝으로 이동
shift키와 함께 사용
gg    파일의 첫 행으로 이동
G    파일의 마지막 행으로 이동
^    라인의 첫 번째 단어로 이동
shift키와 함께 사용
+    다음 라인의 처음으로 이동
H    화면의 맨위로 이동
-    이전 라인의 처음으로 이동
M    파일의 중간으로 이동
[ctrl]+F    한 화면 앞으로 이동
L    화면의 끝으로 이동
[ctrl]+D    한 화면의 반만큼 앞으로 이동
/[text]    단어검색
/[filename]    파일검색
[ctrl]+B    한 화면의 뒤로 이동
[ctrl]+U    한 화면의 반만큼 뒤로 이동