1. 상태
입력상태 <-> 명령상태 <-> Ex모드
명령 상태 - 처음 vi를 실행했을 때, 입력/EX 상태에서 ESC
입력 상태 - 실제로 타이핑을 하는 상태. 문서를 작성하게되는 상태, 명령상태에서 a,i,o등의 키
Ex 모드 - 각종 치환 파일 저장, 설정드으이 작업을 수행. 명령상태에서 ':' 눌러 들어오고 esc를 눌러 명령상태로
2. 명령 상태에서의 명령어
- 이동관련
기본적으로 vi에디터는 입력상태가 아닌 명령상태에서 커서이동을 하도록 되어있다.
k |
커서를 위로 움직임 |
j |
커서를 아래로 움직임 |
h |
커서를 왼쪽으로 움직임 |
l |
커서를 오른쪽으로 움직임 |
- |
커서를 줄의 처음으로 옮김 |
e, E |
다음단어의 끝으로, 문자단위 이동 |
w, W |
다음단어의 처음으로, 문자단위 이동 |
$ |
줄의 마지막으로 |
0 |
줄의 처음으로 |
^ |
줄의 처음으로(공백이 아닌 처음시작되는 문자) |
Shift+g |
문서의 마지막으로 이동한다. |
gg, 1g |
문서의 처음으로 이동한다. 1대신 다른 숫자를 입력하면 해당 숫자의 라인으로 이동한다. |
), ( |
다음, 이전 문장의 처음으로 |
}, { |
다음, 이전문단의 처음으로 |
]], [[ |
다음, 이전 구절의 처음으로 |
- 화면 이동 관련
ctrl + F |
한 화면 을 앞으로 스크롤 |
ctrl + B |
한 화면 을 뒤로 스크롤 |
ctrl + D |
반 화면 을 앞으로 스크롤 |
ctrl + U |
반 화면 을 뒤로 스크롤 |
ctrl + E |
한줄 앞으로 스크롤 |
ctrl + Y |
한줄 뒤로 스크롤 |
Shift + h |
화면의 맨 윗줄로 |
Shift + m |
화면의 중간줄로 |
Shift + l |
화면의 맨 아랫줄로 |
-입력관련 명령어
i |
현재위치에서 삽입 |
I |
현재줄의 처음위치에서 삽입 |
a |
현재위치에서 한칸앞으로 이동해서 삽입 |
A |
현재줄의 마지막위치에서 삽입 |
o |
새로운 줄을 커서 아래에 연다 |
O |
새로운 줄을 커서 위연다 |
s |
현재 위치의 문자를 지우고 입력모드로 들어간다. |
S |
현재위치의 라인을 지우고 입력모드로 들어간다. |
-편집 관련 명령어
y |
한줄 복사 |
y[n] |
현재 라인에서부터 n라인만큼 복사 |
p |
복사된 내용 붙이기 |
yw |
커서가 있는 단어 복사 |
yy |
커서가 있는 줄을 복사 |
x,dl |
커서위치의 글자 삭제 |
X |
커서 바로 앞의 글자 삭제 |
dw |
한 단어를 삭제 |
d0 |
커서 위치부터 행 처음까지 삭제 |
D, d$ |
커서 위치부터 행 끝까지 삭제 |
dd |
커서가 있는 행을 삭제 |
dj |
커서가 있는 행과 그 다음 행 삭제 |
dk |
커서가 있는 행과 그 앞 행 삭제 |
J |
현재 행의 개행문자를 제거 |
u |
언도 |
. |
리도 |
-블럭 명령어
v |
단어단위로 블럭지정이 가능하다. 블럭범위는 이동명령인 'hjkl' 로 원하는 범위 만큼 지정할수 있다. |
Shift+v |
라인단위 블럭지정이다. 라인전체가 선택되며, 위아래 이동명령 'hj' 으로 범위 지정이 가능하다. |
Ctrl+v |
블럭단위 블럭지정이다. 4각형의 블럭지정이 가능하며 이동명령인 'hjkl' 로 원하는 범위를 지정할수 있다. |
3. EX모드에서의 명령어
- 문자열 찾기
/[찾고자하는 문자열] |
아래로가면서 문자열을 찾는다. |
?[찾고자하는 문자열] |
위로 올라가면서 문자열을 찾는다. |
n(N) | 다음(이전) 찾기 |
- 파일 저장 등
:e [filename] |
filename 으로 파일열기 |
:q, :q!, :wq |
종료, 강제종료, 저장후 종료 |
:w, :w [filename] |
현재파일명으로 저장, filename 로 저장 |
:<범위>w [filename] |
지정한 범위만 다른 파일로 저장 |
:e [filename] |
filename 을 편집하기 위해서 연다 |
ZZ |
지금파일을 저장하고 vim 을 종료한다. |
:f |
현재 작업중인 파일의 이름과, 라인수를 출력한다 |
기타 더욱 자세한 사항은 아래의 링크를 참조하자
http://shinluckyarchive.tistory.com/117
'OS > Linux' 카테고리의 다른 글
[linux] cron을 이용한 예약 작업 (crontab) (0) | 2013.04.19 |
---|---|
[linux] 리눅스 관리시 자주 쓰이는 명령어 개인적 정리 (0) | 2013.04.16 |
[linux] RunLevel 과 리눅스 부팅시 스크립트 자동실행 (0) | 2013.04.16 |
[Linux] BitNami Stack을 이용한 APM 환경 설정 + phpmyadmin (0) | 2013.04.15 |
[Linux] VMplayer 에서 Ubuntu 설치 후 SSH 접속하기 (0) | 2013.04.11 |