菜单

配置

相关源文件

TheFuck 的配置系统允许您通过设置文件、环境变量或命令行参数来自定义其行为。本页将解释可用的配置选项以及如何使用它们。

概述

TheFuck 使用分层配置系统,按照以下优先级顺序从多个源加载设置:

  1. 命令行参数
  2. 环境变量
  3. 用户设置文件
  4. 默认设置

这允许灵活配置,您可以根据需要覆盖特定设置,而无需修改设置文件。

来源: thefuck/conf.py19-137 thefuck/const.py31-63

设置文件

TheFuck 使用基于 Python 的设置文件,位于 ~/.config/thefuck/settings.py。为了向后兼容,它还会检查 ~/.thefuck/settings.py

当您第一次运行 TheFuck 时,它会自动创建设置文件,其中包含所有可用选项的注释示例。

文件位置

来源: thefuck/conf.py54-66 thefuck/conf.py77-83

可用设置

您的设置文件中可以配置以下设置:

设置默认描述
rulesDEFAULT_RULES已启用的规则列表
exclude_rules[]已禁用的规则列表
wait_command3获取命令输出的最大秒数
require_confirmationTrue在运行修复后的命令之前要求确认
no_colors禁用彩色输出
debug启用调试输出
priority{}规则优先级字典(值越低,匹配越优先)
history_limitNone要扫描的历史命令数量
alter_historyTrue将修复后的命令推送到 shell 历史记录
wait_slow_command15慢命令输出的最大秒数
slow_commands['lein', 'react-native', 'gradle', './gradlew', 'vagrant']被认为是慢速的命令列表
repeat重复运行修复后的命令直到成功
instant_mode启用实验性即时模式
num_close_matches3建议的近似匹配的最大数量
env{'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}命令的环境变量
excluded_search_path_prefixes[]搜索命令时要忽略的路径前缀

来源: thefuck/const.py31-47 README.md438-471

示例设置文件

这是一个修改了一些默认设置的设置文件示例

来源: README.md459-471

环境变量

所有设置也可以通过环境变量进行配置。环境变量名称通过添加 THEFUCK_ 前缀并转换为大写来派生自设置名称。

来源: thefuck/const.py49-63 thefuck/conf.py119-123

特殊值格式

某些环境变量需要特殊格式

  • 列表(如 rulesexclude_rulesslow_commands):值用冒号分隔

  • 字典(如 priority):值格式为 key=value,用冒号分隔

  • 布尔值:值为 truefalse(不区分大小写)

  • 特殊关键字 DEFAULT_RULES:可在 THEFUCK_RULES 变量中使用,以包含所有默认规则

来源: thefuck/conf.py85-117 README.md473-501

示例环境变量配置

这是使用环境变量设置 TheFuck 的示例

来源: README.md492-501

命令行参数

TheFuck 支持几个可以覆盖配置设置的命令行参数

参数对应设置描述
--yes / -y / --hardrequire_confirmation = False无需确认即可运行已修复的命令
--debugdebug = True启用调试输出
--repeat / -rrepeat = True递归修复命令,直到成功

来源: README.md168-178 thefuck/conf.py125-137

配置加载过程

TheFuck 的初始化通过以下过程加载配置

来源: thefuck/conf.py27-44

自定义规则配置

TheFuck 允许您创建自定义规则,这些规则存储在 ~/.config/thefuck/rules 目录中。首次运行 TheFuck 时会自动创建此目录。

每个规则都是一个 Python 文件,至少必须定义两个函数:

  • match(command):确定规则是否适用于命令
  • get_new_command(command):返回更正后的命令

规则还可以定义可选组件:

  • enabled_by_default:布尔值,指示规则是否默认启用
  • priority:整数,指示规则优先级(值越低,优先级越高)
  • requires_output:布尔值,指示是否需要命令输出
  • side_effect(old_command, fixed_command):执行副作用的函数

来源: README.md383-430

与其他组件的关系

配置系统提供了控制 TheFuck 所有组件行为的设置

来源: thefuck/conf.py19-140 README.md196-377

测试配置更改

进行配置更改时,您可以通过运行 TheFuck 并使用 --debug 标志来验证它们,以查看正在使用哪些设置。

如果您正在使用 shell 别名(推荐),您可以运行

这将显示包括加载设置在内的调试信息,然后再运行命令更正。

来源: README.md61-86 README.md438-471