Based on (now archived) work of @shahinism. Thank you!
The official home of xontrib-fzf-widgets is now at https://github.com/laloch/xontrib-fzf-widgets.
This extension will add some fzf widgets to your xonsh shell that you can bind and use as follows:
- ssh: Search in /etc/ssh/ssh_config or ~/.ssh/config items and issue ssh command on the chosen item.
- history insert: Search in all history entries and insert the chosen command to the prompt.
- find file: Find one or more files in the current directory and its sub-directories.
- find directory: Similar to the previous one, but intended to only search for directories.
Install the package:
pip install xontrib-fzf-widgetsEnable it by adding fzf-widgets to your ~/.xonshrc file:
xontrib load fzf-widgetsAnd set your desired keybindings for each widget in ~/.xonshrc file or set it to None to disable it:
$fzf_history_binding = "c-r" # Ctrl+R
$fzf_ssh_binding = "c-s" # Ctrl+S
$fzf_file_binding = "c-t" # Ctrl+T
$fzf_dir_binding = "c-g" # Ctrl+GYou can find the names of various keys here in python-prompt-toolkit.
Other configuration variables:
$fzf_find_command: A command used by fzf to search for files.$fzf_find_dirs_command: A command used by fzf to search for directories.
$fzf_find_command = "fd"
$fzf_find_dirs_command = "fd -t d"- If fzf shows garbled file names like
[1;38;5;63maur[0m, those extra characters are terminal control codes. That most probably means your file finder is set up to produce colorized output. You can either change your$fzf_find_commandand$fzf_find_dirs_commandto remove the coloring or add--ansiswitch to your$FZF_DEFAULT_OPTSenvironment variable if you want to preserve the colors. Seeman 1 fzffor details.
