107 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
{%- let SECTION = "# =============================================================================\n#" -%}
 | 
						|
{%- let NOT_CONFIGURED = "# -- not configured --" -%}
 | 
						|
 | 
						|
{{ SECTION }}
 | 
						|
# Utility functions for zoxide.
 | 
						|
#
 | 
						|
 | 
						|
# Remove definitions.
 | 
						|
 | 
						|
# pwd based on the value of _ZO_RESOLVE_SYMLINKS.
 | 
						|
function __zoxide_pwd
 | 
						|
{%- if resolve_symlinks %}
 | 
						|
    builtin pwd -P
 | 
						|
{%- else %}
 | 
						|
    builtin pwd -L
 | 
						|
{%- endif %}
 | 
						|
end
 | 
						|
 | 
						|
# cd + custom logic based on the value of _ZO_ECHO.
 | 
						|
function __zoxide_cd
 | 
						|
    builtin cd $argv
 | 
						|
    {%- if echo %}
 | 
						|
    and __zoxide_pwd
 | 
						|
    {%- endif %}
 | 
						|
    and builtin commandline -f repaint
 | 
						|
end
 | 
						|
 | 
						|
{{ SECTION }}
 | 
						|
# Hook configuration for zoxide.
 | 
						|
#
 | 
						|
 | 
						|
# Initialize hook to add new entries to the database.
 | 
						|
if test "$__zoxide_hooked" != '1'
 | 
						|
    set __zoxide_hooked '1'
 | 
						|
    {%- match hook %}
 | 
						|
    {%- when Hook::None %}
 | 
						|
    function __zoxide_hook
 | 
						|
    {%- when Hook::Prompt %}
 | 
						|
    function __zoxide_hook --on-event fish_prompt
 | 
						|
    {%- when Hook::Pwd %}
 | 
						|
    function __zoxide_hook --on-variable PWD
 | 
						|
    {%- endmatch %}
 | 
						|
        command zoxide add (__zoxide_pwd)
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
{{ SECTION }}
 | 
						|
# When using zoxide with --no-aliases, alias these internal functions as
 | 
						|
# desired.
 | 
						|
#
 | 
						|
 | 
						|
# Jump to a directory using only keywords.
 | 
						|
function __zoxide_z
 | 
						|
    set argc (count $argv)
 | 
						|
    if test $argc -eq 0
 | 
						|
        __zoxide_cd $HOME
 | 
						|
    else if begin; test $argc -eq 1; and test $argv[1] = '-'; end
 | 
						|
        __zoxide_cd -
 | 
						|
    else if begin; test $argc -eq 1; and test -d $argv[1]; end
 | 
						|
        __zoxide_cd $argv[1]
 | 
						|
    else
 | 
						|
        set -l __zoxide_result (command zoxide query -- $argv)
 | 
						|
        and __zoxide_cd $__zoxide_result
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
# Jump to a directory using interactive search.
 | 
						|
function __zoxide_zi
 | 
						|
    set -l __zoxide_result (command zoxide query -i -- $argv)
 | 
						|
    and __zoxide_cd $__zoxide_result
 | 
						|
end
 | 
						|
 | 
						|
{{ SECTION }}
 | 
						|
# Convenient aliases for zoxide. Disable these using --no-aliases.
 | 
						|
#
 | 
						|
 | 
						|
{%- match cmd %}
 | 
						|
{%- when Some with (cmd) %}
 | 
						|
 | 
						|
# Remove definitions.
 | 
						|
function __zoxide_unset
 | 
						|
    set --erase $argv > /dev/null 2>&1
 | 
						|
    abbr --erase $argv > /dev/null 2>&1
 | 
						|
    builtin functions --erase $argv > /dev/null 2>&1
 | 
						|
end
 | 
						|
 | 
						|
__zoxide_unset '{{cmd}}'
 | 
						|
function {{cmd}}
 | 
						|
    __zoxide_z $argv
 | 
						|
end
 | 
						|
 | 
						|
__zoxide_unset '{{cmd}}i'
 | 
						|
function {{cmd}}i
 | 
						|
    __zoxide_zi $argv
 | 
						|
end
 | 
						|
 | 
						|
{%- when None %}
 | 
						|
{{ NOT_CONFIGURED }}
 | 
						|
 | 
						|
{%- endmatch %}
 | 
						|
 | 
						|
{{ SECTION }}
 | 
						|
# To initialize zoxide with fish, add the following line to your fish
 | 
						|
# configuration file (usually ~/.config/fish/config.fish):
 | 
						|
#
 | 
						|
# zoxide init fish | source
 |