Post

vi에디터

h, j, k, l의 키로 좌, 하, 상, 우 방향으로 커서 이동 가능

(화살표가 지원되지 않는 리눅스도 존재하기 때문에 h, j, k, l로 조작하는 것이 좋음)

image

vi에디터로 내용을 바로 수정하고 싶을 때

:s/ms-wbt-server/rdp

 -> 현재 페이지에서 찾아서 대체하겠다/[기존문자열/[변경할 문자열]

:%s/ms-wbt-server/rdp

 -> 전체 문서에서 찾아서 대체하겠다/[기존문자열/[변경할 문자열]

image

u : 되돌리기 기능(여러 번 누르게 되면 누른 횟수만큼의 이전으로 돌아감)

(undo의 의미)

image

ctrl + r : u로 되돌린 것들을 앞으로 다시 돌림(여러 번 누르게 되면 누른 횟수만큼의 다시 앞으로 돌아옴)

(redo의 의미)


image

image

 i 입력으로 insert모드 변환 가능

image

esc 눌러서 입력모드

image

눌러서 명령모드

image

저장 후 나가기

image

현재 변경 사항 저장하지 않고 강제로 나가기

명령모드 키 값들

1. 이동

 - gg : 문서의 첫 라인으로 이동

 - G : 문서의 마지막 라인으로 이동

 - 5G : 숫자(5번) 라인으로 이동

 - ^ : 행의 처음

 - 0(숫자) : 행의 처음

 - $ : 행의 마지막

 - w : 단어사이 이동

2. 방향키값

 - h : 왼쪽

 - j : 아랫쪽

 - k : 윗쪽

 - l : 오른쪽

3. 복사

 - yy : 현재 커서가 있는 라인을 복사

 - 5yy : 현재 커서로부터 5라인을 복사

4. 붙여넣기

 - p(소문자) : 현재 커서의 다음 라인에 붙여넣기

 - P(대문자) : 현재 커서의 윗라인에 붙여넣기

5. 삭제

 - x : 자소 단위(한 음절)로 삭제

 - dd : 현재 커서의 라인을 삭제

 - D : 현재 커서의 라인의 문자 삭제, 라인은 유지됨

 - dw : 단어 단위로 삭제

 - d$ : 현재 커서 뒤에 있는 행의 문자열 삭제

 - d0 : 현재 커서 앞에 있는 행의 문자열 삭제

6. 취소

 - u : 실행을 취소

 - 10u : 10번 실행을 취소

 - ctrl + r : 취소를 번복

입력모드 키 값들

7. 입력모드

 - i(소문자) : 현재 커서의 앞에 입력

 - a(소문자) : 현재 커서의 뒤에 입력

 - A(대문자) : 현재 라인의 맨 뒤에 입력

 - s(소문자) : 현재 커서의 자소(한 음절)를 지우고 그 자리부터 입력하기

 - S(대문자) : 현재 라인을 지우고, 새롭게 입력

 - o(소문자) : 현재 커서의 아래 행에 입력

 - O(대문자) : 현재 커서의 아래 행에 입력

실행 모드 키 값들

8. 실행 모드 키 값들(실행모드로는 : 으로 표시됨)

 - :w (저장)

 - :q (변경된 내용이 저장된 경우에만 빠져나옴)

 - :q! (변경된 내용을 저장하지 않고 빠져나옴)

 - wq (변경된 내용을 저장한 후 빠져나옴)

 - :set nu (라인 번호 출력)

9. 이동한 후 붙여넣기(잘라내기)

 - :2,3 m 13

image image

2,3 행을 잘라내서 13행에 붙여넣기

10. 특정 라인들을 복사한 후 특정 라인에 붙여넣기

 - : 3,4 co 13

image

3,4행을 복사해 13행에 붙여넣기

11. 라인의 범위 지정 후 복사, 삭제하기

 - :58,60d (58라인에서 60라인까지 삭제)

 - :1,10y (1라인에서 10라인까지 복사)

12. 모든 라인을 범위로 설정한 후 복사하기

 - :0,$ co $ (현 파일의 모든 라인을 복사한 후 마지막 라인으로 붙여넣기)

 - :% co $ (현 파일의 모든 라인을 복사한 후 마지막 라인으로 박사)

 -> 0,$ co $ (문서 첫 행부터 마지막 행까지 복사 후 마지막 행에 붙여넣기)

 -> % co $ (문서 전체 행을 복사 후 마지막 행에 붙여넣기)

문자열 검색 키 값들

1. 문자열 검색

 - /문자열 (첫라인부터 아래방향으로 검색)

 - ?문자열 (마지막 라인부터 윗방향으로 검색)

 - /end (end는 검색하고자 하는 문자열)

 - n (현 커서의 아래 방향으로 검색된 다음 문자열로 이동)

 - N (현 커서의 윗 방향으로 검색된 다음 문자열로 이동)

문자열 치환 키 값들

1. 문자열 치환

 - :%s/OLD/NEW/g (문서 전체에서 OLD를 NEW로 치환)

 - :%s/end/END/g (문서 전체에서 소문자 end를 대문자 END로 치환)

 - :%s/old/new/g (모든 old 단어를 찾아 new 단어로 치환)

 - :%s/^old/new/g (행의 첫 단어가 old인 것을 new로 치환)

 - :%s/old$/new/g (행의 끝 단어가 old인 것을 new로 치환)

 - :%s/aaa//g (모든 aaa 단어를 삭제)

 - :0,$s/Linux/Redhat/g (파일 전체에서 Linux를 찾아서 Redhat으로 확인 없이 교체)

 - :10,20s/^/»/c (10번 라인에서 20번 라인까지 라인 앞에 »를 확인 후 첨가)

2. 주석처리하기

 - :g/^[^#]/s/^/m

 - :%s/^[^#/#&/g

 - :%s/^[[:alnum:]]/$&/g

 -> 걍 문자행 가서 앞에 # 넣으면 안됨?

3. 패턴과 일치되는 라인 삭제(특정 pattern이 들어가는 line 지우기)

 - g/pattern/d

4. 특정 pattern이 들어가 있는 line을 제외한 모든 line 지우기

 - g!/pattern/d

 - v/pattern/d

5. error, warning, fail이 포함되지 않는 모든 line 지우기

 - :v/error\|warning\|fial/d

6. 빈줄 찾아 지우기

 - :g/^$/d

7. 라인부터 n lines 삭제

 - 1800d 14 (1800라인부터 14라인 삭제)

8. 외부 파일을 불러와서 현 커서에 추가하기

 - :r FileName

9. 외부 파일을 불러와서 특정 라인에 추가하기

 - :10r FileName (파일을 불러와서 10라인에 추가)

10. 명령 실행의 결과값을 특정 라인에 추가하기

 - 10r ! ls -l

11. 열려있는 창에서 다른 파일 불러오기

 - :e FileName

12. 단축키 값들

 - ctrl + z : vi에서 백그라운드로 실행하기

 - shift + zz : 저장하고 빠져 나오기

 - shift +zq : 취소하고 빠져 나오기

13. 포그라운드로 작업 실행하기

 - # fg 1(작업id)

14. set

검색할 때 대소문자 구별 안함

 - :set ic

 - :set noic

set nu할 때 번호와 간격 조정

 - :set nuw=1

항상 파일이름, 커서위치, 문서경과 표시하기

 - :set ls=2

 - :set laststatus=2

 - :set ls=1(취소)

자동 들여쓰기

 - :set autoindent

자동 들여쓰기 취소

 - :set noautoindent

상용구 기능

 - :ab 문자 상용구

 - :abb for KOREA(for 문자 입력할 때 KOREA를 호출함)

상용구 해제

 - unab for

상용구 보기

 - :ab

vi에디터 파일 실습해보기

This post is licensed under CC BY 4.0 by the author.