Hello folks, I've been using TRAMP for quite a while, and everything was
fine, until I switch my main shell to Fish (it was Bash previously).
After entering:
/ssh:the-host:<TAB>
in Emacs find-file, TRAMP prompts for the password, and I enter the
password accordingly, then TRAMP just hangs indifinitely.
I have dumb terminal check in my fish config file like so:
if test "$TERM" = "dumb"
function fish_prompt
printf '$ '
end
function fish_right_prompt; end
function fish_greeting; end
function fish_title; end
else
...fancy prompts...
end
and according to the manual, setting these functions should be enough for TRAMP
to work, am I missing something?
I've attached my full fish config if this helps. Any help is
appreciated, thanks in advance!
# Prompt and welcome message customization.
if test "$TERM" = "dumb"
function fish_prompt
printf '$ '
end
function fish_right_prompt; end
function fish_greeting; end
function fish_title; end
else
function fish_prompt -d "ID's custom prompt."
set_color cyan
printf "%s" "$USER"
set_color normal
printf " at "
set_color green
printf "%s" "$hostname"
set_color normal
printf " in "
set_color blue
printf "%s" "$(prompt_pwd --dir-length=5)"
set_color normal
printf "\n|-"
set_color yellow
printf "%s" "$(date +%H:%M)"
set_color normal
printf " "
end
function fish_greeting -d "ID's custom welcome message."
set_color blue
printf ">"
set_color green
printf "<>"
set_color normal
printf " You're now at machine "
set_color red
printf "%s" "$hostname"
set_color normal
printf ". "
set_color green
printf "<>"
set_color blue
printf "<"
set_color normal
printf "\n"
end
end
# Aliases.
function ls -w /usr/bin/ls -d "ls with some custom options."
/usr/bin/ls -Alh --color=auto $argv
end
function grep -w /usr/bin/grep -d "grep with color."
/usr/bin/grep --color=auto $argv
end
function kssh -w /usr/bin/ssh -d "ssh over kitten."
kitten ssh $argv
end
# Environmental variables.
set -gx VISUAL nvim
set -gx XAPIAN_CJK_NGRAM 1
# Emacs vterm configuration.
# Placed in here because files from conf.d is read before this file,
# and the prompt defined in there will be overwritten.
set -l vterm_fish_location "$(status dirname)/emacs-vterm.fish"
if test "$INSIDE_EMACS" = "vterm"; and test -f "$vterm_fish_location"
. "$vterm_fish_location"
end
--
Best,
ID