til icon indicating copy to clipboard operation
til copied to clipboard

Practical Vim

Open raycon opened this issue 3 years ago • 0 comments

VIM 의 방식

Tip 1

. : 이전에 수행한 작업을 반복한다.

Tip 2

둘 이상의 명령을 압축해서 단일 키 명령으로 사용할 수 있다.

C    c$
s    cl
S    ^C
I    ^i
A    $a
o    A<CR>
O    ko

Tip 3

f{char} : 현재행에서 char 가 나타나는 위치를 검색하고 커서를 이동한다.

Tip 4

기능 동작 반복 되돌리기
내용 변경하기 {편집} . u
행에서 다음 문자 찾기 f{문자} / t{문자} ; ,
행에서 이전 문자 찾기 F{문자} / T{문자} ; ,
문서에서 다음 일치 찾기 /패턴<CR> n N
문서에서 이전 일치 찾기 ?패턴<CR> n N
치환 동작하기 :s/대상/치환 & u
연속 변경 실행하기 qx{변경}q @x u

Tip 5

* : 현재 커서 밑에 있는 단어를 검색한다

Tip 6

점 공식: 키 입력 한번으로 이동하고, 키 입력 한번(.)으로 실행하기

일반 모드

Tip 7

VIM의 기본 모드는 일반 모드

Tip 8

끼워넣기 모드에서 입력했던 모든 변경사항을 하나의 변경점으로 처리한다. > 덩어리 단위로 취소 가능

Tip 9

반복 가능한 명령어를 사용하는게 좋다.

  • daw : 단어 전체를 삭제한다.

Tip 10

  • <C-a> : 커서 아래에 있거나 오른쪽에 있는 숫자를 1 증가 시킨다.
  • <C-x> : 커서 아래에 있거나 오른쪽에 있는 숫자를 1 감소 시킨다.
  • 180<C-A> : 180 증가

Tip 11

실행하고, 반복하고, 되돌려라.

  • d2w : 두개의 단어를 삭제
  • 2dw : 단어를 두번 삭제
  • dw. : 단어를 한번 삭제하고 반복 > . 을 연속 입력해서 여러번 반복 가능

실행 횟수 vs 점 반복

  • 삭제 이후에 끼워넣기 모드로 들어간다면 실행 횟수를 지정하는게 낫다.
  • u 한번으로 삭제 후 입력을 되돌릴 수 있다.

Tip 12

오퍼레이터 + 모션 = 행동

트리거 효과
c 변경
d 삭제
y 레지스터로 복사하기
g~ 대소문자 변환하기
gu 소문자로 변환하기
gU 대문자로 변환하기
> 우측으로 탭 이동
< 좌측으로 탭 이동
= 자동으로 들여쓰기
! {모션}에 해당하는 행을 외부 프로그램을 사용해 여과(필터)
  • 오퍼레이터를 반복해서 입력하면 현재 행 을 대상으로 동작한다.
  • gU 의 경우 gUgU로 작동하지만 약식 표기 gUU를 이용할 수 있다. (guu도 가능)
  • 오퍼레이터를 입력하면 오퍼레이터-대기 모드가 활성화된다.

커스텀 오퍼레이터를 사용할 수 있다.

  • https://github.com/tpope/vim-commentary
  • commentary 플러그인이 사용하는 gc 가 커스텀 오퍼레이터다.
  • :h :map-operator

커스텀 모션을 사용할 수 있다.

  • https://github.com/kana/vim-textobj-entire
  • ie, ae 모션을 추가
  • gg=G=ae 로 대체
  • gcae 도 가능
  • :h omap-info

Tip 13

끼워넣기 모드에서

  • <C-h>: 앞에 있는 글자 하나 제거하기 (백스페이스와 동일)
  • <C-w>: 앞에 있는 단어 하나 제거하기
  • <C-u>: 행의 시작 부분까지 제거하기

Tip 14

끼워넣기 모드에서 일반 모드로 전환하기

  • <Esc>: 일반 모드로 전환하기
  • <C-[>: 일반 모드로 전환하기
  • <C-o>: 끼워넣기-일반 모드로 전환하기
  • 끼워넣기-일반 모드는 명령 하나를 실행할 수 있다.

끼워넣기 모드에서 <C-o>zz를 입력하면 현재 행을 화면 중앙으로 옮긴다.

raycon avatar Nov 19 '21 05:11 raycon