Symbolic link navigation for Fish
This project is archived as newer versions of Fish now support this behaviour by default.
Symnav was developed and tested on Fish 2.6.0. Please report any issues.
fisher externl/fish-symnav
Copy all files in the functions directory into your fish functions directory, typically ~/.config/fish/functions
. Several key bindings need to be added, see key_bindings.fish for the required binding list and the bind command documentation for instructions.
Use bind | grep __symnav
to check that symnav key bindings are enabled.
- Tracks directory changes involving symbolic links
- Performs completion of
../
directories involving symbolic links - Mode for user to choose between symbolic link and real path during completion
- Substitution of
$PWD
on the command line - Automatic prompt configuration
# Update function 'prompt_pwd' to use '$symnav_pwd'.
set symnav_prompt_pwd 1 (0 to disable)
# Update function 'fish_prompt' to use '$symnav_pwd'.
set symnav_fish_prompt 1 (0 to disable)
# Whether substituting or completing directories such as '../' should use symbolic links ('symlink')
# or asked the user to choose between the symbolic link and the real path ('ask').
set symnav_substitution_mode symlink (or 'ask')
# Execute immediately after command line substitution has occurred.
set symnav_execute_substitution 1 (0 to disable)
# Substitute '$PWD' for '$symnav_pwd' prior to command execution.
set symnav_substitute_PWD 1 (0 to disable)
# Initialize symnav during first execution or completion.
set symnav_lazy_initialize 1 (0 to disable)
# List of additional functions to modify for symnav compatibility.
# Instances of '$PWD', 'realpath', will be replaced by a new in memory function
set symnav_modify_functions 'func1' 'func2' ...