티스토리 뷰

Study/Language >

VI 명령어 총집합

Jake Yoon 2010. 1. 12. 07:52

-. vi       - vi편집기를 호출한다.
-. vi filename     - 기존에 있는 파일이면 그 파일을 열고 없는 파일이면 새로 만든다.
-. vi + 10filename    - 지정화일의 10번째 행부터 화일열기
-. vi +/"school" filename  - 지정화일내의 school이란 단어가 처음나오는 시점부터 열기
-. vi -r filename    - 손상된 파일을 복구
-. view filename    - 수정없이 읽기전용으로 열기

커서의 이동
-. h    - 왼쪽으로 이동
-. j     - 아래로 이동
-. k    - 위로 이동
-. l    - 오른쪽으로 이동
-. w    - 한단어 오른쪽으로이동
-. b    - 한단어 왼쪽으로 이동
-. Return   - 한행아래로 이동
-. Backspace  - 한문자 왼쪽으로 이동
-. Spacebar  - 한문자 오른쪽으로 이동
-. H    - 화면의 맨위로 이동
-. M    - 화면의 중간으로 이동
-. L    - 화면의 맨 아래로 이동
-. ^F    - 한화면 앞으로 이동
-. ^D    - 반화면 앞으로 이동
-. ^B    - 한화면 뒤로 이동
-. ^U    - 반화면 뒤로 이동

▒ 삽입명령어
-. a   - 커서 오른쪽에 문자삽입
-. A   - 커서 오른쪽, 행의끝에 문자삽입
-. i   - 커서 왼쪽에 문자삽입
-. I   - 커서왼쪽, 행의 처음에 문자삽입
-. o   - 커서 아래에 행 삽입
-. O   - 커서 위에 삽입
-. <Esc>  - 작업완료후 반드시 입력

▒ 텍스트 변경
-. cw    - 단어 변경
-. cc    - 변경
-. C    - 커서 오른쪽의 행 변경
-. s    - 커서가 위치한 문자열 대체
-. r    - 커서 위치 문자를 다른 문자로 대체
-. r-Return  - 행 분리
-. J    - 현재 행과 아래 행 결합
-. xp    - 커서 위치 문자와 오른쪽 문자교환
-. -    - 문자형(대,소문자) 변경
-. u    - 이진 명령 취소
-. U    - 행 변경 사항 취소
-. :u    - 이전의 최종행 취소

▒ 텍스트 삭제
-. x   - 문자삭제
-. dw   - 단어삭제
-. dd   - 행 삭제
-. D   - 커서 오른쪽 행 삭제
-. :5,10 d  - 5-10째 행 삭제

▒ 행번호 설정
- :set nu   - 행번호 표시
- :set nonu  - 행번호 숨기기

행 찾기
-. G    - 파일의 마지막 행으로 가기
-. 12G    - 파일의 12번째 행으로 가기

▒ 텍스트의 복사 및 이동
-. yy    - 행 yank 또는 복사
-. Y    - 행 yank 또는 복사
-. P    - yank 되거나 삭제된 행을 현재 행 아래에 삽입
-. p    - yank되거나 삭제된 행을 현재 행 위에 삽입
-. :1,2 co 3  - 1-2행을 3행 다음으로 복사
-. :4,5 m 6  - 4-5행을 6행 다음으로 이동

▒ 탐색 및 대체
-. /string/         - string탐색
-. ?string?         - string 역 방향 탐색
-. n(N)          - string의 다음(이전) 계속 탐색
-. :g/search-string/s//replace-string/gc  - 각 발생 탐색후 확인하고 대체
-. :s/str/rep/         - 현재 행의 str을 rep로 대체
-. :1,.s/str/rep/        - 1부터 현재 행의 str을 rep로 전부 대체
-. :%s/str/rep/g        - 파일 전체 str을 rep로 전부 대체

▒ 화면정리
^L <Ctrl + L> 불필요한 화면 내용 제거 후 다시 표시
다른 파일을 파일내로 삽입
-. :r filename   - 커서 다음에 파일 삽입
-. :20 r filename  - 파일을 20번째 행 다음에 삽입

▒ 파일의 저장 및 종료
-. :w   - 변경사항 저장
-. :w filename  - 지정한 파일로 저장
-. :wq    - 변경사항 저장후 vi종료
-. ZZ    - 변경사항 저장후 vi종료
-. :q!    - 변경사항을 저장하지 않고 vi종료


-. clear  - 화면의 내용을 깨끗이 지운다.
-. ls   - 현재 디렉토리의 파일목록을 표시한다.
-. cp   - 파일을 복사한다.
-. mv   - 파일의 이름을 변경한다.
-. mv   - 파일을 다른곳으로 옮긴다.
-. rm   - 파일을 삭제한다.
-. cat   - 파일내용을 표시한다.
-. pwd   - 현재 위치의 경로를 표시한다.
-. cd   - 디렉토리의 경로를 이동한다.
-. mkdir  - 새로운 디렉토리를 만든다.
-. rmdir  - 디렉토리를 삭제한다.



▒ :k,l command m  
:1,10 co 50  - 1 줄 부터 10 줄 까지를 50 줄 이후로 복사
:34,50 d   - 34 줄 부터 50 줄 까지 삭제
:100,150 m 10   - 100 줄 부터 150 줄까지를 10 줄 이후로 옮김
:.,$ d    - 현재줄부터 끝까지 지우기
:.,+20 co -4    - 현재줄부터 20줄을, 4줄 위에 복사하기
:-,+ t 0   - 위, 아래로 한줄(총 3줄)씩을, 문서 맨위에 복사하기
:/pattern/ d   - pattern 이 들어있는 줄 지우기
:/pattern/ -nd   - pattern 이 들어있는 줄로부터 n 번째 윗줄 지우기
:/pattern/ +nd   - pattern 들어있는 줄로부터 n 번째 아랫줄 지우기
:/p1/, /p2/ d   - p1 이 들어있는 줄부터, p2 가 들어있는 줄까지 지우기
:.,/pa/ m 23   - 현재줄부터 pa 이 들어있는 줄까지, 23번줄 이후로 옮기기 

▒ g 옵션 붙이기  
:g/pattern   - 파일전체에서 마지막으로 pattern 이 쓰여진 줄로 가기
:g/pattern/ p   - 파일전체에서 pattern 이 있는줄 보여주기
:g/pattern/ nu   - 파일전체에서 patterm 이 있는줄을 번호와 함께 보여주기
:60,124 g/pa/    - p 60,124 줄 사이에서 pa 이 들어있는줄 보여주기

▒ 저장 및 종료  
:w     - 저장하기  
:q     - 종료하기 
:wq    - 저장하고 종료하기 
:x    - 저장하고 종료하기 (:wq 와 동일)
:w!     - 강제로 저장하기 (read-only 로 열었을경우)
:q!     - 편집한 내용을 저장하지 않고 종료하기
:w    - new_filename new_filename으로 저장하기
:w %.new   - 현재파일 이름에 .new 를 붙여서 새로운 파일로 저장
:230,$ w filename ant - 230 줄부터 끝줄까지 filename으로 저장하기
:.,580 w filename  - 현재줄부터 580줄까지 filename으로 저장하기
:1,10 w new_filename  - 1줄부터 10줄까지 new_filename으로 저장하기
:340,$ w >>new_file  - 340줄부터 끝줄까지 new_file에 추가하기 

읽기  
:r[ead] filename  - 현재위치에 filename 읽어들이기
:r /usr/local /data  - 현재위치에 /usr/local/data 읽어들이기
:185 r /usr/ local/data - 185줄 이후에 /usr/local/data 읽어들이기
:$ r /usr/local/data  - 맨끝줄 이후에 /usr/local/data 읽어들이기
:0 r /usr/local/data  - 맨윗줄에 /usr/local/data 읽어들이기
:/pa/ r /usr/local/data - pa 이 존재하는 줄에 /usr/local/data 읽어들이기

▒ 다중편집하기  
vi file1 file2 file3 :args - 편집중인 파일목록 보여주기
:n[ext]   - 다음 파일로 넘어가기
:prev[ious]   - 이전파일로 돌아가기
sc/ESC/g    - BX가 있는줄 찾아서 Esc 를 ESC 로 바꾸
:% s/editer/editor/g   - 처음줄부터 마지막줄까지, editer 를 editor 로 바꾸기
:g/editer/ s//editor/g  - 위와 동일("s/" 다음에 인자가 없어서 윗줄과 같은효과

'Study > Language &gt;' 카테고리의 다른 글

getAddDay 함수를 이용한 해시 예제,  (0) 2010.01.15
getAddDay 함수 구현  (0) 2010.01.14
GCC의 -l 과 -L 옵션  (0) 2010.01.09
쉘 프로그래밍 이론  (0) 2009.12.24
알아두면 유용한 VI편집기 명령어 환경설정  (0) 2009.12.24
댓글