Arch Linux에서 fzf 시작하기

Arch Linux에서 fzf 시작하기

방금 설치했어요후지브Arch Linux 4.13.11에서 사용됩니다 pacman -S fzf.

Bash에서 fzf이것을 호출하여 현재 디렉터리와 그 하위 디렉터리에 있는 파일을 선택할 수 있습니다( Ctrl+ nCtrl+ 사용).p

괜찮습니다. 하지만 Bash 통합이 필요합니다.

난 어디로 가야 해?

답변1

기본 Bash 키 바인딩

를 사용하여 다음에서 Bash 통합용 파일을 찾았 whereis fzf습니다 .fzf/usr/share/fzf

completion.bash
key-bindings.bash

뒤쪽에source이 두 파일을 편집하면 Bash에 대한 여러 키 바인딩이 활성화됩니다. 예를 들어 Ctrl+를 누르면 t현재 디렉터리의 파일을 검색할 수 있고 Ctrl+를 누르면 r명령 기록을 검색할 수 있습니다.

디렉토리를 찾고 변경하려면 Alt+ 를 사용하세요 c.

이러한 키 바인딩을 지속성으로 만들기 위해 다음 키 바인딩을 추가했습니다 .bashrc.

source /usr/share/fzf/completion.bash && source /usr/share/fzf/key-bindings.bash

맞춤화

제가 찾은 유용하다고 생각되는 사용자 정의는 사용 시 파일 미리보기를 표시하는 것입니다 fzf( .bashrc이 내용도 내 파일에 넣었습니다).

# When selecting files with fzf, we show file content with syntax highlighting,
# or without highlighting if it's not a source file. If the file is a directory,
# we use tree to show the directory's contents.
# We only load the first 200 lines of the file which enables fast previews
# of large text files.
# Requires highlight and tree: pacman -S highlight tree
export FZF_DEFAULT_OPTS="--preview '(highlight -O ansi -l {} 2> /dev/null ||
cat {} || tree -C {}) 2> /dev/null | head -200'"

경로 완성

기본적으로 fzf여러 가지 퍼지 경로 완성을 지원합니다.하드코딩된cd, ls및 와 같은 명령입니다 vim. 이러한 명령 목록을 보려면 를 실행하세요 complete | grep _fzf.

예를 들어 vim ** TabBash를 입력하면 현재 디렉터리에서 퍼지 검색이 시작되고 Vim 1을 사용하여 선택한 파일이 열립니다 .

이것은 훌륭하게 작동하지만 PDF를 같은 방식으로 열고 싶습니다. 다음 줄을 추가하여 이 기능을 활성화할 수 있습니다 .bashrc.

_fzf_setup_completion path zathura

여기,zathura내 PDF 뷰어입니다. 원하는 문서 뷰어로 교체할 수 있습니다.

퍼지 경로 완성은 현재 디렉터리뿐만 아니라 모든 경로에 대해 작동합니다.

vim ~/**

그런 다음 Tab퍼지 검색을 클릭하여 홈 디렉터리에 있는 파일을 Vim에서 엽니다.

이것읽어보기 파일fzf경로 완성 활성화에 대한 더 많은 예를 제공합니다.

경로가 아닌 다른 것을 완료하세요.

fzf퍼지 검색 파일에만 국한되지 않습니다. 예를 들어:

  • ssh ** Tab일단 입력하면 및의 호스트 이름과 IP 주소 목록 이 표시됩니다 .~/.ssh/config~/.ssh/known_hosts
  • kill ** Tab프로그램 이름의 일부를 입력하여 실행 중인 프로그램을 종료할 수 있습니다 .

프로세스 ID가 필요한 모든 명령에 프로세스에 대한 유사 항목 검색을 추가할 수도 있습니다.

_fzf_setup_completion proc top pmap pstree

top -p ** Tab프로세스를 선택하고 다음을 통해 리소스 사용량을 관찰 해 보세요 .top.

이 사용자 정의에는 다음이 포함됩니다.pmap그리고pstree이러한 명령을 더 편리하게 만들려면 프로세스 ID를 입력하는 대신 프로세스 이름을 퍼지 검색하세요.

빔 통합

Vim 세션에서 사용하는 .vimrc몇 가지 키 바인딩은 다음과 같습니다.fzf

" Search and switch buffers
nmap <leader>b :Buffers<cr>
" Find files by name under the current directory
nmap <leader>f :Files<cr>
" Find files by name under the home directory
nmap <leader>h :Files ~/<cr>
" Search content in the current file
nmap <leader>l :BLines<cr>
" Search content in the current file and in files under the current directory
nmap <leader>g :Ag<cr>

이 모든 것의 전제는fzfVim 플러그인;설치했어요플러그이것을 내 안에 넣으세요 .vimrc:

Plug 'junegunn/fzf.vim'

그런 다음 :PlugInstallVim에서 호출하세요.

이것은 목록입니다fzfVim에서 호출할 수 있는 명령.

Vim에서 텍스트를 작성할 때 경로 완성도 가능합니다:

imap <c-x><c-f> <plug>(fzf-complete-path)

CtrlVim에서 연 파일에 "~/"를 쓰고 + x+ 를 눌러보세요 f. 퍼지 검색을 통해 파일을 선택하면 해당 경로가 Vim의 커서 위치에 추가됩니다. 보다읽어보기 파일이러한 매핑에 대한 추가 정보

프로젝트 파일 검색

특히 소프트웨어를 개발할 때 특정 프로젝트의 파일 간에 전환하는 것을 좋아합니다. 프로젝트가 버전 제어를 위해 Git을 사용한다고 가정하면 다음은 검색 파일을 퍼지하는 바인딩입니다.이름프로젝트 내에서 선택한 파일을 엽니다.

nmap <leader>gr :GFiles! --cached --others --exclude-standard<cr>

바라보다이 토론파일을 퍼지 검색하는 방법콘텐츠현재 Git 저장소에 있습니다.

더 나아가

fzfVim, Vim 및 Tmux의 강력한 조합을 확인하려면 다음을 확인하세요.Keegan Lowenstein의 블로그 게시물( --preview거기서 구성을 얻었습니다).

여기쉘 통합을 구성하는 방법에 대한 몇 가지 아이디어 fzf.

fzf더 많은 구성 예를 찾을 수 있습니다 .fzf읽어보기 파일그리고 그 안에위키피디아.

1 파일을 검색한 후 Vim에서 여는 경우가 자주 발생하는 경우 다음을 사용하여 해당 파일에 대한 키 바인딩을 만들 수 있습니다.이 구역.bashrc.

관련 정보