我如何要求“fish”枚举它正在读取配置的所有位置?

Joh*_*lla 6 shell fish

当我开始时fish,我希望它打印它正在读取配置、配置文件和自定义的每个位置,以便我可以:

  • 了解如果我想保留我的 shell 体验,需要备份哪些特定路径,以及
  • 确定变量和颜色的设置位置

这可能吗?如果可能的话,如何实现?

Dav*_*ill 2

我如何要求fish枚举它读取配置的位置?

\n

我不相信这是可能的。

\n
\n

如果我想保留我的 shell 体验,我需要备份哪些特定路径,

\n
\n

这些都在文档中列出,但最重要的可能是您自己的配置文件:

\n
    \n
  • ~/.config/fish/config.fish
  • \n
  • ~/.config/fish/completions
  • \n
  • ~/.config/fish/functions
  • \n
\n
\n

初始化文件

\n

配置文件按以下顺序评估:

\n
    \n
  • 鱼附带的配置,不应在$__fish_data_dir/config.fish(通常\n /usr/share/fish/config.fish)中进行编辑。

    \n
  • \n
  • .fish目录中以 结尾的文件中的配置片段:

    \n
      \n
    • $__fish_config_dir/conf.d(默认情况下,~/.config/fish/conf.d/

      \n
    • \n
    • $__fish_sysconf_dir/conf.d(默认情况下,/etc/fish/conf.d/

      \n
    • \n
    • 第三方软件供应商为其软件提供自己的配置片段的目录。Fish 在环境变量中的\n目录中搜索XDG_DATA_DIRS\nfish/vendor_conf.d目录;如果未定义此变量,\n默认值通常是搜索/usr/share/fish/vendor_conf.d并\n/usr/local/share/fish/vendor_conf.d

      \n

      如果这些目录中有多个同名文件,则仅执行第一个。它们按照文件名的顺序执行,并按自然顺序排序(如“glob”)(即“01”排在“2”之前)。

      \n
    • \n
    \n
  • \n
  • 系统范围的配置文件,管理员可以在其中包含应该为系统上的所有用户运行的初始化 -\n类似于/etc/profilePOSIX 风格的 shell - in\n $__fish_sysconf_dir(通常/etc/fish/config.fish)。

    \n
  • \n
  • 用户初始化,通常在~/.config/fish/config.fish(由环境变量控制XDG_CONFIG_HOME,并且\n可通过 访问$__fish_config_dir)。

    \n
  • \n
\n

这些路径由构建、安装或运行时设置的参数控制,并且可能与上面列出的默认值不同。

\n

这种广泛的搜索可能会令人困惑。如果您不确定将自己的自定义设置放在哪里,\n请使用~/.config/fish/config.fish.

\n

请注意,它源自~/.config/fish/config.fish\ nsnippets。这样用户就可以复制代码片段并覆盖\n他们的一些行为。

\n
\n

来源:简介 \xe2\x80\x94 Fish-shell 3.1.2 文档

\n
\n

哪里可以放置完成品

\n

可以在命令行或配置文件中定义完成,但也可以自动加载它们。Fish 自动搜索列表变量中的任何目录$fish_complete_path,并在需要时自动加载定义的任何补全。完成文件的文件名必须由要完成的命令的名称和后缀“ .fish\”组成。

\n

默认情况下,Fish 使用它找到的第一个\n可用文件搜索以下内容以查找补全:

\n
    \n
  • 通常供最终用户保存自己的完成内容的目录~/.config/fish/completions(由\n环境变量控制XDG_CONFIG_HOME);
  • \n
  • 系统管理员为系统上所有用户安装补全的目录,通常/etc/fish/completions
  • \n
  • 第三方软件供应商发布自己的软件完成品的目录。XDG_DATA_DIRSFish 在环境变量中的目录中搜索\n目录fish/vendor_completions.d;如果这个变量没有定义,默认值通常是\nsearch /usr/share/fish/vendor_completions.dand\n /usr/local/share/fish/vendor_completions.d;
  • \n
  • 完成品随鱼一起运输,通常安装在/usr/share/fish/completions;和
  • \n
  • 从操作系统手册自动生成的补全内容,通常存储在\n 中~/.local/share/fish/generated_completions
  • \n
\n

这些路径由构建、安装或运行时设置的参数控制,并且可能与上面列出的默认值不同。

\n

这种广泛的搜索可能会令人困惑。如果您不确定,您的完成\n可能属于~/.config/fish/completions.

\n
\n

来源:简介 \xe2\x80\x94 Fish-shell 3.1.2 文档

\n
\n

自动加载功能

\n

函数可以在命令行或配置文件中定义,但也可以自动加载。这有一些\n优点:

\n
    \n
  • 自动加载的函数自动可供所有正在运行的 shell 使用。
  • \n
  • 如果函数定义发生更改,所有正在运行的 shell 将自动重新加载更改后的版本。
  • \n
  • 启动时间和内存使用率得到改善等。
  • \n
\n

当fish需要加载函数时,它会在列表变量中的任何\n目录中搜索名称$fish_function_path由函数名称加上后缀\n\' .fish\'组成的文件,并加载它找到的第一个文件。

\n

默认$fish_function_path包含以下内容:

\n
    \n
  • 通常供最终用户保留自己的功能的目录~/.config/fish/functions(由\n环境变量控制XDG_CONFIG_HOME)。
  • \n
  • 系统管理员为系统上的所有用户安装功能的目录,通常/etc/fish/functions(确实\n $__fish_sysconfdir/functions)。
  • \n
  • 第三方软件供应商为其软件提供自己的功能的目录。XDG_DATA_DIRSFish 在环境变量中的目录中搜索\n目录fish/vendor_functions.d;如果未定义此变量,默认值通常是\n搜索/usr/share/fish/vendor_functions.d并\n/usr/local/share/fish/vendor_functions.d.
  • \n
  • Fish 附带的功能,通常安装在/usr/share/fish/functions(really $__fish_data_dir/functions).
  • \n
\n

这些路径由构建、安装或运行时设置的参数控制,并且可能与上面列出的默认值不同。

\n

这种广泛的搜索可能会令人困惑。如果您不确定,您的函数\n可能属于~/.config/fish/functions.

\n
\n

来源:简介 \xe2\x80\x94 Fish-shell 3.1.2 文档

\n
\n

如何确定变量和颜色的设置位置

\n
\n

查看上面列出的初始化文件。

\n