엔지니어?엔지니어../Linux
vi editor - 1. 명령어 (기본)
햇살한모금
2011. 12. 16. 00:02
저장 및 종료 |
:w | 저장 | |||
:w file.txt | file.txt 로 저장 | |||
:w >> file.txt | file.txt 에 덧붙여 저장 | |||
:q | vi 종료 | |||
:wq! | 강제 저장 후 종료 | |||
:q! | 저장하지 않고 종료 | |||
ZZ | 저장 후 종료 | |||
:e file.txt | file.txt 파일을 불러옴 | |||
:e | 현재 파일을 불러옴 (?) |
입력 |
a | 커서 위치 다음 칸부터 입력 |
A | 커서 행 맨 마지막에 입력 |
i | 커서 위치에 입력 |
I | 커서 행 맨 앞에 입력 |
o | 커서 아래에 행 추가후 입력 |
O | 커서 위에 행 추가 후 입력 |
s | 커서 위치의 한 글자를 지우고 입력 |
cc | 커서 위치의 한 행을 지우고 입력 |
블록선택 + c | 선택된 텍스트 삭제 후 입력 |
블록선택 + r | 선택된 텍스트 치환 |
이동 |
h | 왼쪽으로 이동 |
k | 위로 이동 | |
j | 아래로 이동 | |
l | 오른쪽으로 이동 |
H | 화면 맨 위로 이동 | |
L | 화면 맨 아래로 이동 | |
M | 화면 중앙으로 이동 | |
w | 다음 단어 첫 글자로 이동 |
W | 공백 이후 단어 첫 글자로 이동 |
b | 이전 단어 첫 글자로 이동 |
B | 공백 이전 단어 첫 글자로 이동 |
e | 단어의 마지막 글자로 이동 |
E | 다음 공백 바로 앞 글자로 이동 |
^ | 현재 행 첫 글자로 이동 |
$ | 현재 행 마지막 글자로 이동 |
+ | 다음 행 첫 글자로 이동 |
- | 이전 행 첫 글자로 이동 |
( | 이전 문장 첫 글자로 이동 |
) | 다음 문장 첫 글자로 이동 |
{ | 이전 문단으로 이동 |
} | 다음 문단으로 이동 |
[n]H | 위에서 n번째 행으로 이동 |
[n]L | 아래서 n번째 행으로 이동 |
ctrl+u | 반 화면 위로 스크롤 |
ctrl+d | 반 화면 아래로 스크롤 |
ctrl+b | 한 화면 위로 스크롤 |
ctrl+f | 한 화면 아래로 스크롤 |
gg | 문서 맨 위로 이동 |
G | 문서 맨 마지막으로 이동 |
[n]G | n번째 행으로 이동 ( :[n]와 동일) |
편집 - 삭제 |
x | 커서 위치 글자 삭제 |
X | 커서 바로 앞 글자 삭제 |
dw | 한 단어 삭제 |
d0 | 커서부터 행 처음까지 삭제 |
D | 커서부터 행 끝까지 삭제 ( d$와 동일) |
dd | 커서 행 전체 삭제 |
dj | 커서 행과 아래 행 삭제 |
dk | 커서 행과 커서 윗 행 삭제 |
편집 - 복사 및 잘라내기 / 붙여넣기 |
< vi 레지스터 > | |||||
※ :reg로 검색되는 17개의 레지스터 : "", "0 ~ "9, "-, "., ":, "%, "#, "/ | |||||
"" | 바로 이전에 복사 또는 지워진 내용 | ||||
"1 ~"9 | 복사 또는 지워진 내용이 순차적으로 들어감 ("1->"9 FIFO 형식) | ||||
". | 마지막에 타이핑한 내용 저장 | ||||
"% | 현재 파일명 | ||||
"/ | 가장 최근 검색한 문자열 | ||||
:reg | 레지스터 상태 확인 | ||||
"[n]p | n번 레지스터의 내용 붙여넣기 | ||||
※ 네임 레지스터 | |||||
a-z 까지 26개 네임 레지스터가 있음 | |||||
"a3yy | 3행을 복사하여 a 레지스터에 저장 | ||||
"ap | a레지스터의 내용을 붙여넣음 |
yw | 단어 복사 |
[n]yw | n개 단어 복사 |
yy | 한 행 복사 |
[n]yy | n개 line 복사 |
p | 붙여넣기 |
[n]p | n번 붙여넣기 |
dw | 단어 잘라내기 |
dd | 행 잘라내기 |
편집 - 블록 지정 |
~ | 대소문자 전환 |
d | 삭제 |
y | 복사 |
d | 삭제 |
c | 치환 |
> | 라인 앞에 탭 삽입 |
< | 라인 앞에 탭 제거 |
: | 선택된 영역에 대해 명령 |
J | 행을 합침 |
U | 대문자로 바꿈 |
u | 소문자로 바꿈 |
undo/redo |
u | 되돌리기 | ctrl+r | 되돌리기 |
탐색 |
/[검색할 문자] | 커서 아래 방향으로 검색 | ?[검색할 문자] | 커서 위 방향으로 검색 |
n | 다음 문자 찾기 | (/, ? 에 따라 방향 다름) | ||||
N | 커서 이전 방향으로 다음 문자 찾기 |
치환 |
:[범위]/[매칭 문자열]/[치환 문자열]/[행 범위] | |||
범위 | % | 문서 전체 | |
[n1],[n2] | n1번째 라인부터 n4번째 라인 | ||
-[n],[+n] | 위로 1행, 아래로 3행 범위 내 | ||
행범위 | g | 한 행 전체 | |
c | 사용자 확인 후 치환 | ||
:g/[패턴]/[매칭 문자열]/[치환 문자열]/[행 범위] |
패턴이 있는 행의 [매칭 문자열]을 치환 |
ex) | ||||
:%s/old/new/g | 문서 내 old라는 문자열을 모두 new로 바꿈 | |||
:g/pattern/s/old/new/g | pattern이 있는 모든 행의 old를 new로 교체 | |||
:g/pattern/s//new/g | :%s/old/new/g와 동일 |