모든 Unix에 포함되어 있는 편집기가 ex이고, 이 ex를 Visual 모드로 동작 시킨것이 VI(vee-eye라고 발음)이. 다음은 vi에서 사용되는 명령어 목록이다. 너무 많다는 생각이 들지만 몇몇 가지 규칙만 숙지하면 쉽게 사용할 수 있다. vi 명령어는 대소문자를 구분한다. vi 명령어는 i(insert:삽입), d(delect:삭제), c(change:변경), y(Yank:복사)의 기본 명령어와 숫자, 이동명령을 조합해서 사용한다.

      

이동명령
글자 h ,j ,k ,l ←↓↑→
 
문장 w, W, b, B단어 단위로 앞, 뒤로 이동 소문자는 구두점도 하나의 단어로 인식하며, 대문자는 구두 점을 무시한다.
e, E단어의 끝
), (다음, 이전 문장의 시작
}, {다음, 이전 구의 시작
]], [[다음, 이전 절의 시작
 
0, $현재 행의 처음, 마지막 위치
^현재행의 첫 문자(공백은 무시)
+, -다음, 이전 행의 첫 문자
n|현재행의 n번째 열
H화면의 첫 행
M화면의 중간 행
L화면의 마지막 행
nH화면 첫행에서 아래로 n번째 행
nL화면 마지막 행에서 위로 n번째 행
 
화면 CTRL-F, CTRL-B한화면 앞, 뒤로
CTRL-D, CTRL-U반화면 아래, 위로
CTRL-E, CTRL-Y화면 전체를 한행 위, 아래로
z[RETURN]깜박이가 있는 행을 화면 첫행으로
z.깜박이가 있는 행을 가운데 행으로
z-깜박이가 있는 행을 가운데 행으로
 
검색 /pattern앞 방향으로 패턴을 검색
?pattern뒷 방향으로 패턴을 검색
n, N동일, 반대 방향으로 마직막 검색을 반복
/, ?앞, 뒤로 이전 검색을 반복
fx현재 행에서 글자 x를 앞방향으로 검색
Fx현재 행에서 글자 x를 뒷방향으로 검색
tx현재 행에서 글자 x를 앞방향으로 검색한후, 글자 x 전 글자로 이동
Tx현재 행에서 글자 x를 뒷방향으로 검색한후, 글자 x 뒷 글자로 이동
;이전 현재 행 검색을 반복
'이전 현재 행 검색을 반대 방향으로 반복
 
행 번호 CTRL-G현재의 행 번호를 출력
nGn 번째 행으로 이동
G파일의 마지막 행으로 이동
``G 명령 전의 마지막 위치로 이동(두개의 작은 역 따옴표)
:nn 번째 행으로 이동
편집명령
삽입 i, a깜박이 앞, 뒤에 문장 삽입
I, A행의 시작, 끝에 문장 삽입
o, O깜빡이 아래, 윗 줄에 새로운 행 편집
R글자 덥어쓰기
 
변경 r한글자 변경
~대 소문자 변경(다른 명령, 숫자와 결합할 수 없음)
cw한 단어 변경
cw한 단어 변경
cc현재 행 변경
C깜박이 위치에서 행 끝까지 변경
s한 글자를 삭제하고 문장으로 대치
S현재 행을 삭제하고 문장으로 대치
 
삭제, 이동 x한글자 삭제
X깜박이 앞의 한글자 삭제
dw, de한 단어 삭제(단어 다음의 공백 포함), 한 단어만 삭제
dd현재행 삭제
D깜박이 위치에서 행 끝까지 삭제
p, P깜박이 아래, 윗 줄에 삭제한 문장 붙이기
"np삭제 버퍼로 부터 n 번째 행을 깜박이 아래줄에 붙이기(마지막 9개의 삭제행에 대해)
 
복사 yw한단어 복사
yy현재행 복사
"ayy현재행을 a라는 버퍼에 복사
p, P깜박이 아래, 윗 줄에 복사된 문장을 붙임
"aP버퍼 a의 문장을 깜박이 윗줄(p, 아래 줄)에 붙임
 
ex 편집명령 :d행 삭제
:m행 이동
:co행 복사
:.,$d현재 행에서 파일 끝까지 삭제
:30, 60m현재행 다음 줄에 30행부터 60행까지를 이동
.,/pattern/co$현재행 부터 pattern을 포함하는 항까지를 파일 끝으로 복사
명령행 옵션
명령행 vi filefile를 vi 편집기로 호출
vi file1 file2파일들을 연속적으로 vi 편집기로 호출
view file파일을 읽기 모드로 vi 편집기로 호출
vi -R file파일을 읽기 모드로 vi 편집기로 호출
vi -r file 시스템이 크래쉬된 후, 파일과 최근 편집 사항을 복구
vi + file마지막 행으로 파일 열기
vi +n filen 번째 행으로 파일 열기
vi +/pattern filepattern으로 파일 열기
ex file파일을 ex 편집기로 열기
종료명령
종료 명령 ZZ저장하고 빠저나오기
:x저장하고 빠저나오기
:wq저장하고 빠저나오기
:w저장하기
:w!저장하기(겹처쓰기 방지)
:30,60w newfile30번째 행에서 60번째 행까지를 newfile로 저장하기
:30,60w >> file30번째 행에서 60번째 행까지를 file에 덧붙이기
:w %.newfile이라는 파일을 file.new로 저장하기
:q종료하기
:q!종료하기(겹처쓰기 방지)
:Qvi를 종료하고, ex 호출하기
:e file2vi를 종료하지 않고 file2 편집하기
:n다음 파일 편집하기
:e!현재 편집하고 있는 파일(변경사항을 저장하지 않은 원본)을 다시 부르기
:e#이전 파일 편집하기
:preUnix 시스템에 파일보존 신청하기. Unix 프롬프트에서 vi -r file을 입력하면 이전에 변경한 사항을 복구할 수 있다.
#이전 파일명
기타명령
vi 명령 .마지막 명령 반복
u, U마지막 명령, 행에대한 명령 취소
J두 행 합치기
CTRL-L화면 다시 그리기
CTRL-R취소 명령 취소(Redo)
 
ex 명령 :vi로 부터 ex 호출
:viex로 부터 vi 호출
:sh쉘 호출
^D쉘에서 vi로 돌아가기
:! commandUnix 명령어 실행
:r newfilenewfile을 현재 파일로 읽음
:r! commandUnix 명령어의 출력을 현재파일로 읽음
 
표시 mx현재의 위치를 x로 표시(숫자는 안됨)
`xx로 깜박이 이동
``이전 표시나 이동 후 문장으로 되돌아가기
'x표시 x를 포함하는 행의 선두로 이동
''이전 표시를 포함하는 행의 선두로 이동
 
단축 :map x sequence키 x를 편집명령어 집합으로 정의
:unmap xx에대한 정의 삭제
:ab abbr phrasephrase의 약자를 abbr로 한다. abbr이 삽입모드에서 입력되면 완전한 단어나 구로 확장된다.
:unab abbr약어를 삭제한다.
 
사용자화 :set option옵션을 사용
:set option=value옵션에 value를 할당
:set nooption옵션 사용안함
:set사용자에의해 설정된 옵션 보이기
:set all기본 옵션과 사용자가 설정한 모든 옵션의 목록 보이기
:set option?설정된 옵션값 보이기
주의:.exrc 파일내에서는 ex 명령의 시작을 나타내는 콜론(:)을 생략해야 한다.

vi 명령어 ,vi 사용법 을 알아봤다. 꼭 숙지하기 바란다. 몇개의 블로그를 찾아봤지만 이게 최고로 정리가 잘 되어 있다. ^^


Posted by sangheum