如何在 Fish shell 中禁用 SVN 功能?

如何在 Fish shell 中禁用 SVN 功能?

如何禁用 fish shell 中的特定功能?例如,我想禁用 Subversion 集成。

当我使用 Subversion 进入cd任何中大型存储库的目录 ( ) 时,终端会挂起 30 多分钟。它也不会响应^C终止信号,所以我只能卡住。我发现此功能在“未来”可能会被禁用:

https://github.com/fish-shell/fish-shell/issues/6625

无论如何,我不清楚如何告诉 fish 应禁用此功能。加分点:仅限特定用户。

我使用的是基于 Debian 的 GNU/Linux 发行版,使用的是 fish 版本 3.1.0。因此此功能仍然存在。我有一个 LTS 发行版,因此,如果可能的话,我只想了解如何使用 fish 配置,而不是升级它。

也许 fish 不支持这样的配置,或者也许是的。也许唯一的解决办法是从 root 用户破解我的源代码。谢谢你的想法。

答案1

svn-integration 完全位于一个名为 的函数中fish_svn_prompt。此函数由您的提示调用,可能通过fish_vcs_promptcover 函数按顺序尝试所有 vcs 集成。

因此,您需要查找您的提示是否运行其中任何一个并将其删除,或者更改fish_vcs_prompt为不调用fish_svn_prompt

使用funced fish_prompt和,如果它调用fish_vcs_prompt并且您想要保留 git 集成(这要快得多),请运行funced fish_vcs_prompt,并在调用的地方注释掉fish_svn_prompt

funcsave fish_vcs_prompt满意后,运行(或任何其他函数名称)。这将在您的配置中保存该函数的副本,因此它只针对一个用户执行。

我发现这个功能在“将来”可能会被禁用:

此功能具有已经在 fish 3.1.1 中已被禁用。请参阅https://github.com/fish-shell/fish-shell/issues/6681

https://github.com/fish-shell/fish-shell/issues/6625

这是完全不同的问题。这是因为 macOS 很笨拙,应该与 Debian 无关。

我正在使用基于 Debian 的 GNU/Linux 发行版,并且使用 fish 版本 3.1.0。

最简单、最友好的解决方案是升级 fish - 3.1.0 版本缺少了 fish 的所有提交的 25% 以上。遗憾的是 Debian 选择不升级到 3.1.1(和 3.1.2)错误修复版本,但 fish 上游提供了 Debian 9-11(受支持的 Debian 版本)的软件包。请参阅https://fishshell.com/了解详情。

相关内容