■ 커서 이동
문자키를 이용한 커서 이동하기
k(위)
h(왼쪽) l(오른쪽)
j(아래)
← = 좌측으로 가기 = h , <del>
↓ = 아래로 가기 = j
↑ = 위로 가기 = k
→ = 우측으로 가기 = l (소문자 엘)
■ 신속하게 이동
w - 오른쪽으로 특수문자 혹은 한단어의 처음으로 이동
b - 왼쪽으로 특수문자 혹은 한단어의 처음으로 이동
W - 오른쪽으로 한단어의 처음으로 이동
B - 왼쪽으로 한단어의 처음으로 이동
■ 한 행 안에서의 이동
0 (숫자 영) - 행의 맨 처음으로 이동
$ - 행의 맨 마지막으로 이동
■ 페이지 이동
G - 문서의 맨 끝 행으로 이동
nG - (예) 3G 하게 되면 그 파일 위에서 3번째 행으로 이동
[CTRL] + f = 한 페이지 아래로 이동
[CTRL] + b = 한페이지 위로 이동
■ 편집(입력) 상태 설명
※ 모든 것은 커서의 위치에서 시작 된다!
i : 현재 커서 앞쪽에 입력
a : 현재 커서 뒤쪽에 입력
A: 현재 라인 마지막에 입력
o : 현재 라인 아래 줄에 입력(영문 소문자 오)
O : 현재 라인 위쪽 줄에 입력(영문 대문자 오)
■ 삭제 명령(명령상태에서 입력하는 것이다.)
※ 모든 것은 커서의 위치에서 시작 된다!
x : 한자 삭제
dw : 한 단어 삭제
dd : 한 줄 삭제
d$ : 현재 커서 부터 마지막까지 삭제
■ 교체 명령
r : 한 글자 교체(r 누르고 새로운 문자 입력)
cw : 한 단어 교체(cw 누르고 새로운 단어 입력후 esc 누르기)
■ 검색 및 치환(/ 나 ? 사용할때 같이 붙여 써야한다.)
※ 모든 것은 커서의 위치에서 시작 된다!
※ ESC 키를 누르면 명령상태로 가는데 이 상태에서 "검색"을 하면 된다.
▶ 전방 검색: /
/검색단어(명령상태에서 / 누르고 검색단어 입력후 엔터)
/ = 커서의 위치에서 아래로 찾는다.
n 을 누르면 다음 단어로 이동된다. 반대로 가려면 N 이다.
▶ 후방 검색: ?
?검색단어(명령상태에서 ? 누르고 검색단어 입력후 엔터)
? = 커서의 위치에서 위로 찾는다.
n 을 누르면 다음 단어로 이동된다. 반대로 가려면 N 이다.
▶ 검색 결과 교체
:s/찾는문자열/치환문자열
- 현재 커서가 놓여 있는 행에서 첫번째로 검색된 특정문자열 바꾸기:1,10s/찾는문자열/치환문자열
- 1행부터 10행사이에 걸쳐 첫번째로 검색된 특정문자열 바꾸기
:%s/찾는문자열/치환문자열
- 모든행에 걸쳐 첫번째로 검색된 특정문자열을 바꾸기
■ 이전 작업 취소
u : undo(u 계속 누르면 계속적으로 이전 작업으로 간다.)
■ 텍스트 복사(Copy) 그리고 붙여넣기(Paste)
yw - 한단어 복사
y$ - 커서부터 행끝까지 복사
yy - 한줄 모두 복사
※ 붙여쓰기(Paste) 할때는 소문자 p 를 누르면 된다.
■ 종료와 저장, 새이름으로 저장
:q - 저장하지 않고 vi 종료하기
:q! - 강제 종료
:w - 현재내용을 저장
:w! - 읽기전용인 파일을 수정후 강제로 저장할때
:wq - 저장하고 종료
:wq! - 읽기전용인 파일을 수정후 강제로 저장하고 종료하기
:w 새파일명 - 새이름으로 저장
■ 파일에 행 번호 붙이기
:set nu [ENTER]
:set nonu [ENTER] = 번호 없애기
■ 특정 행 번호로 이동(아래 - 부분을 빼고 그대로 입력해보고 화면 좌측하단을 보자)
:1[ENTER] - 1번째 행으로 이동
:$[ENTER] - 마지막 행으로 이동
:$=[ENTER] - 현재 문서의 총 줄(행)수
:.=[ENTER] - 현재위치의 행번호
■ 범위 지정
:1,10d - 1번행부터 10번행가지 삭제(d)
:.,$d - 현재부터 마지막 행까지 삭제
:0,$-4d - 파일의 맨처음(0- 가상번호)부터 끝까지 삭제하되 끝에서 4번째 줄까지는 제외
:.-1,.+1y(:.-,.+y)(:-,+y) - 현재 행을 기준으로 아래위 3행을 복사
:0,$y - :%y - 모든 행 복사
■ 일부분 저장
:1,. w part1.txt - 1행부터 현재 행까지 part1.txt 라는 이름으로 저장
:1,. w >>part.txt - 1행부터 현재 행까지를 part.txt 파일에 추가
■ 다른파일 내용 (읽기) 삽입
:r insert.txt - 커서위치 아래에 insert.txt 파일을 추가
■ vi 환경설정
:set number : 행번호 보이게
:set nonumber : 행번호 안보이게
:set autoindent : 들여쓰기 설정
:set noautoindent : 들여쓰기 제거
:set list : 문단,조판부호 보기
:set nolist : 문단,조판부호 안보이게
:set window=30 : 한 화면당 행의 갯수 30개로 지정
:set ignorecase : 검색시 대소문자 구별 제거
:set noignorecase : 검색시 대소문자 구별
:set all : 현재 설정된 vi 모든 설정값 보기
■ 외부 유닉스 명령어 실행
:!명령 (예로 하나 해보자)
:!df -k[ENTER]
:r :ls - 유닉스 명령의 실행 결과 화면을 현재 편집중인 내용에 불러들임
[참고 사항] 숫자와 명령의 조합 예제
10j - 10줄 위로 이동
10x - 10글자 삭제
5dd - 5줄 삭제
10i* esc : * 문자를 10 개 입력