跳到主要内容

配置fish

配置方法

1. 配置文件位置

fish 的主要配置文件是:

text
~/.config/fish/config.fish

类似 bash 的 ~/.bashrc,你可以在里面写环境变量、别名、函数等。

2. 设置环境变量

config.fish 中写:

fish
set -Ux PATH $HOME/.local/bin $PATH
set -Ux EDITOR nvim
  • set -Ux:全局并持久化的变量(会写到 fish_variables
  • set -x:仅当前会话环境变量
  • set:普通变量

3. 常用别名(函数方式)

fish 不支持 alias,而是推荐定义函数:

fish
function ll
ls -lh $argv
end

或者用 abbr(推荐):

fish
abbr -a gco 'git checkout'
abbr -a gst 'git status'
abbr -a ll 'ls -lh'

abbr 会在你输入时自动展开。

4. 常用插件管理

推荐 fisher 插件管理器:

fish
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher

然后可以装常用插件:

fish
fisher install jethrokuan/z    # 快速目录跳转
fisher install IlanCosman/tide # 漂亮的提示符
fisher install decors/fish-ghq # 搭配 ghq

5. 配置提示符

fish 内置 fish_config 命令,可以启动 Web 界面选择主题。 或者用 tide:

fish
fisher install IlanCosman/tide
tide configure

6. 补全 & 语法高亮

fish 默认自带自动补全和高亮,一般不需要额外配置。 如果想扩展,可以装 fisher install PatrickF1/fzf.fish,提供 fzf 整合。

配置示例

bash
# ~/.config/fish/config.fish

# 如果是交互式shell(用户登录)则生效,非交互式(脚本)不生效。
if status is-interactive
# ====== 环境变量 ======
set -Ux EDITOR nvim
set -Ux PATH $HOME/.local/bin $HOME/bin $PATH

# ====== 常用缩写 ======
abbr -a ll 'ls -lh'
abbr -a la 'ls -lha'
abbr -a .. 'cd ..'
abbr -a ... 'cd ../..'
abbr -a gst 'git status'
abbr -a gco 'git checkout'

# ====== 常用函数 ======
# 创建目录后进入
function mkcd
mkdir -p $argv[1]; and cd $argv[1]
end

# 解压命令,自动识别文件格式。
function extract
if test -f $argv[1]
switch $argv[1]
case '*.tar.gz' '*.tgz'
tar -xvzf $argv[1]
case '*.tar.bz2' '*.tbz2'
tar -xvjf $argv[1]
case '*.tar.xz'
tar -xvJf $argv[1]
case '*.zip'
unzip $argv[1]
case '*.rar'
unrar x $argv[1]
case '*'
echo "未知压缩格式: $argv[1]"
end
else
echo "$argv[1] 不是有效文件"
end
end

# ====== 欢迎提示 ======
function fish_greeting
echo "🐟 欢迎使用 Fish shell - " (date "+%H:%M")
end
end