2 minute read

hlissner/evil-snipe 패키지를 Henrik Lissner가 만들었다. Doom Emacs를 만든 사람이다. 그래서인지 Doom Emacs에 디폴트로 포함되어 있다. 익숙해지면 편리할 것 같아서 친해질 겸 정리해 본다.

제공하는 기능은 다음과 같다. 현재 줄 찾기 후 확장. s, S 키로 연속된 두 문자 포함 찾기. x, X 키로 연속된 두 문자 앞까지 operator 모드에서 사용.

찾기 범위 - ;, ,

f/F, t/T 키로 현재 라인에서 문자를 찾을 수 있다. 찾고 난 뒤에는 ; 키로 앞으로 반복해서 찾고 , 키로 뒤로 반복해서 찾을 수 있다. 찾기와 반복 찾기 범위를 설정할 수 있다.

현재 줄에서 찾고 보이는 범위로 확장해서 반복 찾기를 하는 디폴트 값을 그대로 사용하고 있다. evil-snipe-scope 변수와 evil-snipe-repeat-scope 변수로 범위를 변경할 수 있다.

첫 번째 문장 제일 앞 문자에 커서가 있다.

The quick Brown fox jumps over the lazy dog.
^
The five boxing wizards jump quickly.

fu 키를 누른다.

The quick Brown fox jumps over the lazy dog.
     ^
The five boxing wizards jump quickly.

; 키를 누른다.

The quick Brown fox jumps over the lazy dog.
                     ^
The five boxing wizards jump quickly.

한 번 더 ; 키를 누른다. vim 기본 패키지 상태에서는 line 단위로만 찾기 때문에 더 이상 커서 이동을 하지 않는다. 하지만 evil-snipe 패키지를 사용하기 때문에 범위를 확장해서 찾는다.

The quick Brown fox jumps over the lazy dog.

The five boxing wizards jump quickly.
                         ^

F 는 반대로 찾는다. Fi

The quick Brown fox jumps over the lazy dog.

The five boxing wizards jump quickly.
                 ^

t 는 입력한 문자 바로 이전으로 이동한다. T 는 뒤로 검색한다. 아래는 tu 를 입력한 결과다.

The quick Brown fox jumps over the lazy dog.

The five boxing wizards jump quickly.
                        ^

찾는 글자 수와 관계없이 버퍼 대상으로 찾을 때, / 키를 눌렀다. 이제 범위를 확장할 수 있으니 f/F, t/T 키 활용도가 증가했다.

두 문자 매칭 이동 - s/S

s/S 키를 누르면 키 입력을 추가로 두 개를 받는다. 문자 하나만 받는 f/F 키를 두 문자를 받게 한 기능이다. 아직까진 완전히 손에 익진 않았고 가끔 생각날 때마다 한 번씩 쓰기는 한다.

커서가 첫 번째 문장 제일 앞에 글자인 T 에 있을 때, sum 키를 누르면

The quick Brown fox jumps over the lazy dog.
                     ^
The five boxing wizards jump quickly.

; 반복 찾기 키를 누르면

The quick Brown fox jumps over the lazy dog.

The five boxing wizards jump quickly.
                         ^

S 는 반대로 이동한다.

두 문자 이전까지 - operator mode에서 x/X

d 키를 누르면 이후에 지울 범위를 받는다. operator mode로 변환되는 것이다. x/X 키는 연속된 두 글자 이전까지를 범위로 잡는다.

The quick Brown fox jumps over the lazy dog.
           ^
The five boxing wizards jump quickly.

위처럼 r 문자에 커서가 있을 때, dxov 키를 누르면

The quick Bover the lazy dog.
           ^
The five boxing wizards jump quickly.

처음으로 찾은 ov 문자 앞까지 지운다. X 키는 x 키와 반대로 커서 이전을 찾는다.

마치며

찾기 범위 변수인 evil-snipe-scope 와 반복 찾기 변수인 evil-snipe-repeat-scope 를 분리한 건 좋은 디자인 결정이다. 현재 줄에서 찾는 키 기능을 그대로 유지하면서 반복했을 때만 범위를 넓히는 확장을 할 수 있게 해준다. f/F, t/T 키를 눌렀을 때, 갑자기 먼 곳으로 이동해서 놀라는 걸 막아준다.

그러고 보니 반복 찾기가 현재 줄을 넘어가서 찾는데, evil 기능이겠거니 하면서 쓰고 있었다. 확실히 편하다. s/S, x/X 키가 유용하지만 아직은 손에 익지 않았다. 존재 자체를 매번 까먹게 된다. 흔한 글자를 찾을 때, 두 글자로 찾을 수 있는 s/S 키를 요긴하게 쓸 수 있다.

C-x C-s C-x C-c