22 lines
1000 B
Fish
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
|