fish - 如何从远程存储库加载 fish 配置?

标签 fish

我在不同的地方(家庭网络、云……)有无数台机器,我在每台机器上都使用了fish。问题是每次更改其中的内容时我都必须同步它们的配置。

有没有办法从远程存储库加载配置? (= 存储它的地方,不一定是 git 但理想情况下我会在 GitHub 中管理它们)。在这种情况下,我会在任何地方都使用一个衬垫。

  • 我不太在意启动时间,每次加载配置都可以接受
  • 我无法将配置推送到机器(例如通过 Ansible)——并非所有机器都可以直接访问——但所有机器都可以访问互联网

最佳答案

您的问题分为两部分。第一部分不是特定于 fish 的。对于我经常使用的系统,我使用 Dropbox。我将我的 ~/.config/fish 目录放在 Dropbox 目录中并对其进行符号链接(symbolic link)。对于我不经常使用的机器,例如我用来调查发行版特有问题的虚拟机,我使用 rsync 从我的主要台式机复制。例如,

rsync --verbose --archive --delete -L --exclude 'fishd.*' krader@macpro:.config .

请注意排除了 fishd.* 模式。那是你问题的第二部分,是 fish 所独有的。以该模式命名的 ~/.config/fish 目录中的文件是通用变量存储,目前对于每台机器都是唯一的。我们想改变这一点——见 https://github.com/fish-shell/fish-shell/issues/1912 .问题是文件包含颜色主题变量。因此,要复制您的颜色主题,需要在一台机器上导出这些变量:

set -U | grep fish_color_

然后在新机器上为前面命令的每一行输出执行 set -U。显然,如果您有其他想要同步的通用变量,您应该只执行 set -U 并导入所有这些变量。

关于fish - 如何从远程存储库加载 fish 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46027035/

相关文章:

shell - 如何在fish shell中导出函数

fish - 变量不能用作命令

fish - fish shell 中带有空格的别名

shell - 使用fish shell修改PATH

linux - fish、zsh、bash 可以导入同一个配置文件吗?

fish - 如何显示fish中函数的内容?

fish - 如何在 Fish 中使用键盘快捷键扩展环境变量?

fish - 如何在fish中禁用vi模式?

bash - fish shell 中的别名替换

npm - Fish shell 和全局 npm 模块