Fzf: Difference between revisions

From NixOS Wiki
imported>Jeffdik
Add how to enable fzf with fish
Unabomberlive (talk | contribs)
Home-manager integrations
 
(7 intermediate revisions by 6 users not shown)
Line 7: Line 7:
First install <code>fzf</code> in your profile, then use one of the following methods:
First install <code>fzf</code> in your profile, then use one of the following methods:


== bash ==
== Bash ==
To enable fzf in bash add the following line to .bashrc
=== With Home-manager ===
There is option to enable fzf bash integration
<syntaxhighlight lang="nix">
programs.fzf.enableBashIntegration = true;
</syntaxhighlight>
=== Without Home-manager ===
To enable fzf in bash add the following line to <code>$HOME/.bashrc</code>
<syntaxhighlight lang="bash">eval "$(fzf --bash)"</syntaxhighlight>


<syntaxhighlight lang="bash">if command -v fzf-share >/dev/null; then
== Zsh ==
  source "$(fzf-share)/key-bindings.bash"
You can enable fzf in [[zsh]].
fi</syntaxhighlight>
=== With Home-manager ===
There is option to enable fzf zsh integration
<syntaxhighlight lang="nix">
programs.fzf.enableZshIntegration = true;
</syntaxhighlight>
=== Without Home-manager ===
To enable fzf in bash add the following line to
<code>$HOME/.zshrc</code>
<syntaxhighlight lang="bash">
eval "$(fzf --zsh)"
</syntaxhighlight>


== zsh ==
== Fish ==
To enable fzf in zsh add the following line to .zshrc
To enable fzf in [[fish]].
=== With Home-manager ===
There is option to enable fzf fish integration
<syntaxhighlight lang="nix">
programs.fzf.enableFishIntegration = true;
</syntaxhighlight>
=== Without Home-Manager ===
To enable fzf in fish add the following line to <code>$HOME/.config/fish/functions/fish_user_key_bindings.fish</code>


<syntaxhighlight lang="bash">
<syntaxhighlight lang="fish">
if [ -n "${commands[fzf-share]}" ]; then
fzf --fish | source
  source "$(fzf-share)/key-bindings.zsh"
fi
</syntaxhighlight>
</syntaxhighlight>


== fish ==
= Examples =
To enable fzf in zsh, add the following to $HOME/.config/fish/functions/fish_user_key_bindings.fish


<syntaxhighlight lang="fish">
== Search all nix packages ==
function fish_user_key_bindings
 
  if command -s fzf-share >/dev/null
You can interactively search the list of available packages with:
    source (fzf-share)/key-bindings.fish
  end


  fzf_key_bindings
<syntaxhighlight lang="bash">
end
nix-env -qa | fzf
</syntaxhighlight>
</syntaxhighlight>
[[Category:Applications]]
[[Category:Shell]]

Latest revision as of 09:27, 19 December 2024

fzf is a general-purpose command-line fuzzy finder.

Shell extensions

fzf provides additional key bindings (CTRL-T, CTRL-R, and ALT-C) for shells

First install fzf in your profile, then use one of the following methods:

Bash

With Home-manager

There is option to enable fzf bash integration

programs.fzf.enableBashIntegration = true;

Without Home-manager

To enable fzf in bash add the following line to $HOME/.bashrc

eval "$(fzf --bash)"

Zsh

You can enable fzf in zsh.

With Home-manager

There is option to enable fzf zsh integration

programs.fzf.enableZshIntegration = true;

Without Home-manager

To enable fzf in bash add the following line to $HOME/.zshrc

eval "$(fzf --zsh)"

Fish

To enable fzf in fish.

With Home-manager

There is option to enable fzf fish integration

programs.fzf.enableFishIntegration = true;

Without Home-Manager

To enable fzf in fish add the following line to $HOME/.config/fish/functions/fish_user_key_bindings.fish

fzf --fish | source

Examples

Search all nix packages

You can interactively search the list of available packages with:

nix-env -qa | fzf