本文档涵盖了可用于配置 TheFuck 的环境变量。环境变量提供了一种在不编辑配置文件的情况下修改应用程序行为的方法。它们对于临时更改或在不同环境中设置配置特别有用。
有关设置文件配置的信息,请参阅设置文件。
TheFuck 使用环境变量作为设置文件的替代配置方式。当应用程序启动时,它会查找带有 THEFUCK_ 前缀的环境变量,并应用这些设置。
来源:thefuck/conf.py119-123 thefuck/conf.py101-117
下图显示了环境变量如何映射到 TheFuck 的内部设置
来源:thefuck/const.py49-63 thefuck/conf.py119-123
以下环境变量可用于配置 TheFuck
| 环境变量 | 描述 | 类型 | 默认 |
|---|---|---|---|
THEFUCK_RULES | 已启用的规则列表 | 冒号分隔的字符串 | DEFAULT_RULES |
THEFUCK_EXCLUDE_RULES | 已禁用的规则列表 | 冒号分隔的字符串 | [] |
THEFUCK_WAIT_COMMAND | 获取命令输出的最大秒数 | 整型 | 3 |
THEFUCK_REQUIRE_CONFIRMATION | 运行命令前需要确认 | 布尔值 | true |
THEFUCK_NO_COLORS | 禁用彩色输出 | 布尔值 | false |
THEFUCK_DEBUG | 启用调试输出 | 布尔值 | false |
THEFUCK_PRIORITY | 规则优先级 | 格式:rule=priority:rule=priority | {} |
THEFUCK_HISTORY_LIMIT | 要扫描的历史命令数量 | 整型 | 无 |
THEFUCK_ALTER_HISTORY | 将修复的命令推送到历史记录 | 布尔值 | true |
THEFUCK_WAIT_SLOW_COMMAND | 慢速命令输出的最大时间 | 整型 | 15 |
THEFUCK_SLOW_COMMANDS | 慢速命令列表 | 冒号分隔的字符串 | lein:react-native:gradle:./gradlew:vagrant |
THEFUCK_REPEAT | 重复固定命令直到成功 | 布尔值 | false |
THEFUCK_INSTANT_MODE | 启用实验性即时模式 | 布尔值 | false |
THEFUCK_NUM_CLOSE_MATCHES | 建议的最大相似匹配数 | 整型 | 3 |
THEFUCK_EXCLUDED_SEARCH_PATH_PREFIXES | 要忽略的路径前缀 | 冒号分隔的字符串 | [] |
XDG_CONFIG_HOME | 用户特定配置的基目录 | 字符串 | ~/.config |
来源:thefuck/const.py31-47 thefuck/conf.py54-57 README.md474-488
TheFuck 中的环境变量根据其类型进行解析
对于 THEFUCK_RULES 和 THEFUCK_EXCLUDE_RULES,值是冒号分隔的
export THEFUCK_RULES='sudo:no_command:git_push'
特殊值 DEFAULT_RULES 可用于包含所有默认规则
export THEFUCK_RULES='DEFAULT_RULES:my_custom_rule'
对于 THEFUCK_PRIORITY,格式为 rule=priority:rule=priority
export THEFUCK_PRIORITY='no_command=9999:apt_get=100'
优先级值越低,匹配越先。
对于布尔环境变量,只有字符串 'true' (不区分大小写)被视为真
export THEFUCK_REQUIRE_CONFIRMATION='true'
export THEFUCK_NO_COLORS='false'
来源:thefuck/conf.py85-117 README.md474-501
这是设置多个环境变量来配置 TheFuck 的示例
TheFuck 按以下顺序加载设置,后面的来源会覆盖前面的来源
const.DEFAULT_SETTINGS 的默认设置~/.config/thefuck/settings.py (或为向后兼容,~/.thefuck/settings.py) 的用户设置THEFUCK_ 前缀的环境变量这意味着环境变量将覆盖配置文件中的设置,但会被命令行参数覆盖。
TheFuck 使用 XDG_CONFIG_HOME 环境变量来确定其配置目录的位置
XDG_CONFIG_HOME/thefuck/
如果未设置 XDG_CONFIG_HOME,它将默认为 ~/.config。为向后兼容,如果存在 ~/.thefuck/,则会使用它。
TheFuck 使用一些内部环境变量来实现特定功能
| 可变 | 目的 |
|---|---|
SHELL_LOGGER_SOCKET | 用于实验性即时模式的通信 |