This project is deprecated.
Please use zeno.zsh.
fzf-completion plugin
WARNING: This project is in beta stage. Any changes are applied without announcements.
The completion for the configured command is switched to completion using fzf.
Example:
$ git add <Tab>
Git Add Files> ...
Some useful fzf-based ZLE widgets are provided.
- fzf-cd
- fzf-ghq
- fzf-grep-vscode
- fzf-history-selection
Default keybind is
bindkey '^r' fzf-history-selection
bindkey '^x^c' fzf-cd
bindkey '^x^g' fzf-ghq
bindkey '^x^v' fzf-grep-vscode
To use fzf-tmux in tmux session, set FZF_PREVIEW_ENABLE_TMUX
to 1. (Default: 0)
To disable this setting, set FZF_PREVIEW_DISABLE_DEFAULT_BIND
to 1.
WIP
- sharkdp/bat: A cat(1) clone with wings.
- ogham/exa: A modern version of ‘ls’.
- sharkdp/fd: A simple, fast and user-friendly alternative to 'find'
- BurntSushi/ripgrep: ripgrep recursively searches directories for a regex pattern
- x-motemen/ghq: Remote repository management made easy
- Visual Studio Code - Code Editing. Redefined
zinit ice lucid depth"1" blockf
zinit light yuki-ycino/fzf-preview.zsh
or
$ git clone https://github.com/yuki-ycino/fzf-preview.zsh.git
$ cat "source /path/to/dir/fzf-preview.zsh" >> ~/.zshrc
bindkey '^i' fzf-or-normal-completion
-
git
- add
- commit --fixup
- branch (-d|-D|-m|-M) (--merged|--remotes)
- log
- diff (--color-words)
- diff (--color-words) --
- checkout [commit]
- checkout [commit] --
- checkout (-t|--track)
- restore
- restore --source
- restore --source [commit]
- switch
- rebase (-i|--interactive) (--autostash)
- merge
- revert
- stash (show|pop|apply|drop)
- cherry-pick
-
gh
- issue view (--web)
- pr view (--web)
- checkout
FZF_PREVIEW_DISABLE_DEFAULT_SETTING=1 # If you want to disable the default settings
The default configuration directory is ${XDG_CONFIG_HOME}/fzf-preview.zsh
.
It is also possible to set FZF_PREVIEW_USER_CONFIG_DIR
.
Refer to the fzf-preview.zsh/config
directory and add the symbol-{foo}
and command-{foo_bar}
files to the create a new directory in the XDG_CONFIG_HOME/fzf-preview.zsh/completion
directory.
The symbol and command are simple zsh scripts. Define the command in symbol using an associative array and put the fzf setting in the command file.
gh example
#autoload
symbols+=(
'(^foo bar $)' foo_bar
)
#autoload
typeset id="foo_bar"
typeset candidate_command="foo bar"
typeset -a fzf_options=(
"${FZF_PREVIEW_DEFAULT_SETTING}"
)
typeset -a bind=(
"${FZF_PREVIEW_DEFAULT_BIND}"
)
fzf_options+=("--bind=\"${(j:,:)bind}\"")
local fzf_command="fzf ${(j: :)fzf_options}"
typeset callback=("awk '{ print \$1 }'")
fzf-preview-complete $candidate_command $fzf_command $callback