tmux-dev-env-configuration/dotfiles/.config/fish/functions/__fzf_search_shell_variable...

22 lines
1000 B
Fish

function __fzf_search_shell_variables --description "Search and inspect shell variables using fzf. Insert the selected variable into the commandline at the cursor."
# Make sure that fzf uses fish to execute __echo_value_or_print_message, which
# is an autoloaded fish function so doesn't exist in other shells.
# Using --local so that it does not clobber SHELL outside of this function.
set --local --export SHELL (command --search fish)
# Pipe the names of all shell variables to fzf and attempt to display the value
# of the selected variable in fzf's preview window.
# Non-exported variables will not be accessible to the fzf process, in which case
# __echo_value_or_print_message will print an informative message in lieu of the value.
set variable_name (
set --names |
fzf --preview '__fzf_display_value_or_error {}'
)
if test $status -eq 0
commandline --insert $variable_name
end
commandline --function repaint
end