본문 바로가기

공부/리눅스

vi 편집기 기능

반응형

■ 커서 이동

문자키를 이용한 커서 이동하기

            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 개 입력

 

반응형