컴퓨터 공학

[퍼옴] vi 단축키

혼새미로 2015. 11. 27. 01:36
반응형


vi 명령어, vi 단축키, vi(Visual Editer), vim


0. 읽기전에!!!

큰따옴표 " " 로 묶인 글은 그 안의 내용을 말하는 것입니다. 만일 "가나다" 라고 하면 큰따옴표("")를 제외한 가나다만 입력하면 됩니다.
"", "/", "?" 표시는 입력모드에서 ESC키를 누른뒤 입력하면 됩니다.
filename.xxx는 아무 파일을 의미합니다. 즉 자기가 원하는 대로 쓰면 됩니다. 단, 파 일명 작성규칙에 맞는 파일명을 입력해야 합니다.
대소문자는 구분합니다. x와 X는 다릅니다.
""은 엔터키를 의미합니다.
"[n]"은 숫자를 의미 합니다.
"x, dl"은 x 또는 dl을 의미합니다.

1. History of vi

vi는 BSD의 C shell을 개발한 빌 조이가 1976년에 ed의 기능을 확장시킨 ex(Extended editer)편집기를 개발 하고 이를 확장 시켜서 만들었다. <<유닉스.리눅스 프로그래밍 필수 유틸리티>>
※vi는 Visual editer의 줄임이다.

2. vi의 특징

장점

키보드로 모든것을 할 수 있다.(처음 시작하는 사람들에게는 치명적인 단점이다.)
가볍다. 하지만 매우 많은 기능이 있다.
사용하면 할 수록 재미있다.

단점

키보드 만을 사용한다.
단축키가 매우 많다.
처음 사용자들은 사용하기가 매우 힘들다.

3. vi의 모드(mode of vi)
명령모드(command mode)
ex모드
입력모드
ex모드 <=> 명령모드 <=> 입력모드

즉 ex모드에서 입력모드로 가기위해서는 명령모드를 거쳐서 가야한다. 모드라고해서 거창한것은 없다. 단지 "ESC" 키 를 한번 누르는것이 전부다.

4. vi의 명령(command of vi)

ㄱ. 파일관련 단축키

w filename.xxx : 쓰기(write)
w >> filename.xxx : 파일에 덧붙여서 저장>
q : 종료(quit)
q! : 저장하지 않고 종료
e filename.xxx : 열기(open)
wq! : 저장하고 종료하기

ㄴ. 입력모드 전환 키

a : 커서 위치의 다음칸부터 입력
A : 커서 행의 맨 마지막부터 입력
i : 커서 위치부터 입력
I : 커서 행의 맨 처음부터 입력
o : 커서 행의 다음행에 입력
O : 커서 행의 이전행에 입력
s : 커서 위치의 한 글자를 지우고 입력
cc : 커서 위치의 한 행을 지우고 입력

ㄷ. 이동(move)

h : 왼쪽
l : 오른쪽
j : 아래
k : 위
w : 다음 단어의 첫글자로 이동
b : 이전 단어의 첫글자로 이동
$ : 커서 행의 맨 마지막으로 이동
^ : 커서 행의 맨 처음으로 이동

+ : 다음행의 첫 글자로 이동
- : 이전행의 첫 글자로 이동

( : 문장의 처음으로 이동
) : 문장의 마지막으로 이동
{ : 문단의 처음으로 이동
} : 문단의 마지막으로 이동

H : 커서를 화면의 맨 위로 이동
M : 커서를 화면의 가운데로 이동
L : 커서를 화면의 마지막으로 이동

z : 현재 행을 화면의 맨 위로 이동
z. : 현재 행을 화면의 중앙으로 이동
z- : 현재 행을 화면의 최하단으로 이동

[n]H : 커서를 현재 화면의 [n]행으로 이동
[n]L : 커서를 현재 화면의 아래서 [n]행으로 이동

ctrl + u : 반 화면 위로 스크롤
ctrl + d : 반 화면 아래로 스크롤

ctrl + b : 한 화면 위로 스크롤
ctrl + f : 한 화면 아래로 스크롤

gg : 문서의 맨 첫 행으로 이동
G : 문서의 맨 마지막행으로 이동
[n]G : 문서의 [n]번째 행으로 이동
[n] : 문서의 [n]번째 행으로 이동


ㄹ. 삭제

x, dl : 커서위치의 글자 삭제
X : 커서 바로 앞의 글자 삭제
dw : 한 단어를 삭제
d0 : 커서 위치부터 행의 처음까지 삭제
D, d$ : 커서 위치부터 행의 끝까지 삭제
dd : 커서가 있는 행을 삭제
dj : 커서가 있는 행과 그 다음 행을 삭제
dk : 커서가 있는 행과 그 앞 행을 삭제

ㅁ. 복사 & 붙여넣기

yw : 커서가 있는 단어를 복사한다.
yy : 커서가 있는 줄을 복사한다.
v : 현재 커서부터 블록을 시작한다.
y : 블록이 되어있는 부분을 복사한다.
p : 현재 커서가있는곳에 붙여 넣는다.

ㅂ. 잘라내기

잘라내기를 이해하기위해서는 vi의 레지스터를 알아야 한다. vi는 총 17개의 레지스터를 가지고 있다. 일단 삭제명령으로 지운 글자들은 순서대로 레지스터로 이동한다. 그러므로 p를 눌러주면 삭제된 글자들이 붙여넣기가 된다.

ㅅ. 레지스터

윈도우에서 말하는 클립보드와 같은것이다.
reg : 레지스터에 있는 내용을 볼 수 있다.
"[n]p : [n]번 레지스터에 있는 값을 현재 커서위치에 붙여넣는다.

o. 블록

블록은 v키를 누른뒤 커서를 이리저리 움직이면 설정된다.
직사각형의 영역을 지정하기 위해서는 "ctrl + v"를 누르면 된다.
~ : 대소문자 전환
d : 삭제
y : 복사
c : 치환(바꾸기)
< : 앞에 탭 제거
> : 앞에 탭 삽입

선택된 영역에 대하여 ex명령
J : 행을 합침
U : 대문자로 만듦
u : 소문자로 만듦

ㅈ. 되돌리기와 되살리기
u : 되돌리기(undo) 윈도우에서 ctrl + z 와 같다.
ctrl + r 되살리기 지워진것을 다시 살린다.>

ㅊ. 문자열 찾기

/[찾고자하는 문자열] : 아래로가면서 문자열을 찾는다.
?[찾고자하는 문자열] : 위로 올라가면서 문자열을 찾는다. n : 다음 문자열
N : 이전의 문자열


ㅋ. 문자열 치환

%s/old/new/g : 아래로 가면서 문서에 있는 모든 old문자열을 new로 바꿈
s/old/new/ : 아래로 가면서 제일 처음 매칭되는 행의 문자열을 치환
2,4s/old/new/g : 2행에서 4행사이에 매칭되는 문자열을 치환한다.
-1,+3s/old/new/g : 현재 커서에서 위로1줄 아래로 3줄 범위내의 문자열을 치환
%s/old/new/ : 문서의 전체를 조사하되 한행에서는 처음 만나는 문자열만 치환
%s/old/new/gc : 치환여부를 물어본다.  

 

http://hacheo.egloos.com/viewer/3307158 

반응형