Fish Shell 在启动时挂起

Fish Shell hangs on startup

我在 Mac、Yosemite。我昨天安装了 Fish,它工作正常,但今天打开一个新的 window 它只是挂起。

我的 ./config/fish/fish.config 目前是空的,所以我认为这不是配置问题。

重新启动后,运行 调试生成以下内容:

fish: Could not connect to socket -1, starting fishd

Grepping 显示 fishd 不是 运行,所以我手动启动 fishd,然后 运行 通过调试钓鱼并得到以下信息:

fish: Connect to socket /tmp/fish.kscott/fishd.socket at fd 3 fish: Connected to fd 3 fish: Create barrier fish: before write of 8 chars to fd 3 fish: Wrote message 'BARRIER ' fish: Sent barrier request

鱼继续为我而死,所以我现在回到 bash。

我不太确定如何进一步调试;我在设置过程中遗漏了什么吗?

-- 编辑--

为了回应下面的 ridiculous_fish,我的 config.fish 最初是:

alias gg 'git grep'

set -x ACKRC '.ackrc'

set -U fish_user_paths $fish_user_paths /opt/local/bin /usr/local/bin /npm/bin /Users/kscott/fish_scripts

并且来自 ~/.config/fish/fishd.* 的一行的输出是巨大的:

SET fish_user_paths:/usr/local/bin\x1e/Users/kscott/bin\x1e/opt/local/bin\x1e/usr/local/bin\x1e/.... goes on and on for 30 lines`

我可以安全地删除或清除这个文件吗?

通用变量在会话之间自动保留。所以当你这样写的时候:

set -U fish_user_paths $fish_user_paths /opt/local/bin...

那个$fish_user_paths变长每次开始钓鱼。最终它会变得太大而挂起。

要修复它,您可以确保 fishd 不是 运行ning 然后手动编辑文件以删除该行,或者您可以(来自 fish)只是 运行 set -U fish_user_paths /opt/local/bin /usr/local/bin /npm/bin /Users/kscott/fish_scripts设置一次

set -U 命令在 config.fish 中几乎总是错误的。我们可能会为这种情况添加警告 - 请参阅 #2005