vi, vim 기본 명령어

2017.09.19 07:00




vi, vim 기본 명령어





vi의 모드



- 일반 모드 : 프로그램을 막 시작한 상태. vi의 명령키(i, a 등)를 기다리는 상태


- 입력 모드 : 텍스트를 입력하는 모드. 

               일반모드에서 i,a,o 등의 키입력으로 입력모드로 이동

               ESC키로 일반모드로 돌아감


- 명령행 모드 : 복잡한 명령을 입력하기 위한 모드

               일반모드에서 :, /, ? 등의 키 입력으로 명령행 모드로 이동

               ESC키로 일반모드로 돌아감




입력모드로 전환


a - append. 현재 커서 위치에서 한 칸 뒤로 이동하고 입력모드 전환

A - 현재 행 끝으로 이동 후 입력모드 전환

i - insert. 현재 커서 위치에서 입력모드 전환

I - 현재 행 맨 앞으로 이동 후 입력모드 전환

o - open line. 현재 행 아래 새로운 행을 하나 만들고 입력모드 전환

O - 현재 행 위에 새로운 행을 하나 만들고 입력모드 전환

R - Replace. 수정모드. 기존 글자 위에 덧쓰여진다




저장과 종료(명령행 모드에서)


:w - 저장

:wq - 저장 후 종료

:q! - 강제 종료(저장하지 않고)

:w filename - filename으로 파일 저장(사본 저장 기능)

:w ../filename - 부모 디렉토리에 파일 저장

:w! filename - 강제로 덮어쓰기





커서 이동


h, j, k, l - 순서대로 ←, ↓,↑,→ 화살표 기능 

[#]h,j,k,l - h,j,k,l 앞에 숫자가 있으면 그 숫자 칸 만큼 이동(10k)

^ - 행 맨 앞으로 이동

$ - 행 맨 뒤로 이동

Ctrl + B / Ctrl + F - Back/Forward 한 화면 위 / 아래 이동

Ctrl + U / Ctrl + D - Up/Down 화면의 절반(1/2)씩 위 / 아래로 이동

[#]G - 숫자에 해당하는 행으로 이동

       숫자가 생략되면 맨 아래 행으로 이동

gg - 첫번째 행으로 이동

     (vim에서만 가능. vi에서는 1G 입력해서 첫번째 행으로 이동)

:[#] - 일반모드가 아닌 명령행 모드에서 숫자의 행으로 이동




현재 위치 확인하기


:file - 명령행 모드에서 현재 파일에서 어느 위치에 커서가 있는지 확인

Ctrl + G - 일반 모드에서 현재 파일에서 어느 위치에 커서가 있는지 확인




복사 / 붙여넣기

yy - 현재 행 복사하기

dd - 현재 행 잘라내기(vim은 삭제한 것이 레지스터에 저장됨)

p - put. 현재 행에 붙여넣기

P - 현재 행 위쪽에 붙여넣기

:%y - 문서 전체 복사

:.,+10y - 현재 행부터 아래로 10행 복사




삭제하기


x - 커서가 위치한 문자(한 개) 삭제

dd - 현재 행 삭제

D - 현재 행 위치에서 현재 행의 끝부분까지 삭제

J - 아래 행을 현재 행위 뒤에 붙이기(현재 행의 어느 위치에서 입력해도 무관)


:d - 명령행 모드에서 현재 행 삭제

:[#]d - 숫자에 해당하는 행 삭제

:5,10d - 5~10행 삭제

:5,$d - 5행부터 맨 마지막까지 삭제


 


비주얼모드


마우스를 이용해서 블록을 잡을 수 있는 기능


v - 일반 비주얼 모드. 현재 위치에서부터 블록 설정 가능

V - 행 단위 비주얼 모드. 현재 행부터 행 단위로 블록 설정


vim의 경우 v나 V를 입력하면 화면 제일 아래 --VISUAL-- 표시됨





비주얼 모드와 행 단위 비주얼 모드는 v나 V를 입력하고 마우스로 범위를 지정하면 되지만

아래 그림처럼 열 단위로 블록을 설정하는 Visual BlockCtrl+V(또는 Ctrl + Q)로 지정하고 h,j,k,l 키보드로 범위를 지정할 수 있다.



저작자 표시 비영리 변경 금지
신고

또루아빠 Linux, Unix , , , , , , ,