vi modes
1. command mode
1) vi editor 의 기본 모드
2) command 를 이용하여 text를
a. delete
b. change
c. copy
d. move text
e. cursor 위치 변경
f. text strings 검색
g. exit the vi editor
2. edit mode
1) file에 text를 입력할 수 있다.
2) edit mode로 변경하는 방법
a. i or I (insert)
b. o or O (open)
c. a or A (append)
3. last line mode (command mode)
1) 고급 편집 명령어를 사용하여
a. text strings 검색
b. text strings 치환
c. exit the vi editor
2) last line mode로 변경하는 방법
a. :
b. / : 아래쪽으로 검색
c. ? : 위쪽으로 검색
* korn shell에서만 가능
4. mode 변경
: / ? <- -> i a o
ex mode command mode edit mode
enter -> <- escape
vi command
1. vi editor 실행
1) command format
a. vi option filename
b. view filename
2. input commands
1) a cursor 다음에 text 추가
2) A 해당 라인의 끝에 text 추가
3) i cursor 전에 text 삽입
4) I 해당 라인의 시작에 text 삽입
5) o cursor 아래에 새로운 라인 추가
6) O cursor 위에 새로운 라인 추가
3. positioning commands
1) h, ←, backspace 왼쪽으로 한 문자 이동
2) j or ↓ 한 라인 아래로 이동
3) k or ↑ 한 라인 위로 이동
4) l, ←, spacebar 오른쪽으로 한 문자 이동
5) w 앞으로 한 단어 이동
6) b 뒤로 한 단어 이동
7) e 현재 단어의 끝으로 이동
8) $ 현재 라인의 끝으로 이동
9) 0 (숫자) 현재 라인의 처음으로 이동
10) ^ 현재 라인의 공백을 제외한 처음으로 이동
11) return 다음 라인으로 이동
12) ctrl + f or b 한 페이지 아래로 (f), 위로 (b)
13) ctrl + d or u 반 페이지 아래로 (d), 위로 (u)
14) ctrl + l screen refresh
4. editing commands
잘라내기
1) x cursor가 있는 한 문자 잘라내기 (cut)
2) dw 위치한 곳에서부터 한 단어 잘라내기
3) dd cursor 가 위치한 한 라인 잘라내기
4) D cursor 가 위치한 곳에서부터 라인의 마지막 부분까지 잘라내기
5) :5, 10d 5번째부터 10번째 라인 삭제 (delete)
수정
1) cw cursor가 위치한 곳에 있는 단어 변경 (change)
2) R cursor가 위치한 곳에서부터 해당 라인의 끝까지 overwrite
3) C cursor가 위치한 곳에서부터 해당 라인의 끝까지 변경 (change)
4) s 한 문자 substitues -> edit mode 로 변경
5) r 한 문자 replaces -> command mode 계속 유지
6) J 현재 라인과 아래쪽 라인 join
7) xp cursor가 위치한 문자와 오른쪽에 있는 문자 교체
8) ~ 대소문자 변경
9) u 이전 command undo
10) U 현재 라인의 모든 변경 undo
11) u last-line command에서 이전 command undo
12) :r filename cursor 위치한 곳에 다른 파일 삽입
검색
1) /string 해당 string을 아래로 진행하며 검색
2) ?string 해당 string을 위로 진행하며 검색
3) n string의 다음 위치 검색
4) N string의 이전 위치 검색
5) :%s/old/new/g 전체 file에서 'old'문자를 'new'문자로 교체
5. copy and paste commands
1) yy 한 라인 copy
2) p cursor가 위치한 다음에 paste
3) P cursor가 위치한 이전에 paste
4) :1,3 co 5 1~3 라인 copy하여 5 라인 다음에 paste
5) :4,6 m 8 4~6 라인 8 라인으로 이동
6. save and quit commands
1) :w 변경사항 저장
2) :w new_filename new_filename으로 저장
3) :wq 변경사항 저장하고 종료
4) :x 변경사항 저장하고 종료
5) zz 변경사항 저장하고 종료
6) :q! 변경사항 저장하지 않고 강제 종료
7) :wq! 강제로 변경사항 저장하고 종료
7. 사용자 정의 session commands
1) :set nu 라인 number 보기
2) :set nonu 라인 number 숨기기
3) :set ic 검색 시 대소문자 무시
4) :set noic 검색 시 대소문자 구분
5) :set list tab이나 end-of-line 숨겨진 문자 보이기
6) :set nolist tab이나 end-of-line 숨겨진 문자 숨기기
7) :set showmode 작업모드 보이기
8) :set noshowmode 작업모드 숨기기
9) :set 현재 설정된 변수 보기
10) :set all 현재 설정된 변수 + 모든 변수 보기
8. go commands
9. vi session 설정 파일