Files
dotfiles/fish/config.fish
2026-02-10 14:50:15 +08:00

75 lines
1.7 KiB
Fish

if status is-interactive
# Commands to run in interactive sessions can go here
set fish_greeting ""
set -gx TERM xterm-256color
# theme
set -g theme_color_scheme dracula
set -g fish_prompt_pwd_dir_length 1
set -g theme_display_user yes
set -g theme_hide_hostname no
set -g theme_hostname always
# starship prompt
switch (uname)
case Darwin
if test -x /opt/homebrew/bin/starship
/opt/homebrew/bin/starship init fish | source
end
case Linux
case '*'
end
end
# include devenv
source (dirname (status --current-filename))/config-dev.fish
# set PATH and load os-specify config
switch (uname)
case Darwin
if test -x /opt/homebrew/bin/brew
eval "$(/opt/homebrew/bin/brew shellenv)"
set -gx PATH ~/bin $PATH
source (dirname (status --current-filename))/config-osx.fish
end
case Linux
source (dirname (status --current-filename))/config-linux.fish
case '*'
source (dirname (status --current-filename))/config-windows.fish
end
# using less instead of more
export LESS='-R'
alias more='less'
# set default editor to nvim
set -gx EDITOR nvim
fzf_configure_bindings
# ghq functions
if type -q ghq
alias ghqcd="cd \$(ghq list --full-path | fzf)"
end
if type -q thefuck
thefuck --alias | source
end
# init zoxide
if type -q zoxide
zoxide init fish | source
end
# init yazi
function y
set tmp (mktemp -t "yazi-cwd.XXXXXX")
yazi $argv --cwd-file="$tmp"
if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
builtin cd -- "$cwd"
end
rm -f -- "$tmp"
end