
방금 설치했어요후지브Arch Linux 4.13.11에서 사용됩니다 pacman -S fzf
.
Bash에서 fzf
이것을 호출하여 현재 디렉터리와 그 하위 디렉터리에 있는 파일을 선택할 수 있습니다( Ctrl+ n및 Ctrl+ 사용).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>
이 모든 것의 전제는fzf
Vim 플러그인;설치했어요플러그이것을 내 안에 넣으세요 .vimrc
:
Plug 'junegunn/fzf.vim'
그런 다음 :PlugInstall
Vim에서 호출하세요.
이것은 목록입니다fzf
Vim에서 호출할 수 있는 명령.
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 저장소에 있습니다.
더 나아가
fzf
Vim, Vim 및 Tmux의 강력한 조합을 확인하려면 다음을 확인하세요.Keegan Lowenstein의 블로그 게시물( --preview
거기서 구성을 얻었습니다).
여기쉘 통합을 구성하는 방법에 대한 몇 가지 아이디어 fzf
.
fzf
더 많은 구성 예를 찾을 수 있습니다 .fzf
읽어보기 파일그리고 그 안에위키피디아.
1 파일을 검색한 후 Vim에서 여는 경우가 자주 발생하는 경우 다음을 사용하여 해당 파일에 대한 키 바인딩을 만들 수 있습니다.이 구역.bashrc
.