From 8744053c610d638fd2ec9e5bc208947a27baccf7 Mon Sep 17 00:00:00 2001 From: bitraid Date: Fri, 7 Feb 2025 19:46:31 +0200 Subject: [PATCH] [fish] Fix for directories with special characters --- shell/key-bindings.fish | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/shell/key-bindings.fish b/shell/key-bindings.fish index c66a2aa276f..9d173d487ee 100644 --- a/shell/key-bindings.fish +++ b/shell/key-bindings.fish @@ -171,18 +171,20 @@ function fzf_key_bindings # if $dir is "." but commandline is not a relative path, this means no file path found set fzf_query $commandline else + # Special characters must be double escaped. + set -l re_dir (string escape -n -- $dir) # Also remove trailing slash after dir, to "split" input properly - set fzf_query (string replace -r -- "^$dir/?" '' $commandline) + set fzf_query (string replace -r -- "^$re_dir/?" '' $commandline) end end - echo (string escape -- $dir) - echo (string escape -- $fzf_query) - echo $prefix + echo -- $dir + string escape -- $fzf_query + echo -- $prefix end function __fzf_get_dir -d 'Find the longest existing filepath from input string' - set dir $argv + set dir (string unescape -n -- $argv) # Strip trailing slash, unless $dir is root dir (/) set dir (string replace -r -- '(?