출처: http://blog.naver.com/makesome/150043823441
VI Editor - 2009.03.04 makesome
모드
모든 모드에서 <ESC> 입력 시 명령 모드로 변경
모든 비주얼 모드에서 선택 시 복사, 잘라내기 등이 가능하다.
모든 비주얼 모드에서 선택 시 복사, 잘라내기 등이 가능하다.
명령 모드 | vi를 최초 실행 시 명령 모드이며 명령어를 조합하여 사용. 입력 되는 명령은 대부분 대, 소문자를 구분한다. 명령이 완료되기 전 <ESC>로 명령을 취소할 수 있다. (숫자)와 함께 사용 시 (숫자)만큼 명령을 실행할 수 있다. 예) 2X <Ctrl> + 알파벳 명령은 대소문자를 구분하지 않는다. |
|
EX 모드 | 파일 저장, 열기 등의 작업을 할 수 있다. 명령 모드 상태에서 :를 입력하여 모드 변경 입력 되는 명령은 대, 소문자를 구분한다. |
|
편집 모드 | 직접 입력, 삭제(잘라내기가 아니다) 등을 할 수 있다. 삽입 명령 등으로 모드를 변경 |
|
비주얼 모드 | 문자, 줄을 선택할 수 있는 모드이다. 명령 모드 상태에서 v를 입력하여 모드 변경 이동 명령으로 원하는 블록을 지정 (일반 편집기에서 <Shift> + 방향 과 동일) |
|
비주얼 라인 모드 | 줄을 선택할 수 있는 모드이다. 명령 모드 상태에서 V를 입력하여 모드 변경 이동 명령으로 원하는 블록을 지정 |
|
비주얼 블록 모드 | 문자, 줄을 칸 단위로 선택할 수 있는 모드이다. 명령 모드 상태에서 <Ctrl> + v를 입력하여 모드 변경 이동 명령으로 원하는 블록을 지정 (Editplus에서 <Alt> + C + 방향 과 동일) |
이동
명령 모드 상태에서 커서를 이동할 수 있다.
←, →, ↑, ↓ 키는 명령, 편집 모드 상태에서 동일하게 이동을 할 수 있다.
←, →, ↑, ↓ 키는 명령, 편집 모드 상태에서 동일하게 이동을 할 수 있다.
명령 | 설명 | 이동 전 | 이동 후 |
h | 왼쪽으로 한 칸 이동 | 1234567890
|
1234567890
|
<Backspace> | h와 동일하게 움직이지만 줄 처음에서는 윗 줄 맨 뒤로 이동 | 1234567890
|
1234567890
|
H | 화면 최 상단으로 이동 후 첫 비공백 문자로 이동 | * 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
* 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
l | 오른쪽로 한 칸 이동 | 1234567890
|
1234567890
|
L | 화면 최 하단으로 이동 후 첫 비공백 문자로 이동 | * 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
* 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
j | 아래로 한 줄 이동 | 1234567890
2345678901
3456789012
|
1234567890
2345678901
3456789012
|
k | 위로 한 줄 이동 | 1234567890
2345678901
3456789012
|
1234567890
2345678901
3456789012
|
<Enter> 또는 + | 아래로 한 줄 이동 후 첫 비공백 문자로 이동 | 1234567890
2345678901
3456789012
|
1234567890
2345678901
3456789012
|
- | 위로 한 줄 이동 후 첫 비공백 문자로 이동 | 1234567890
2345678901
3456789012
|
1234567890
2345678901
3456789012
|
w | 다음 단어의 시작으로 이동 | Q) 100-90 = 10
|
Q) 100-90 = 10
|
W | 공백으로 구분하여 다음 단어의 시작으로 이동 | Q) 100-90 = 10
|
Q) 100-90 = 10
|
e | 단어의 끝으로 이동 | Q) 100-90 = 10
|
Q) 100-90 = 10
|
E | 공백으로 구분하여 다음 단어의 끝으로 이동 | Q) 100-90 = 10
|
Q) 100-90 = 10
|
b | 단어의 처음으로 이동 | Q) 100-90 = 10
|
Q) 100-90 = 10
|
B | 공백으로 구분하여 이전 단어의 처음으로 이동 | Q) 100-90 = 10
|
Q) 100-90 = 10
|
0(숫자) | 현재 줄의 맨 앞으로 이동 | 1234567890
2345678901
3456789012
|
1234567890
2345678901
3456789012
|
^ | 현재 줄의 첫 비공백 문자로 이동 | 1234567890
2345678901
3456789012
|
1234567890
2345678901
3456789012
|
$ | 현재 줄의 맨 뒤로 이동 | 1234567890
2345678901
3456789012
|
1234567890
2345678901
3456789012
|
M | 화면 중간으로 이동 후 첫 비공백 문자로 이동 | * 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
* 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
% | 일치하는 괄호 등으로 이동 | if (i == 0)
|
if (i == 0)
|
( | 문장의 시작으로 이동 | * 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
* 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
) | 문장의 시작으로 이동 | * 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
* 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
{ | 문단의 시작으로 이동 | * 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
* 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
} | 문단의 끝으로 이동 | * 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
* 디버그 설정
*/
public void setDebug(int debug) {
this.debug = debug;
}
/**
* 투명도 설정
*/
public void setAlpha(float alpha) {
this.alpha = alpha;
}
/**
* 저장 이미지 형식
|
<Ctrl> + D | 반 페이지 아래로 이동 | ||
<Ctrl> + U | 반 페이지 위로 이동 | ||
<Ctrl> + F | 한 페이지 아래로 이동 | ||
<Ctrl> + B | 한 페이지 아래로 이동 | ||
<Ctrl> + E | 커서 위치를 유지 시키며 화면을 아래로 스크롤 커서가 화면을 넘어가면 화면 기준 최 상단으로 이동 (일반 편집기에서 <Ctrl> + ↓ 과 동일) |
||
<Ctrl> + Y | 커서 위치를 유지 시키며 화면을 위로 스크롤 커서가 화면을 넘어가면 화면 기준 최 하단으로 이동 (일반 편집기에서 <Ctrl> + ↑ 과 동일) |
||
z<Enter> 또는 zt | 커서가 위치한 줄을 화면 최 상단으로 이동 | ||
z. 또는 zz | 커서가 위치한 줄을 화면 중앙으로 이동 | ||
z- 또는 zb | 커서가 위치한 줄을 화면 최 하단으로 이동 | ||
G | 파일의 마지막 줄로 이동 후 첫 비공백 문자로 이동 | ||
gg | 파일의 첫번째 줄로 이동 후 첫 비공백 문자로 이동 | ||
(숫자)G | 파일의 (숫자)번째 줄로 이동 |
복사
명령 모드에서 복사를 할 수 있다.
y로 명령을 시작하며 이동 명령과 함께 사용
운영체제 클립보드에 복사되지 않으며 vi 내부 레지스터에 저장된다.
윈도우용 vi 사용 중 클립보드로 복사는 "+y
y로 명령을 시작하며 이동 명령과 함께 사용
운영체제 클립보드에 복사되지 않으며 vi 내부 레지스터에 저장된다.
윈도우용 vi 사용 중 클립보드로 복사는 "+y
명령 | 설명 | 커서 위치 | 레지스터 내용 |
yy 또는 Y | 현재 줄 복사 | 1234567890
2345678901
3456789012
|
2345678901 |
2Y | 커서가 위치한 줄을 기준으로 2줄 만큼 복사 | 1234567890
2345678901
3456789012
|
2345678901 3456789012 |
y5G | 커서가 위치한 줄을 기준으로 5번째 줄까지 복사 |
|
2345678901 3456789012 4567890123 5678901234 |
yh | 왼쪽 문자 복사 | 2345678901
|
3 |
잘라내기
잘라내기 시 vi 내부 레지스터에 저장된다.
편집 모드에서 Backspace, Del로 삭제가 가능하다. 명령 모드에서 아래 명령으로 삭제를 할 수 있다.
d로 명령을 시작하며 이동 명령과 함께 사용
윈도우용 vi 사용 중 클립보드로 복사는 "+x
편집 모드에서 Backspace, Del로 삭제가 가능하다. 명령 모드에서 아래 명령으로 삭제를 할 수 있다.
d로 명령을 시작하며 이동 명령과 함께 사용
윈도우용 vi 사용 중 클립보드로 복사는 "+x
명령 | 설명 | 잘라내기 전 | 잘라내기 후 | 레지스터 내용 |
dd | 현재 줄 잘라내기 | 1234567890
2345678901
3456789012
|
2345678901
3456789012
|
1234567890 |
2dd | 커서가 위치한 줄을 기준으로 2줄 만큼 잘라내기 | 1234567890
2345678901
3456789012
4567890123
|
1234567890
4567890123
|
2345678901 3456789012 |
D | 커서가 위치 다음 부터 줄 마지막까지 잘라내기 | 2345678901
|
23
|
45678901 |
2D | 커서가 위치한 문자부터 2줄 만큼 잘라내기 | 1234567890
2345678901
3456789012
4567890124
|
1234567890
23
4567890124
|
45678901 3456789012 |
d5G | 커서가 위치한 줄을 기준으로 5번째 줄까지 잘라내기 |
|
|
2345678901 3456789012 4567890123 5678901234 |
dh | 커서가 위치한 왼쪽 문자 잘라내기 | 2345678901
|
245678901
|
3 |
x | d + l와 동일 | 2345678901
|
235678901
|
4 |
X | d + h와 동일 | 2345678901
|
245678901
|
3 |
삽입
명령 모드에서 편집모드로 변경할 수 있다.
환경 설정에 따라 커서의 위치가 조금 달라 질 수 있다. (tabstop)
환경 설정에 따라 커서의 위치가 조금 달라 질 수 있다. (tabstop)
명령 | 설명 | 삽입 전 | 삽입 후 |
i | 현재 위치에서 편집모드로 변경 | 2345678901
|
2345678901 |
I | 현재 줄의 첫 비공백 문자에서 편집모드로 변경 | 2345678901
|
2345678901 |
a | 다음 위치에서 편집모드로 변경 | 2345678901
|
2345678901 |
A | 현재 줄 마지막에서 편집모드로 변경 | 2345678901
|
2345678901 |
o | 현재 줄 아래에 한 줄 삽입 후 편집모드로 변경 | 2345678901
|
2345678901 |
O | 현재 줄 위에 한 줄 삽입 후 편집모드로 변경 | 2345678901
|
2345678901 |
잘라내기 + 삽입
잘라내기와 삽입을 동시에 실행 할 수 있다.
c로 명령을 시작하며 이동과 함께 사용
c로 명령을 시작하며 이동과 함께 사용
명령 | 설명 | 잘라내기 전 | 삽입 후 | 레지스터 내용 |
s | x + i와 동일 | 2345678901
|
235678901 |
4 |
S | ^ + D + i와 동일 | 2345678901
|
2345678901 | |
cc | S와 동일 | 2345678901
|
2345678901 | |
C | D + a와 동일 | 2345678901
|
23 |
45678901 |
ch | X + i와 동일 | 2345678901
|
245678901 |
3 |
붙여넣기
레지스터에 저장된 내용을 붙여넣는다.
명령 | 설명 | 붙여넣기 전 | 레지스터 내용 | 붙여넣기 후 |
p | 커서 다음 위치에 붙여넣기 | 2345678901
|
a |
234a5678901
|
P | 커서 이전 위치에 붙여넣기 | 2345678901
|
a |
23a45678901
|
바꾸기
치환과 달리 커서위치를 기준으로 간단한 바꾸기를 실행
명령 | 설명 | 바꾸기 전 | 바꾸기 후 | 예제 |
r | 커서가 있는 문자 바꾸기 | 2345678901
|
23a5678901
|
ra |
R | 커서가 있는 문자부터 <Esc>가 입력 될 때 까지 바꾸기 | 2345678901
|
23abc78901
|
Rabc +<Esc> |
~ | 커서가 있는 문자의 대소문자 바꾸기 | abc
|
Abc
|
~ |
<Ctrl> + A | 커서에서 오른쪽으로 가장 가까운 숫자를 증가 시킨다. | a123
a-123
|
a124
a-122
|
<Ctrl> + A |
J | 커서가 위치한 줄과 아래 줄을 연결, 줄 사이의 공백은 하나의 공백으로 변경 | 1234567890
2345678901
|
1234567890 2345678901
|
J |
>> | 들여쓰기 늘임 | 1234567890
|
1234567890
|
>> |
<< | 들여쓰기 줄임 | 1234567890
|
1234567890
|
<< |
치환
일반 편집기의 찾기, 바꾸기 기능을 실행한다.
옵션
옵션
- g : 모두 치환
- c : 치환 여부 확인
- i : 대소문자 구분 안함
명령 | 설명 | 치환 전 | 치환 후 | 예제 |
: + s/old/new | 커서가 위치한 줄의 처음 old를 new로 치환 | ---222---333
---222---333
|
===222---333 ---222---333 |
: + s/---/=== +<Enter> |
: + s/old/new/g (g 옵션 사용 시) | 커서가 위치한 줄의 모든 old를 new로 치환 | ---222---333
---222---333
|
===222===333 ---222---333 |
: + s/---/===/g +<Enter> |
: + %s/old/new | 모든 줄의 처음 old를 new로 치환 | ---222---333
---222---333
|
===222---333 ===222---333 |
: + %s/---/=== +<Enter> |
: + %s/old/new/g (g 옵션 사용 시) | 모든 줄의 모든 old를 new로 치환 | ---222---333
---222---333
|
===222===333
===222===333
|
: + %s/---/===/g +<Enter> |
: + (숫자1),(숫자2)s/old/new | (숫자1)부터 (숫자2)줄까지 처음 old를 new로 치환 |
|
|
: + 2,4s/---/=== |
: + -(숫자1),+(숫자2)s/old/new | 커서 (숫자1)줄 위부터 (숫자2)줄 아래까지 처음 old를 new로 치환 |
|
|
: + -2,+1s/---/=== |
: + .,$s/old/new | 커서줄 부터 문서 마지막까지 처음 old를 new로 치환 |
|
|
: + .,$s/---/=== |
: + g/검색패턴/s/old/new | 검색패턴이 있는 모든 줄의 처음 old를 new로 치환 |
|
|
: + g/4/s/---/=== |
검색
검색어는 정규표현식으로 입력한다.
검색 패턴에 \<검색어\>를 사용하는 경우 온전한 단어를 검색한다.
기본적으로 검색 시 대소문자를 구분한다.
검색 패턴에 \<검색어\>를 사용하는 경우 온전한 단어를 검색한다.
기본적으로 검색 시 대소문자를 구분한다.
명령 | 설명 | 검색 전 | 검색 후 | 예제 |
/ + 검색패턴 | 커서 위치에서 아래로 검색 | 00-11-22-11-33-11
|
00-11-22-11-33-11 |
/ + 11 + <Enter> |
? + 검색패턴 | 커서 위치에서 위로 검색 | 00-11-22-11-33-11
|
00-11-22-11-33-11 |
? + 11 + <Enter> |
n | 검색 방향으로 다음 검색 | 00-11-22-11-33-11 |
00-11-22-11-33-11 |
n (/검색 시) |
N | 검색 반대 방향으로 다음 검색 | 00-11-22-11-33-11 |
00-11-22-11-33-11 |
N (/검색 시) |
* | 커서가 위치한 문자를 아래 방향으로 온전한 단어 검색 | 00-11-22-11-33-11
|
00-11-22-11-33-11 |
* |
# | 커서가 위치한 문자를 위 방향으로 온전한 단어 검색 | 00-11-22-11-33-11
|
00-11-22-11-33-11 |
# |
기타
명령 | 설명 |
u | 작업 취소 (일반 편집기에서 <Ctrl> + Z) |
U | 작업 취소에 해당하는 줄의 모든 작업 취소 |
<Ctrl> + R | 다시 실행 (일반 편집기에서 <Ctrl> + Y) |
. | 마지막 명령 반복 |
: + !쉘 명령 | vi를 종료하지 않고 쉘 명령 실행 |
<Ctrl> + Z | 쉘로 잠시 빠져 나가기 (vi로 다시 돌아오려면 쉘에서 fg) |
레지스터
복사, 잘라내기 시 더 많은 저장 공간을 사용할 수 있다.
레지스터명은 1-9, a-z, A-Z를 사용할 수 있다. (0은 마지막 복사, 잘라내기 시 사용)
레지스터명은 1-9, a-z, A-Z를 사용할 수 있다. (0은 마지막 복사, 잘라내기 시 사용)
명령 | 설명 | 예제 |
"(레지스터명)(복사, 잘라내기) | 현재 커서가 위치한 줄을 (레지스터명)레지스터에 저장 | "aY |
"(레지스터명)p | (레지스터명)레지스터에 저장된 내용을 커서 다음 위치에 붙여넣기 | "aP |
: + registers | 저장되어있는 레지스터 목록 보기 |
마크
파일 특정 위치를 표시하여 이동을 간편하게 할 수 있다. (Editplus에서 표식 기능과 유사)
마크명은 0-9, a-z, A-Z를 사용할 수 있다.
showmarks 플러그인 사용 시 마크 내용을 볼 수 있다.
마크명은 0-9, a-z, A-Z를 사용할 수 있다.
showmarks 플러그인 사용 시 마크 내용을 볼 수 있다.
명령 | 설명 | 예제 |
m(마크명) | 커서가 있는 위치에 (마크명)으로 마크 | ma |
'(마크명) | (마크명)이 있는 줄의 첫 비공백 문자로 이동 | 'a |
`(마크명) | (마크명)이 있는 문자로 이동 | `a |
'' | 이전 커서 위치 줄의 첫 비공백 문자로 이동 | '' |
`` | 이전 커서 위치로 이동 | `` |
: + marks | 저장된 마크 목록을 보여준다. |
화면
편집중인 창을 분할 하거나, 다른 파일과 함께 작업할 수 있다.
<Ctrl> + L | 화면을 다시 그림 |
: + (높이)sp (파일명) | 가로로 화면을 분할하여 (파일명)을 동시에 작업할 수 있다. (높이) 미 입력 시 화면 크기를 똑같이 분할한다. (파일명) 미 입력 시 현재 작업중인 파일로 분할한다. |
: + (넓이)vs (파일명) | 세로로 화면을 분할하여 (파일명)을 동시에 작업할 수 있다. (넓이) 미 입력 시 화면 크기를 똑같이 분할한다. (파일명) 미 입력 시 현재 작업중인 파일로 분할한다. |
<Ctrl> + W + N | 화면을 가로로 분할하고 새 파일에서 작업한다. |
<Ctrl> + W + S | 작업 중인 파일을 가로로 분할 한다. |
<Ctrl> + W + V | 작업 중인 파일을 세로로 분할 한다. |
<Ctrl> + W + W | 분할된 화면에서 커서를 차례로 이동 한다. |
<Ctrl> + W + + | 분할된 화면의 높이를 크게한다. |
<Ctrl> + W + - | 분할된 화면의 높이를 작게한다. |
<Ctrl> + W + = | 분할된 화면의 높이를 똑같이한다. |
z + (숫자) | 분할된 화면의 높이를 (숫자)로 조정한다. |
<Ctrl> + W + > | 분할된 화면의 넓이를 크게한다. |
<Ctrl> + W + < | 분할된 화면의 넓이를 작게한다. |
<Ctrl> + W + (방향) | 분할된 화면에서 커서를 (방향)으로 이동 한다. |
<Ctrl> + W + T | 분할된 화면 중 첫번째 화면으로 커서를 이동 한다. |
<Ctrl> + W + B | 분할된 화면 중 마지막 화면으로 커서를 이동 한다. |
<Ctrl> + W + O | 커서가 위치한 화면을 전체 화면으로 한다. |
<Ctrl> + W + R | 분할한 화면 화면의 순서를 바꾼다. |
<Ctrl> + W + H | 커서가 위치한 화면을 왼쪽으로 옮긴다. |
<Ctrl> + W + L | 커서가 위치한 화면을 오른쪽으로 옮긴다. |
<Ctrl> + W + J | 커서가 위치한 화면을 아래로 옮긴다. |
<Ctrl> + W + K | 커서가 위치한 화면을 위로 옮긴다. |
<Ctrl> + W + C | 커서가 위치한 화면을 닫는다. |
<Ctrl> + W + Q | 커서가 위치한 화면을 닫는다. (분할한 창이 없는 경우 종료한다.) |
파일 탐색기
vi 실행 시 vi . 또는 작업 중 : + 30vs .로 파일 탐색을 할 수 있다. 아래 명령은 파일 탐색 중 명령이다.
명령 | 설명 |
p | 커서가 위치한 항목 미리보기 |
O | 세로로 분할하여 탐색 중 커서가 위치한 항목 우측 창에서 열기 |
o | 탐색기 상단에서 파일 열기 |
i | 목록 보기 형식 변경 |
<Enter> | 커서가 위치한 항목 열기 |
- (Numpad 아님) | 상위 디렉토리 이동 |
상용구
상용구를 등록하거나 사용한다.
명령 | 설명 | 예제 |
: + ab (상용구명) (상용구) | 상용구 등록, (상용구) 미 입력 시 상용구 목록 보기 | : + ab nxp XmlParser xp = new XmlParser(); |
: + unab (상용구명) | 상용구 해제 | : + unab nxp |
(상용구명) | 상용구 사용 | nxp (편집 모드) |
자동완성
작업 파일내에 있는 문자열을 참조하여 자동완성 할 수 있다.
윈도우용 vi는 편집부분 아래에 목록을 표시한다.
윈도우용 vi는 편집부분 아래에 목록을 표시한다.
명령 | 설명 | 자동완성 전 | 자동완성 후 |
(문자열앞부분) + <Ctrl> + N | (문자열앞부분)으로 시작하는 문자열을 차례로 표시한다. | 1234567890 1234 |
1234567890
1234567890
|
레코딩
입력이 많은 명령을 레코딩하여 실행 할 수 있다.
레지스터명은 0-9, a-z, A-Z를 사용할 수 있다.
명령 중 처음 q는 레코딩 시작, 마지막 q는 레코딩 종료를 의미한다.
레코딩 되는 명령은 레코딩과 동시에 실행 된다.
레지스터명은 0-9, a-z, A-Z를 사용할 수 있다.
명령 중 처음 q는 레코딩 시작, 마지막 q는 레코딩 종료를 의미한다.
레코딩 되는 명령은 레코딩과 동시에 실행 된다.
명령 | 설명 | 예제 |
q + (레지스터명) + 명령 + q | 명령을 레코딩 한다. | q + a + 3x + q (3문자 잘라내기) |
@ + (레지스터명) | (레지스터명)레지스터에 저장된 명령을 실행한다. | @ + a (예제 기준 - 3문자 잘라내기) |
@ + @ | 가장 최근 실행 된 @ + (레지스터명) 을 실행한다. | @ + @ (예제 기준 - 3문자 잘라내기) |
버퍼
vi (파일명1) (파일명1) 등으로 여러 파일을 열었을 때 또는 작업 중 vi (파일명)으로 작업 파일을 변경한 경우 사용
명령 | 설명 |
<Ctrl> + ^ | 이전 작업 파일로 이동 |
: + next | 다음 파일로 이동 |
: + prev | 이전 파일로 이동 |
: + buffers 또는 ls | 열려있는 파일 목록 보기 |
: + buffer + (버퍼번호) | 버퍼 목록 중 (버퍼번호)파일로 이동 |
비주얼 모드
비주얼 모드 상태에서 명령을 실행 한다.
명령 | 설명 | 실행 전 | 실행 후 | 레지스터 내용 | 파일 내용 |
y | 선택 부분 복사 | 1234567890 |
1234567890
|
234 |
|
x | 선택 부분 잘라내기 | 1234567890 |
1567890
|
234 |
|
c | 선택 부분 잘라내기 + 삽입 | 1234567890 |
1567890 |
234 |
|
> | 선택 부분 들여쓰기 늘임 | 1234567890 2345678901 3456789012 |
1234567890
2345678901
3456789012
|
||
< | 선택 부분 들여쓰기 줄임 | 1234567890 2345678901 3456789012 |
1234567890
2345678901
3456789012
|
||
: + w (파일명) | 선택 부분 파일로 저장 (: 입력 시 자동으로 :'<,'>가 표시됨) | 1234567890 2345678901 3456789012 |
1234567890
2345678901
3456789012
|
1234567890 2345678901 |
폴딩
비주얼 블록을 사용하여 작업 파일 일부분을 접을 수 있다.
명령 | 설명 | 폴딩 전 | 폴딩 후 |
(블럭지정) + zf | 지정된 블럭에 해당하는 줄을 접기 | 1234567890 2345678901 3456789012 |
+--- 2 줄: 1234567890----- 3456789012 |
zo 또는 <Space> 이 외 다수 | 접힌 줄을 열기 | ||
zR | 작업 파일 내 모든 접힌 줄을 열기 |
파일
파일을 열거나 저장한다.
명령 | 설명 |
: + e (파일명) | (파일명) 파일을 열기 |
: + w (파일명) | 작업 내용을 (파일명)에 저장. (파일명) 미 입력 시 현재 작업 중인 파일에 저장 |
: + q | 작업을 종료 |
: + q! | 수정사항을 저장하지 않고 작업을 종료 |
: + x | : + wq와 동일 |
ZZ | : + wq와 동일 |
설정
옵션을 설정할 수 있다.
설정한 옵션은 no(옵션명) 으로 OFF 할 수 있다. (예: : + set nonumber
설정한 옵션은 no(옵션명) 으로 OFF 할 수 있다. (예: : + set nonumber
명령 | 약어 | 설명 |
: + set number | : + set nu | 줄 번호 보기 |
: + set autoindent | : + set ai | 자동 들여쓰기 |
: + set backup | : + set bk | 백업파일 생성하지 않음 |
: + set history=100 | u명령으로 작업취소를 할 수 있는 수 | |
: + set hlsearch | : + set hls | 검색 결과 하이라이트 |
: + set ignorecase | 검색 시 대소문자 구분 안함 | |
: + set incsearch | : + set is | 검색어 입력 시 점진 검색 |
: + set laststatus=(숫자) | : + set ls=(숫자) | 최종상태 기억하기(하단 파일명 표시) |
: + set shiftwidth=(숫자) | : + set sw=(숫자) | 들여쓰기 크기 |
: + set showmatch | : + set sm | 일치하는 괄호 등을 표시 |
: + set smartindent | : + set si | 좀더 지능적인 자동 들여쓰기 |
: + set tabstopp=(숫자) | : + set ts=(숫자) | Tab 입력 시 화면에 표시할 크기 |
: + set wrap | 자동 줄 바꿈 | |
: + Source (파일경로) | 저장된 설정파일 설정 |
'Linux' 카테고리의 다른 글
Putty 한글 (4) | 2009.04.30 |
---|---|
[Linux] cp 에서 강제로 덮어쓰기가 안될 때 (5) | 2009.04.23 |
파일내용으로 검색 (0) | 2009.04.18 |
find 명령어 pattern 에서 or 검색 (0) | 2009.04.18 |
putty 에서 한글보기 (0) | 2009.04.18 |