菜单

环境变量

相关源文件

本文档涵盖了可用于配置 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/conf.py85-117

特殊值格式

规则列表

对于 THEFUCK_RULESTHEFUCK_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 的示例

来源:README.md492-501

配置优先级

TheFuck 按以下顺序加载设置,后面的来源会覆盖前面的来源

  1. 来自 const.DEFAULT_SETTINGS 的默认设置
  2. 来自 ~/.config/thefuck/settings.py (或为向后兼容,~/.thefuck/settings.py) 的用户设置
  3. 带有 THEFUCK_ 前缀的环境变量
  4. 命令行参数

这意味着环境变量将覆盖配置文件中的设置,但会被命令行参数覆盖。

来源:thefuck/conf.py27-44

XDG_CONFIG_HOME 环境变量

TheFuck 使用 XDG_CONFIG_HOME 环境变量来确定其配置目录的位置

XDG_CONFIG_HOME/thefuck/

如果未设置 XDG_CONFIG_HOME,它将默认为 ~/.config。为向后兼容,如果存在 ~/.thefuck/,则会使用它。

来源:thefuck/conf.py54-66

内部环境变量

TheFuck 使用一些内部环境变量来实现特定功能

可变目的
SHELL_LOGGER_SOCKET用于实验性即时模式的通信

来源:thefuck/const.py89