MacOS

fzf를 그냥 저냥 써보자

seungdols 2017. 12. 10. 22:16

fzf 사용기

터미널을 좋아하는 저는 터미널이 있는 환경을 좋아합니다.

(좋아만 할뿐, 잘 못쓰는 경량-유저..)


리눅스 환경도 사실, 거금을 들여 저의 전재산인 맥북을 사기 이전에는 우분투를 썼습니다.

그 당시에는 terminator라는 terminal을 즐겨 썼습니다.

이제는 iterm2를 즐겨쓰는데요.

fzf라는 녀석을 알게 되어 정리를 하고자 합니다.

fzf를 설치하는 방법은 github에 잘 나와있지만, 소개합니다.

설치

vim의 god로 유명하신분이 Go lang이라는 언어로 포팅한 프로젝트입니다.

상당히 빠른걸로 알고 있습니다. 아마 Go의 고루틴 능력때문일까요?..?!!

homebrew or linuxbrew

brew install fzf

# To install useful key bindings and fuzzy completion:
$(brew --prefix)/opt/fzf/install

git을 이용한 방법


git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install


어떻게 쓰느냐!?

홈페이지에 자세하게 설명이 되어 있습니다.

대충 정리를 해보면 이렇습니다.

그냥 저냥 사용법

key binding

  • ctrl + t : 커맨드 상에서 파일들 혹은 디렉토리를 찾을때!

  • ctrl + r : 커맨드상에서 입력했던 history search

  • alt + c : 이건 나는 안된다...ㅠ

search syntax

  • weekly-news > 퍼지 매칭 (도대체 fuzzy란 표현이 정확히 무슨뜻인지 모름..)

  • ^weekly-news > 접두사 완전 매칭

  • .md$ > 접미사 완전 매칭

  • 'md > 완전 매칭

  • !.md > 역완전매칭

  • !.md$ > 역-접미사 완전 매칭

즉, exact-matching에 대한 조합이 가능하다는 표현으로 이해하면 될 것 같다.

사실, 깃허브의 wiki pages에 다양한 방법의 examples들이 있다.

골라서 사용하면 좋을 것 같다. 그치만, 오히려 이것저것 쓰기보다 pure한 상태로 써보고, 좋은 기능?! 축약된 function으로 있었으면 하는 것들을 골라서 쓰는 것이 좋아보인다.

추가적으로 파일들의 내용을 볼 수 있는 옵션을 지원하는데, preview에 하이라이팅을 추가한 command를 github page에 소개하는데 아래와 같다.


fzf --preview '[[ $(file --mime {}) =~ binary ]] &&
                echo {} is a binary file ||
                (highlight -O ansi -l {} ||
                coderay {} ||
                rougify {} ||
                 cat {}) 2> /dev/null | head -500'

나는 이걸 zshrc 파일에 넣어두고 사용한다.

아래와 같이 말이다.


zsh-interactive-cd 라는 녀석이 있는데, fasd를 쓰더라도 cd를 쓰는 경우가 생길때, 좋을 것 같다.

그럼 완전 이쁘게 나온다. ^^ Vim계의 신 junegunn님..찬양!🙌

반응형