TheFuck 的配置系统允许您通过设置文件、环境变量或命令行参数来自定义其行为。本页将解释可用的配置选项以及如何使用它们。
TheFuck 使用分层配置系统,按照以下优先级顺序从多个源加载设置:
这允许灵活配置,您可以根据需要覆盖特定设置,而无需修改设置文件。
来源: 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
您的设置文件中可以配置以下设置:
| 设置 | 默认 | 描述 |
|---|---|---|
rules | DEFAULT_RULES | 已启用的规则列表 |
exclude_rules | [] | 已禁用的规则列表 |
wait_command | 3 | 获取命令输出的最大秒数 |
require_confirmation | True | 在运行修复后的命令之前要求确认 |
no_colors | 否 | 禁用彩色输出 |
debug | 否 | 启用调试输出 |
priority | {} | 规则优先级字典(值越低,匹配越优先) |
history_limit | None | 要扫描的历史命令数量 |
alter_history | True | 将修复后的命令推送到 shell 历史记录 |
wait_slow_command | 15 | 慢命令输出的最大秒数 |
slow_commands | ['lein', 'react-native', 'gradle', './gradlew', 'vagrant'] | 被认为是慢速的命令列表 |
repeat | 否 | 重复运行修复后的命令直到成功 |
instant_mode | 否 | 启用实验性即时模式 |
num_close_matches | 3 | 建议的近似匹配的最大数量 |
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
某些环境变量需要特殊格式
列表(如 rules、exclude_rules、slow_commands):值用冒号分隔
字典(如 priority):值格式为 key=value,用冒号分隔
布尔值:值为 true 或 false(不区分大小写)
特殊关键字 DEFAULT_RULES:可在 THEFUCK_RULES 变量中使用,以包含所有默认规则
来源: thefuck/conf.py85-117 README.md473-501
这是使用环境变量设置 TheFuck 的示例
来源: README.md492-501
TheFuck 支持几个可以覆盖配置设置的命令行参数
| 参数 | 对应设置 | 描述 |
|---|---|---|
--yes / -y / --hard | require_confirmation = False | 无需确认即可运行已修复的命令 |
--debug | debug = True | 启用调试输出 |
--repeat / -r | repeat = True | 递归修复命令,直到成功 |
来源: README.md168-178 thefuck/conf.py125-137
TheFuck 的初始化通过以下过程加载配置
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 别名(推荐),您可以运行
这将显示包括加载设置在内的调试信息,然后再运行命令更正。