feat(fish): 添加 fish 模块与交互配置
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
fish_add_path "$HOME/go/bin" "$HOME/.bun/bin"
|
||||
|
||||
set -gx EDITOR nvim
|
||||
set -gx VISUAL nvim
|
||||
set -gx PAGER less
|
||||
set -gx MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
||||
|
||||
set -g fish_greeting
|
||||
|
||||
function __prepend_sudo
|
||||
set -l buffer (commandline)
|
||||
if test -z "$buffer"
|
||||
commandline -f up-line
|
||||
set buffer (commandline)
|
||||
end
|
||||
|
||||
if test -n "$buffer"
|
||||
if not string match -qr '^sudo\b' -- "$buffer"
|
||||
commandline -r "sudo $buffer"
|
||||
end
|
||||
commandline -f end-of-line repaint
|
||||
end
|
||||
end
|
||||
|
||||
bind \e\e __prepend_sudo
|
||||
bind \c@ accept-autosuggestion
|
||||
|
||||
set -gx FZF_DEFAULT_OPTS '--height=50% --layout=reverse --border --preview-window=right:60%'
|
||||
set -gx FZF_DEFAULT_COMMAND 'fd --type f --hidden --follow --exclude .git'
|
||||
set -gx FZF_CTRL_T_COMMAND "$FZF_DEFAULT_COMMAND"
|
||||
set -gx FZF_ALT_C_COMMAND 'fd --type d --hidden --follow --exclude .git'
|
||||
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
|
||||
function ls
|
||||
command eza --icons --group-directories-first --git $argv
|
||||
end
|
||||
|
||||
function l
|
||||
command eza -la --icons --group-directories-first --git $argv
|
||||
end
|
||||
|
||||
function ll
|
||||
command eza -l --icons --group-directories-first --git $argv
|
||||
end
|
||||
|
||||
function la
|
||||
command eza -lA --icons --group-directories-first --git $argv
|
||||
end
|
||||
|
||||
function lt
|
||||
command eza --tree --level=2 --icons --group-directories-first --git $argv
|
||||
end
|
||||
|
||||
alias cat='bat --paging=never'
|
||||
alias rm='gomi'
|
||||
alias lg='lazygit'
|
||||
alias vi='nvim'
|
||||
alias x='ouch decompress'
|
||||
|
||||
if set -q WSL_DISTRO_NAME
|
||||
alias pbcopy='clip.exe'
|
||||
alias pbpaste='powershell.exe -noprofile -c Get-Clipboard'
|
||||
|
||||
function keep_current_path --on-event fish_prompt
|
||||
printf '\e]9;9;%s\e\\' (wslpath -w "$PWD")
|
||||
end
|
||||
end
|
||||
|
||||
if status is-interactive
|
||||
zoxide init fish --cmd cd | source
|
||||
mise activate fish | source
|
||||
|
||||
set -g direnv_fish_mode eval_after_arrow
|
||||
direnv hook fish | source
|
||||
|
||||
fzf --fish | source
|
||||
|
||||
set -gx ATUIN_NOBIND true
|
||||
atuin init fish | source
|
||||
bind \cr _atuin_search
|
||||
|
||||
starship init fish | source
|
||||
end
|
||||
|
||||
if test -f ~/.config/fish/config.local.fish
|
||||
source ~/.config/fish/config.local.fish
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
function yy
|
||||
set -l tmp (mktemp -t yazi-cwd.XXXXXX)
|
||||
command yazi $argv --cwd-file="$tmp"
|
||||
|
||||
if set -l cwd (command cat -- "$tmp")
|
||||
if test -n "$cwd" -a "$cwd" != "$PWD"
|
||||
builtin cd -- "$cwd"
|
||||
end
|
||||
end
|
||||
|
||||
command rm -f -- "$tmp"
|
||||
end
|
||||
Reference in New Issue
Block a user