터미널을 위한 4가지 유용한 fzf 트릭

10179 단어 terminalfzf
환영합니다. 아마도 최고의 명령줄 도구 중 하나인 fzf를 사용하는 데 관심이 있으실 것입니다. Fzf는 퍼지 검색을 위한 명령줄 도구입니다. 글쎄요, 처음에는 매력적이지 않게 들릴 수도 있습니다. 그러나 나를 참아라. 그것은 매우 섹시하며, 그것은 당신의 삶을 당신의 껍질을 뛰어넘는 것을 더 쉽게 만들 것입니다.

터미널 내부에 있을 때마다 숨을 쉴 수 있는 4가지 트릭을 준비했습니다. 하지만 먼저 fzf를 설정하는 방법을 살펴보겠습니다.


Devon Janse van RensburgUnsplash의 사진

시작하기

If you haven’t already, you can install fzf using Git:

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

Or, if you are on macOS and want to skip all the fuss, you can use the following command:

brew install fzf

# To install useful key bindings and fuzzy completion:
$(brew --prefix)/opt/fzf/install
If you’re still having trouble, try out the fzf docs about installing .

마이크 체크

After installing, let’s go and try the basic fzf functionality. You can try to run fzf inside your terminal. You should see something like this:



퍼지 파인더는 터미널 창에서 실행되며 원하는 파일을 검색할 수 있습니다. 멋진 점은 입력할 때 파일을 인덱싱하는 경우 fzf라는 것입니다. 디렉토리가 파일 및 디렉토리와 관련하여 그다지 복잡하지 않은 경우 하단에 인덱싱이 표시되지 않습니다.

1. 퍼지 디렉토리 변경

The first trick today is using fzf to quickly cd into a directory. You can press ALT + c ( OPTION + c on macOS), and you will get an interactive prompt. Take a look below:



그것은 당신이 지금 있는 디렉토리 안에 있는 모든 디렉토리의 내용을 인덱싱하기 시작합니다. 원하는 디렉토리에 대한 입력을 시작하고 화살표 키로 필요한 디렉토리를 선택한 다음 Enter 키를 눌러 들어갈 수 있습니다. 편리하죠?

2. 역사를 통한 스우시

The second trick and one of my favorites, to be honest, is the ability to search through the command history with fzf. To get started, press CTRL + r in your terminal. Then, search for a command you typed previously. You should see something like this:



얼마 전에 입력한 명령으로 빠르게 이동할 수 있습니다. 나는 그것이 일상적으로 매우 유용하다고 생각합니다.

3. 무엇이든 자동 완성

You can utilize fzf almost anywhere in your terminal. One of the default features is to allow you to find the process to kill quickly. You can try it out by typing kill -9 and pressing TAB . If that doesn’t work, type kill -9 ** and TAB . You can now search for the process or multiple processes you want to end.

You can also quickly search through hostnames to SSH. To do this, type ssh ** and press TAB . You will get the interactive search to find the wanted hostname.

To sum up, here are some of the options you can use by default:

kill -9 **<TAB>

ssh **<TAB>
telnet **<TAB>

unset **<TAB>
export **<TAB>
unalias **<TAB>

If you get tired of typing ** , you can change the fzf trigger by setting FZF_COMPLETION_TRIGGER variable. For example:

# Use ~~ as the trigger sequence instead of the default **
export FZF_COMPLETION_TRIGGER='~~'
If you want to take this to the next step, try out the fzf-tab 플러그인. 저는 zsh와 oh-my-zsh를 사용하고 있으므로 설정이 매우 간단했습니다. 플러그인은 기본적으로 fzf를 기본 탭 완성에 "플러그인"합니다. 나는 당신이 그것을 시도하는 것이 좋습니다.

4. 파일을 선택하기 전에 미리보기

Another cool thing to try out is the preview feature of the fzf. It allows you to preview files before you open them. To access it, you need to pass --preview- to fzf. Let’s see it in action:



내가 호출하는 명령은 다음과 같습니다.

fzf --preview 'bat --style=numbers --color=always --line-range :500 {}'


그러나 원하는 모든 것을 사용자 정의할 수 있습니다. 내 명령은 bat , GitHub 에서 찾을 수 있는 cat 클론을 사용합니다. 다음과 같이 간단한 cat 명령을 사용할 수도 있습니다.

fzf --preview 'cat {}'


또는 이것을 조금 더 푸시하려면 특정 명령을 완료할 때 기본 미리보기 옵션을 설정할 수 있습니다. 다음과 같이 디렉토리 및 파일의 트리 보기를 표시할 수 있습니다.


tree 의 힘을 사용하여 비슷한 결과를 얻을 수 있습니다. brew install tree 를 사용하여 macOS에 설치해야 했습니다. 그런 다음 셸 초기화 시 로드할 _fzf_comprun 함수를 추가했습니다(.bashrc 또는 .zshrc 에 추가할 수 있음). 다음과 같이 표시됩니다.

_fzf_comprun() {
  local command=$1
  shift

  case "$command" in
    cd) fzf "$@" --preview 'tree -C {} | head -200' ;;
    *) fzf "$@" ;;
  esac
}


다른 경우에 다른 명령이 미리 보기를 표시하기를 원할 수 있으므로 원하는 경우 더 많은 명령으로 더 많은 케이스를 추가할 수 있습니다. 예를 들어, catbat는 파일에 대해서는 잘 작동하지만 SSH에 대한 디렉토리 및 호스트 이름을 미리 보기에는 작동하지 않습니다.

5. 보너스: Vim과 통합

If you’re already using Vim (or you’re planning), I must tell you that fzf fits with Vim perfectly. The fuzzy search, preview windows, and customization options are so lovely you’d going to wish to have it in every other situation.

If you’re interested in setting up Vim and fzf, check out my blog post about improving Vim workflow with fzf .

요약하면

fzf is a great tool to have in your toolbelt, especially if you’re dwelling inside the terminal. I hope this blog post taught you something new or inspired you to try some of these tricks.

If you liked what you read, consider subscribing to my newsletter 새 게시물이 올라올 때 업데이트됩니다. 또한 아래 Twitter에서 댓글을 달거나 좋아요를 누르거나 친구와 공유할 수 있습니다.

다음편에서 만나요, 건배.

좋은 웹페이지 즐겨찾기