vi 기본 커맨드
vi Mode

- Command mode
- Command line mode
- Insert mode
Execution
- Command mode로 진입
vi <파일명> : 해당 파일이 없으면 새로운 빈 파일 생성 (저장하지 않으면 파일이 생성되지 않음)
vi +<line number> <파일명> : 파일 열고 입력한 line number로 이동
vi +/"<검색할 문자열>" <파일명> : 파일을 열고 원하는 문자열이 처음 발생하는 곳으로 이동
vi –r <파일명> : 손상된 파일 회복
view <파일명> : 읽기 전용으로 열기
Termination
ZZ : 변경사항 저장 후 vi 종료
:w : write. 변경사항 저장.
:wq : write & quit. 저장하고 나가기
:x : exit. 저장하고 나가기
:q! : quit. 저장하지 않고 나가기
Command mode
- Insert mode로 진입하기
i : insert. 커서위치 앞에서 입력 시작
I : 해당라인 맨 앞에서 입력 시작
a : append. 커서위치 뒤에서 입력 시작
A : 해당라인 맨 끝에서 입력 시작
o : open. 커서 아래에 줄을 만들고 입력
O : 커서 위에 줄을 만들고 입력
- 커서 이동
l : 오른쪽으로 커서 이동
h : 왼쪽으로 커서 이동
j : 아래로 커서 이동
k : 위로 커서 이동
e : 오른쪽 단어의 끝 부분으로 커서 이동
w : 오른쪽 단어의 앞 부분으로 커서 이동
b : 왼쪽 단어의 앞부분으로 커서 이동
$ : 줄의 끝으로 커서 이동
^ : 줄의 맨 앞으로 커서 이동
H : 화면의 맨 위로 이동
M : 화면의 중간으로 이동
L : 화면의 맨 아래로 이동
^F : 다음 페이지
^D : 다음 페이지의 반
^B : 이전 페이지
^U : 이전 페이지의 반
]] : 다음 함수
[[ 이전 함수
- 수정
x : 문자 하나 지우기
dw : 단어 하나 지우기
dd : 한 줄 지우기 / 5dd: 5줄 지우기
:5,10d : 5~10번째 줄 지우기
yy : 한 줄 복사 / 3yy : 3줄 복사
p : 붙여넣기
r : 문자열 하나 바꾸기
cw : 단어 하나 바꾸기
~ : 대문자로 바꾸기
J : 두 줄을 한 줄로 합치기
u : 되돌리기
. : 다시 실행
Command-line mode
:1,2 co 3 : 1~2번째 줄을 3번째 줄 다음으로 복사
:4,5 m 6 : 4~5번째 줄을 6번째 줄 위로 이동
/<검색할 문자열> : 오른쪽 아래 방향으로 원하는 문자열 검색
?<검색할 문자열> : 왼쪽 위 방향으로 원하는 문자열 검색
n : 문자열의 다음으로 계속 검색
N : 문자열의 이전으로 계속 검색
:1,.s/cnt/count/ : 파일의 첫 번째 줄부터 현재 줄 까지 문자열 cnt를 count로 대체
:1,$s/cnt/count : 파일의 처음부터 끝까지 문자열 cnt를 count로 대체
:.$/cnt/count : 현재 커서 위치부터 끝까지 존재하는 모든 cnt를 count로 대체
:set <option> [=value] : settings
:set nu : line number 표시
:set tabstop=4 : tap size를 4로 설정
default settings
~/.exrc 파일에 원하는 설정에 대한 내용 작성
set nu : line number 표시
set ts=4 : tap size를 4로 설정
set ai : 자동 들여쓰기
set title : 타이틀 바에 현재 편집중인 파일을 표시
set backspace=eol,start,indent : 줄의 끝, 시작, 들여쓰기에서 백스페이시 이전 줄과 연결
set nohls : 이전 검색 결과 하이라이트 해제
syntax on : 파일 종류에 따라 구문 강조