(^ : CTRL , 편집모드: 편집모드에서 해당 명령 실행)
1. 들어가기
vi filename |
주어진 파일이름으로 편집을 시작한다. 파일이 존재하지 않으면 새로 만들게 된다. |
vi +15 filename |
파일을 열때 15 번째 줄로 커서를 보낸다. |
vi +/sample filename |
'sample' 단어가 있는 라인으로 커서를 보낸다. |
vi -R filename view filename |
파일을 읽기 전용으로 읽는다. |
vi -r filename |
깨진 파일을 복구한다. |
2. 빠져 나가기
:q :q! :wq! :wq filename |
아직 변경되지 않은 file의 editing 종료 한번 변경이 가해진 filed을 저장하지 않고 종료 편집된 내용을 저장하고 종료 편집된 내용을 filename으로 저장하고 종료 |
3. 편집
i I Ni test ESC |
커서 위치에 입력 커서 위치한 라인의 처음부터 입력 test를 N번 반복 입력 |
a A |
커서 오른쪽에 삽입 커서 위치한 라인의 끝에서부터 입력 |
o O |
커서가 위치한 라인 아래 새 라인 삽입 커서가 위치한 라인 위에 새 라인 삽입 |
x X dw dd dG d1G :5,10 d Ndw 또는 Ndd D 또는 d$ 또는 c$ d) d} |
커서가 있는 문자를 삭제 커서의 앞 문자를 삭제 커서가 있는 단어를 삭제 커서가 있는 라인을 삭제 파일 마지막 부분까지 삭제 파일의 처음부터 커서 위치까지 삭제한다. 5-10번째 줄까지 삭제한다. 커서의 위치에서 N개의 단어/라인을 삭제 커서 위치 이후 그 라인 끝까지 모두 삭제 커서 이후 한 문장 삭제 커서 이후 한 문단 삭제 |
r r Enter R s S xp ~ |
커서위치에서 한 문자를 치환 줄을 분리 커서의 위치에서부터 원하는 만큼의 문자 치환 커서 앞쪽의 문자열을 대체 substitute lines 커서 위치의 문자와 오른쪽 문자의 위치를 바꾼다. 대소문자를 변경 |
cw cc c Ncw 또는 Ncc |
커서 오른쪽의 단어를 변경 커서 위치의 라인을 바꿈 커서 위치에서부터 그 라인의 끝까지 바꿈 커서위치에서 N개의 단어/라인 바꿈 |
u U :u . |
바로 전에 행한 한 번의 명령 취소 현재 행에서 이루어진 모든 명령 취소 이전 마지막줄 명령을 취소 repeat last change |
Nyl yw yy 또는 Y Nyw 또는 Nyy p P :1,2 co 3 :4,5 m 6 |
yank N charaters 커서 위치한 단어를 복사 커서가 위치한 라인을 복사 커서가 위치한 라인부터 N단어/라인까지 복사 커서 다음에 복사한 내용을 붙인다. 커서 이전에 복사한 내용을 붙인다. 1-2번째 줄을 복사하여 3번째 줄 다음에 둔다. 4-5번째 줄을 이동하여 6번째 줄 다음에 둔다 |
J Enter |
현재 라인과 다음 라인을 한 라인으로 결합 현재 커서 위치에서 라인을 분리 (편집상태) |
^L |
뒤섞인 화면을 지운다.(다시 그린다) |
ESC |
편집모드종료 |
4. 이동 (명령모드에서 실행)
h, spacebar j k, backspace l 방향키 |
커서위치에서 한 문자 앞으로 이동 커서위치에서 한 문자 아래로 이동 커서위치에서 한 문자 위로 이동 커서위치에서 한 문자 뒤로 이동 |
^f ^b ^d ^u |
한 페이지 아래로 이동 한 페이지 위로 이동 반 페이지 아래로 이동 반 페이지 위로 이동 |
0 $ w (cf, Nw) b (cf, Nb) W B |
커서위치 라인의 처음으로 이동 커서위치 라인의 끝으로 이동 커서위치에서 한(N) 단어 앞으로 이동 커서위치에서 한(N) 단어 뒤로 이동 커서위치에서 한 공백 구분 단어 앞으로 이동 커서위치에서 한 공백 구분 단어 뒤로 이동 |
G NG 또는 :N 또는 N Enter + Enter |
현재 파일의 제일 마지막 라인으로 이동 N번째 라인으로 이동
다음 라인으로 이동
|
(, ) {,} |
한 문장 단위 앞/뒤 이동 (공백2개이상을 한 문장으로 인식) 한 문단 단위 앞/뒤 이동 |
5. 검색 및 치환
/찾을 문자열 ?찾을 문자열 n N |
커서위치에서 아래로 문자열을 검색 커서위치에서 위로 문자열을 검색 다음 문자열로 이동 이전 문자열로 이동 |
:[s,e]s/old/new :s/old/new/g :1,$ s/old/new :g/search/s//replace/g |
start라인에서 end라인까지 문자열 치환 전체 파일내에서 문자열 치환 1라인에서 마지막 라인까지 치환 검색하여 대체한다. |
6. 기타 명령
:se nu :set number :se nonu :set nonumber :set ic :set noic ^g |
각 라인앞에 일련번호를 표시
각 라인앞에 일련번호를 표시하지 않는다.
검색시 대소문자를 구분하지 않는다. 검색시 대소문자를 구분한다. 현재 라인버호를 표시
|
:ab ttt the |
ttt를 the로 상용구 등록 |
:e filename :r filename :sh :! command :r !command |
filename 불러와 편집 filename을 불러와 커서 위치에 삽입 shell 나들이 shell 명령어 수행 shell 명령어를 vi 화면내에 출력 |
|