본문 바로가기
[Developer]/Linux,Windows,macOS

VIM 간편하고 강력하게 다루기(vi editor 확장판)

by 해피빈이 2016. 4. 10.

이제껏 많은 시간 리눅스를 사용하면서 한번도 VI를 떠나 산적이 없는것 같다.

특히 vi만 이용한 적은 없으니 vim에 대해서 사용할 때마다 잘 쓰고 싶은 마음이 굴뚝같았지만..

차일피일 미루다가 몇년째...


이제는 좀 파워풀하게 쓸 필요가 있겠다싶어서 아래의 내용을 정리해본다.


더 필요한 내용이 있을지 모르지만, 최소한 아래의 내용은 내 머리가 아닌 손으로 다 익히고 난 뒤에 추가할 예정이다.


아래의 내용만 다 알고 제대로 사용해도 리눅스상에서 독자적으로 편집 및 활용이 가능할 것이라고 의심치 않는다.






강제로 저장 및 종료

:wq!


모드 전환

a 추가하는 모드로써 한칸 뒤로 이동하여 입력커서가 깜박인다.

A 현재 행의 맨 끝으로 이동 후 입력모드로 전환된다.

i 현재 커서에서 입력모드로 전환된다.

I 현재 행의 맨 앞으로 이동 후 입력모드로 전환된다.

o 현재 행 아래에 새로운 행을 하나 만든 후 입력모드로 전환된다.

O 현재 행 위에 새로운 행을 하나 만든 후 입력모드로 전환된다.

R 수정모드이므로 모든 글자는 덧씌워진다.


텐키리스를 고려한 커서 이동방법

h l : 좌우

j k : 상하

^ : 행의 맨 앞으로 이동

$ : 행의 맨 뒤로 이동

Ctrl + b : Page Up과 같음

Ctrl + f : Page Down과 같음

Ctrl + u : Page Up을 반만 하는 효과

Ctrl + d : Page Down을 반만 하는 효과

gg : 맨 위로 이동

G : 맨 아래로 이동

:행번호 : 원하는 행번호로 이동


삭제(레지스터에 현재 삭제된 내용이 저장된 상태)

x : 현재 커서에 위치한 문자 삭제

dd : 현재 행 삭제

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

J : 아래 행을 현재 행의 끝에 붙임(아래행의 앞부분 공백 제거)


레지스터의 내용을 붙여넣기

p : 현재 행에 붙여넣기

P : 현재 행의 위에 붙여넣기

숫자p : 레지스터의 내용을 숫자만큼 반복해서 붙여넣기


복사하기

yy, Y : 현재행을 레지스터에 복사하기

:reg : 현재 레지스터에 복사된 내용을 확인하기(가장 낮은 숫자일수록 최신 데이터)


되돌리기

u : undo기능. 되돌리기(맨 처음까지 계속 반복가능)

Ctrl + R : redo기능. 취소했던 명령 다시 실행하기


비주얼모드

v : 일반 비주얼모드로 현재 커서위치에서 블록 지정 시작

V : 비주얼 라인 모드로 현재 행부터 행단위로 블록 지정

Ctrl + v or Ctrl + q : 비주얼 블록 모드로 열 단위로 블록 지정


옵션관련

:set all : 옵션상태 확인하기

:set nu : 화면에 행 번호를 표시

:set ai : 자동 들여쓰기를 사용

cindent : c언어 스타일의 들여쓰기 사용

tw=value : 편집할 화면의 열 길이를 지정(0이면 비활성화)


문서관련

:syntax enable 문법표시 사용

:syntax clear 문법표시 사용하지 않음

:colorscheme <scheme> : 스킴색상 사용(Tab이나 Shift-tab을 누르면 목록순으로 보여줌)

:center : 중앙 정렬 사용

:right : 오른쪽 정렬 사용

:left : 왼쪽 정렬 사용

/문자열 : 문자열 검색(이후 반복검색은 n-앞으로, N-반대로 검색할수 있음)

/%s/^M//g : 윈도우 줄바꿈을 유닉스 줄바꿈으로 교체(^M은 Ctrl+v + Ctrl+m을 이용)

/범위s/찾을문자열/교체할문자열/옵션 : 문자열 교체

:set fencs=utf-8,korea : 두가지 인코딩 형식을 차례로 테스트하여 불러옴

:set fencs : 현재 파일의 인코딩 형식을 보여줌

% : 가장 가까운 괄호 짝으로 이동


창관련

:sp : 창을 위아래로 분할

:vs : 창을 좌우로 분할

Ctrl+w + [h,j,k,l] : 분할된 창에서 지정한 방향으로 이동

:e . : 현재 디렉토리를 탐색기처럼 보여줌(이동하여 enter하면 해당파일을 열 수 있음)


개발관련

{visual block} + = : visual로 지정한 범위만큼 들여쓰기를 재정렬함

편집중.. Ctrl+n, Ctrl+p, Ctrl+x : 낱말 자동완성 기능 사용(리스트 화면 출력됨)

:TOhtml : 현재 문서를 html 스타일로 변환시키기


이 밖에… 플러그인 추천

NERDtree를 이용하면 추가 기능을 이용할 수 있으나… 이것은 추가기능 필요시 활용하려고 함


(손에잡히는 vim -  참고하여 정리)


반응형

댓글