是否可以启动fish
shell指向另一个配置目录,然后指向默认的~/.config/fish
?
我正在尝试在不同用户之间的多用户系统中具有相同的外壳体验(例如sudo -u <user> fish
具有相同的别名/功能等,就像我的用户一样)。但是也可以采用非持久方式进行操作,因为系统中的其他用户可能对我的设置不感兴趣。
到目前为止,我的想法是:
~/.config/fish/functions/
)的问题答案 0 :(得分:1)
从您对Glenn提供的答案的评论中可以清楚地看出,您最初的问题遗漏了一些重要信息。如果您正在使用具有其他sudo -u $some_user
用户的系统,则不应符号链接到您的个人配置文件。相反,只要利用fish符合XDG Base Directory规范这一事实即可。在开始钓鱼之前,只需将env var XDG_CONFIG_HOME
设置为您的真实家庭目录。例如,
sudo -u $some_user /bin/sh -c "XDG_CONFIG_HOME=$HOME/.config fish"
答案 1 :(得分:0)
您可以将所有常见内容放在一个公共目录中,也许
/opt/fish_config/config.fish
/opt/fish_config/functions/
/opt/fish_config/completions/
然后在您可以放置的任何〜/ .config / fish / config.fish中:
source /opt/fish_config/config.fish
以及/opt/fish_config/config.fish中,除了您自己的鱼肉外,请确保添加:
set fish_function_path $fish_function_path /opt/fish_config/functions
set fish_complete_path $fish_complete_path /opt/fish_config/completions
使用符号链接可能更容易,尽管文件权限可能是个问题。
就个人而言,尽管我没有在同一台计算机上的多个用户之间共享我的配置,但是我在多台计算机上共享我的配置:我的fish配置位于git中,并且我将〜/ .config / fish符号链接到git目录。