본문 바로가기

해봐야 안다.OTL/Linux

[2] VI editor 사용법

<VI editor 사용법 정리

 

 

 

 

버퍼 관리: 일반모드

삭제

vi 에서의 삭제 = 임시 버퍼에 잘라내기

x, dl

커서 위치의 글자 삭제

X, dh

커서 바로 앞의 글자 삭제

dw

한 단어를 삭제

d0

커서 위치부터 줄의 처음까지 삭제

D, d$

커서 위치부터 줄의 끝까지 삭제

dd

커서가 있는 줄을 삭제

dj

커서가 있는 줄과 그 다음 줄을 삭제

dk

커서가 있는 줄과 그 앞줄을 삭제

 

<-실습->

 

<원문>

 

명령어 입력

j0wd0wxxxxwwXXXjwwD

다음 줄의 처음으로 이동해(j0) 한 단어 오른쪽으로 이동한 후 (w) 커서 위치에서부터 줄의 처음까지 지우고(d0) 다시 한 단어 이동한 뒤(w) 커서 위치의 네 글자를 지우고(xxxx) 다시 두 단어 이동한 뒤(ww)커서 바로 앞의 세 글자를 지우고(XXX) 다음 줄로 내려가 두 단어 오른쪽으로 이동한 후 거기에서부터 줄의 끝까지 지운다.(jwwD)

 

<바뀐 내용>

 

붙여넣기(paste)

- P :아래로 붙여넣기

- p:위로 붙여넣기

복사하기(yank)

yw

커서 위치부터 단어의 끝까지 복사

y0

커서 위치부터 줄의 처음까지 복사

y$

커서 위치부터 줄의 끝까지 복사

yy

커서가 있는 줄을 복사

yj

커서가 있는 줄과 그 다음 줄을 복사

yk

커서가 있는 줄과 그 앞줄을 복사

 

<-실습->

 

<원문>

명령어 입력

kkjyyjpjdw$pdw$p0dw$p

두 줄 위로 올라가(kk) 다음 줄을 복사(jyy) 한 줄 아래로 이동한 후 커서 뒤쪽에 끼워 넣은 후 (jp) 한 줄 아래로 내려가 한 단어 삭제 후 그 단어를 그 줄의 맨 끝에 붙여넣고(jdw$p) 다시 맨 앞의 한 단어를 삭제 한 후 맨 뒤에 붙여 넣으라는 뜻(0dw$p)

<바뀐 내용>

 

 

 

일반모드: 반복지정

- 일반모드에서는 명령어 앞에 숫자를 붙이면 반복 지정

 

<원문>

 

명령어 입력

2j3dd3p

2줄 아래로 이동(2j) 3줄 삭제(3dd) 삭제 되어 버퍼의 내용을 3번 붙이기

 

<바뀐 내용>

 

 

 

 

일반모드: 검색

-패턴 검색

/[pattern]

현재 위치에서부터 아래 방향으로 패턴 검색

?[pattern]

현재 위치에서부터 위쪽 방향으로 패턴 검색

n

검색하던 방향으로 계속 패턴 검색

N

검색하던 반대 방향으로 계속 패턴 검색

<-실습->

 

<원문>

 

"member"라는 단어를 검색하고자 할 때 다음과 같이 입력한다.

/member(명령모드) 위쪽 방향으로 찾을 때 ?member

<바뀐 내용>

 

 

 

일반모드: 실행 취소

 

u

작업 취소(undo)

U

그 줄에 행해진 작업 모두 취소

Ctrl+r

작업 재실행(redo)

.

조금 전에 했던 명령을 반복

J

현재 줄과 아래 줄을 연결

~

대문자를 소문자로, 소문자를 대문자로 바꿈

%

괄호의 반대쪽 짝으로 이동

Ctrl+l

현재 화면을 지우고 다시 그림

Ctrl+g

파일에 관한 정보를 표시

 

<-실습->

 

<원문>

 

명령어 입력

kkk0bbbxxxuuujdw.UkkJ

세 줄 위로 이동해 그 줄의 맨 앞으로 이동 후 세 단어 오른쪽으로 이동하고 (kkk0bbb) 글자 세 개를 지웠다가 이를 취소한 후(xxxuuu) 한 줄 아래로 내려가 한 단어를 삭제하고(jdw) 다시 한번 한 단어를 삭제하고(.) 그 줄에서 행해진 작업을 모두 취소한 뒤(U) 두 줄 올라가 그 줄과 그 다음 줄을 연결하라(kkJ)는 명령이다.

 

<바뀐 내용>

 

 

 

 

 

 

명령 행 모드

:w [filename]

filename이 지정되면 해당 파일에 쓰기를 지정

filename이 생략되면 현재 파일에 쓰기를 지정

:w >> file

현재 편집 중인 문서를 file의 뒷부분에 붙임

:[range]w >> file

위와 같지만 range(범위)만 붙임

:up

변경된 점이 있을때만 ":w"명령어를 실행

 

 

<-실습->

w [filename]

 

w >> file

밑에 추가된 걸 확인할 수 있다.

명령 행 모드: 옵션설정

:set

현재 옵션 설정을 보여줌

:set all

모든 옵션 설정을 보여줌(default 옵션까지 출력)

:set [no]name

name에 해당하는 옵션을 on/off 함

(앞에 prefix를 no를 지정하는 경우가 off)

:set name=value

name 옵션에 value의 값을 할당함

 

<-실습->

set

 

set all

 

 

 

 

 

 

 

 

 

set nu(행번호를 표시해주는 옵션)

.vimrc 예시

nu

(number)화면에 행번호 표시

ai

(autoindent) 자동 들여쓰기

cindent

C언어 스타일의 들여쓰기

ts=value

(tabstop)화면에 표시 될 탭 크기를 value로 지정

sw=value

(shiftwidth) 자동 블록 이동시 열의 너비

fencs=value

(fileencodings) 지원할 파일 인코딩 방식 리스트

*복수개 지정시 콤마로 구분(공백없음)

fenc=value

(fileencoding) 현재 파일 인코딩 방식을 지정

 

visual mode

v키(소문자)의 비주얼 모드

CTRL-V 키의 비주얼 블록 모드

 

 

윈도우 분할(수평)

 

상하 분할 윈도우

- vi -o 파일1 파일2

- :sp [파일]

 

<-실습->

 

 

좌우 분할 윈도우

- vi -O 파일1 파일2

- :vs [파일]

 

<-실습->

 

윈도우 간 이동

- CTRL-WW : 이전 윈도우로 이동

- CTRL-W [h j k l]: h, j, k, l이 지닌 이동방향으로(좌 하 상 우)

<END>

 

<vi 부분 참고 자료 : http://kldp.org/KoreanDoc/html/Vim_Guide-KLDP>