Introdução ao fzf no Arch Linux

3

Acabei de instalar o fzf no Arch Linux 4.13.11 usando pacman -S fzf .

Do bash, posso chamar fzf , o que me permite selecionar arquivos (usando Ctrl + n e Ctrl + p ) no diretório atual e em seus subdiretórios.

Isso é legal, mas eu gostaria de ter algum tipo de integração.

Para onde eu vou daqui?

    
por Matthias Braun 11.11.2017 / 16:29

1 resposta

4

Ligações de teclas bash padrão

Usando whereis fzf , encontrei os arquivos do fzf para a integração do bash em usr/share/fzf :

completion.bash
key-bindings.bash

Depois de source ing os dois arquivos, isso habilita um par de atalhos para o bash: Por exemplo, eu posso pressionar Ctrl + t para procurar arquivos no diretório atual e Ctrl + r para pesquisar o histórico de comandos.

Para encontrar e mudar para um diretório, existe Alt + c .

Para tornar essas associações de chaves persistentes, adicionei-as ao meu .bashrc :

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

Personalização

Uma customização que acho útil está mostrando uma prévia do arquivo ao usar o fzf (eu coloquei isso no meu .bashrc também):

# 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'"

Conclusão do caminho

Fora da caixa, o fzf oferece suporte à conclusão de caminho difuso para alguns comandos codificados como cd , ls e vim .

Por exemplo, inserir vim ** Tab no bash inicia uma busca difusa no diretório atual e abre o arquivo selecionado com Vim 1 .

Isso é muito útil, mas eu gostaria de abrir, por exemplo, PDFs da mesma maneira. Você pode ativar isso adicionando a seguinte linha a .bashrc :

complete -o bashdefault -o default -F _fzf_path_completion zathura

Aqui, zathura é meu visualizador de PDF; você pode substituí-lo com o visualizador de documentos de sua escolha.

Observe que a conclusão do caminho difuso funciona para todos os caminhos, não apenas para o diretório atual:

vim ~/**

e, em seguida, pressionar a tecla Tab irá procurar um arquivo em seu diretório pessoal e, em seguida, abri-lo no Vim.

Integração com o Vim

Aqui estão alguns atalhos de teclado do meu .vimrc para usar o fzf dentro de uma sessão do Vim:

" 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>

Pré-requisito para tudo o que é o plug-in fzf Vim ; Eu instalei com o Vundle colocando isso no meu .vimrc :

Plugin 'junegunn/fzf.vim'

e depois chamando :PluginInstall do Vim.

Aqui está uma lista dos comandos fzf que você pode chamar do Vim.

Indo mais longe

Para uma combinação poderosa de fzf, Vim e Tmux, confira post de blog de Keegan Lowenstein (eu tem a configuração --preview de lá).

Aqui estão algumas idéias sobre como configurar a integração do shell do fzf.

Você pode encontrar mais exemplos de configuração do fzf em readme do fzf e em seu wiki .

1 Se você se deparar com arquivos de busca difusa e depois abri-los muito no Vim, você pode criar um atalho para isso usando este pedaço de .bashrc .

    
por 11.11.2017 / 16:29

Tags