用途:Fish 是一款智能、易用的命令行 shell,开箱即用提供自动建议、语法高亮和 Tab 补全,适合作为交互式开发 shell,也支持清晰可读的脚本语法。
主要能力:无需插件即可获得自动建议、语法高亮与补全;脚本语法直观,避免 POSIX 历史遗留问题(数学运算无需子 shell,数组处理清晰);支持通用变量(set -U)跨所有会话持久化;启动速度快(资料称低于 20ms),无需重型插件管理器。
使用方式:在 ~/.config/fish/config.fish 中配置环境、补全与别名,交互配置建议包裹在 if status is-interactive ... end 中。用 fish_add_path 幂等地添加 PATH 目录;用 abbr -a 定义缩写(如 abbr -a g git),缩写会就地展开并保留透明历史。独立函数可存于 ~/.config/fish/functions/<name>.fish 实现自动懒加载,也可用 funcsave 永久保存函数。通用变量示例:set -U FZF_DEFAULT_OPTS "--height 40% --layout=reverse --border"。环境变量使用 set -gx EDITOR nvim,命令替换使用 (command)。
适用场景:交互式开发终端、需要干净脚本语法的场景、跨会话持久化用户变量、追求高速启动的 shell 环境。
限制与注意:若需 POSIX /bin/sh 或 /bin/bash 可移植性,不要用 Fish 编写系统管理脚本;不要使用 bash 旧语法(如 export FOO=bar 或 $(command));避免在 config.fish 中堆叠重型外部子 shell 调用,可用 fish --profile 测量启动。常见问题:source .venv/bin/activate 报错时应改用 source .venv/bin/activate.fish;export: command not found 应改用 set -gx VAR val;旧版 Fish 中 && 语法错误需升级到 Fish 3.0+ 或使用 ; and 操作符。
其他细节(如具体收费、平台支持)暂未提供。