cygwin을 설치하고 공부하면서 설정하는 부분에서 어떻게 들어가서 편집을하고 저장해야 하는지 부터 공부를 해야 했고, vi라는 편집기를 알게 되었고 vi 편집기에 대한 명령어도 공부를 하게 되더군요.
그래서 이쯤에 vi명령어를 발굴해서 올려보기로 작정하고 이렇게 찾아서 올립니다. 많은 도움 되셨으면 합니다.^^;

-. 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/" 다음에 인자가 없어서 윗줄과 같은효과


출처 -   http://cafe.naver.com/iscript.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=122

연관글



+ Recent posts