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
: 파일 종류에 따라 구문 강조