You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在fish shell中输入$时提示"Unknown command: bind_dollar"错误的原因?

Fish Shell输入$触发"Unknown command: bind_dollar"错误解决

问题描述

在MacOS Monterey 12.5.1系统上运行fish shell 3.5.1,多数命令可正常使用,但输入美元符号$时(无需按回车)就会弹出错误提示:

fish: Unknown command: bind_dollar

已尝试的操作:

  • 通过Homebrew重新安装fish
  • 确认fish在PATH中
  • 删除fish.config文件

环境配置信息

错误详情

输入$后立即触发的错误:

fish: Unknown command: bind_dollar

Fish配置目录内容

~/.config/fish
$ ls
completions/    conf.d/         config.fish     fish_variables  functions/

PATH环境变量(/bin/sh下查看)

$ /bin/sh
sh-3.2$ echo $PATH
/usr/local/bin:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin

fish程序位置

sh-3.2$ whereis fish
fish: /usr/local/bin/fish

默认config.fish内容

sh-3.2$ cat config.fish
if status is-interactive
    # Commands to run in interactive sessions can go here
end

排查与解决步骤

  1. 检查conf.d目录的自动加载脚本
    conf.d目录下的所有脚本会在fish启动时自动执行,可能存在错误的键绑定配置。执行命令查看所有文件内容:
cat ~/.config/fish/conf.d/*

如果发现包含bind '$' bind_dollar或类似绑定$到bind_dollar的代码,直接删除该行或对应的文件。

  1. 检查自定义函数目录
    fish的自定义函数存放在functions目录,排查是否存在bind_dollar函数或绑定$键的函数:
ls ~/.config/fish/functions/
cat ~/.config/fish/functions/*.fish

找到相关文件后直接删除,重启fish测试。

  1. 检查fish_variables配置文件
    该文件存储fish的变量和键绑定设置,可能存在错误配置。先备份文件:
cp ~/.config/fish/fish_variables ~/.config/fish/fish_variables.bak

打开文件搜索包含bind的行,找到涉及$的绑定条目并删除,保存后重启fish。

  1. 排查终端自定义绑定
    部分终端(如iTerm2、Terminal.app)可能设置了全局键绑定,将$映射到了bind_dollar命令。打开终端偏好设置的「键盘」选项,检查是否存在相关绑定并移除。

  2. 启动纯净fish会话测试
    执行以下命令启动不加载任何用户配置的fish,验证问题是否来自配置:

fish --no-config

如果此时输入$正常,说明问题出在用户配置文件中;若仍报错,尝试卸载Homebrew版本的fish,改用官方源码编译安装或MacPorts重新安装。

内容的提问来源于stack exchange,提问作者shackleton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:30:49