fzf

by jethrokuan

jethrokuan / fzf

Ef-🐟-ient fish keybindings for fzf

497 Stars 55 Forks Last release: Not found MIT License 206 Commits 5 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Fzf

Integrate fzf functionality into fish! Includes handy functions to do the following using

fzf
  • command tab completion
  • search command history
  • find and cd into sub-directories
  • find and open files

All functions

  • are lazily-loaded to keep shell startup time down
  • have preset but configurable key bindings

Installation

With fisher

fisher add jethrokuan/fzf

With oh-my-fish

omf install https://github.com/jethrokuan/fzf

Requirements

About the fzf binary

This package will fail if the

fzf
binary is not detected in your
PATH
.

See the fzf documentation for instructions to install

fzf
on your system.

Usage

| Legacy | New Keybindings | Remarks | | ----------- | --------------- | ----------------------------------------------- | | Ctrl-t | Ctrl-o | Find a file. | | Ctrl-r | Ctrl-r | Search through command history. | | Alt-c | Alt-c | cd into sub-directories (recursively searched). | | Alt-Shift-c | Alt-Shift-c | cd into sub-directories, including hidden ones. | | Ctrl-o | Alt-o | Open a file/dir using default editor ($EDITOR) | | Ctrl-g | Alt-Shift-o | Open a file/dir using xdg-open or open command |

Legacy keybindings are kept by default, but these have conflict with keybindings in fish 2.4.0. If you want to use the new keybindings, enter the following into your terminal:

set -U FZF_LEGACY_KEYBINDINGS 0

You can disable default keybindings altogether by running:

set -U FZF_DISABLE_KEYBINDINGS 1

NOTE: On OS X, Alt-c (Option-c) types Γ§ by default. In iTerm2, you can send the right escape sequence with Esc-c. If you configure the option key to act as +Esc (iTerm2 Preferences > Profiles > Default > Keys > Left option (βŒ₯) acts as: > +Esc), then alt-c will work for fzf as documented.

Commands

| Variable | Remarks | Example | | ------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------- | |

FZF_FIND_FILE_COMMAND
| Modify the command used to generate the list of files |
set -U FZF_FIND_FILE_COMMAND "ag -l --hidden --ignore .git . \$dir 2> /dev/null"
or
set -U FZF_FIND_FILE_COMMAND "fd --type f . \$dir"
(
$dir
represents the directory being completed) | |
FZF_CD_COMMAND
| Similar to ^ | Similar to ^ | |
FZF_CD_WITH_HIDDEN_COMMAND
| Similar to ^ | Similar to ^ | |
FZF_OPEN_COMMAND
| Similar to ^ | Similar to ^ | |
FZF_PREVIEW_FILE_CMD
| Modify the command used to generate preview of files. |
set -U FZF_PREVIEW_FILE_CMD "head -n 10"
| |
FZF_PREVIEW_DIR_CMD
| Modify the command used to generate preview of directories. |
set -U FZF_PREVIEW_DIR_CMD "ls"
|

Variables

| Variable | Remarks | Example | | --------------------------- | ------------------------------------------------------------- | ----------------------------------------------------- | |

FZF_DEFAULT_OPTS
| Default options passed to every fzf command |
set -U FZF_DEFAULT_OPTS "--height 40"
| |
FZF_FIND_FILE_OPTS
| Pass in additional arguments to the fzf command for find file |
set -U FZF_FIND_FILE_OPTS "--reverse --inline-info"
| |
FZF_CD_OPTS
| Similar to ^ | Similar to ^ | |
FZF_CD_WITH_HIDDEN_OPTS
| Similar to ^ | Similar to ^ | |
FZF_REVERSE_ISEARCH_OPTS
| Similar to ^ | Similar to ^ | |
FZF_OPEN_OPTS
| Similar to ^ | Similar to ^ | |
FZF_COMPLETE_OPTS
| Similar to ^ | Similar to ^ | |
FZF_TMUX
| Runs a tmux-friendly version of fzf instead. |
set -U FZF_TMUX 1
| |
FZF_ENABLE_OPEN_PREVIEW
| Enable preview window open command. |
set -U FZF_ENABLE_OPEN_PREVIEW 1
|

FZF Tab Completions

This package ships with a

fzf
widget for fancy tab completions. Please see the wiki page for details.

Alternatives

  • fzf-fish-integration is a newer fzf plugin with very similar features. It lacks Tmux support and fzf tab completion but includes functions for searching git log and browsing shell variables using fzf. Additionally, it is more likely to be maintained going forward. You can read more about the differences between it and this plugin in the readme of
    fzf-fish-integration
    here.
  • The
    fzf
    utility ships with its own out-of-the-box fish integration. What sets this package apart is that it has a couple more integrations, most notably tab completion. They are not compatible so use one or the other.

License

fzf is MIT licensed. See the LICENSE for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.