首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在鱼中设置环境变量?

如何在鱼中设置环境变量?
EN

Stack Overflow用户
提问于 2017-07-15 14:45:34
回答 1查看 13K关注 0票数 8

我对fish shell很陌生,只是尝试设置我的$EDITOR变量,因此它在会话和重新引导过程中都是持久的。到目前为止,我尝试过的是:

  1. 从命令行运行set -gx EDITOR vim
  2. 从命令行运行set -Ux EDITOR vim
  3. 运行以set -e EDITOR为前缀的这些命令,以取消任何先前的值。
  4. 将上述命令添加到我的~/.config/fish/config.fish文件中(它抱怨set: Warning: universal scope selected, but a global variable “EDITOR” exists.)
  5. 卸载oh-my-fish并从零开始删除所有鱼类吐露。

无论我做什么,每当我打开一个新终端、启动一个新会话或重新启动时,编辑器变量总是以/usr/bin/nano结束。更奇怪的是,在~/.config/fish/fishd.my-hostname中,我看到了SET_EXPORT EDITOR vim,而没有任何关于nano的东西。这是某种鱼的默认吗?如果是这样,我如何才能正确地设置它?

编辑:我在Antergos Linux上运行Fish 2.6.0。

EN

回答 1

Stack Overflow用户

发布于 2017-07-15 16:36:08

首先,fish配置文件是~/. config /fish/config.fish。编辑您命名的文件不会有任何效果。第二,fish对编辑器或视觉变量没有任何默认设置,也没有设置。因此,无论将其设置为/usr/bin/nano,对于您的系统来说,都是唯一的定制。

如果您set -Ux EDITOR vim并且没有在config.fish中设置它,那么它应该被设置为vim,即使它已经在fish启动时设置了。运行set命令,然后执行set -U | grep EDITORenv | grep EDITOR,以确保将其设置为一个通用变量并导出。现在输入fish启动子shell。运行前两个命令,您应该看到它仍然被设置为相同的值。现在,在子shell中键入set -U EDITOR nano,然后是exit。在前面的shell中,您将看到编辑器设置为nano。

就我个人而言,我不喜欢在这方面使用uvar,因为目前它们是每台机器。我只是在我的~/..config/ set -gX EDITOR (type -p vim) /config.fish中做了。这可以确保,如果我在安装了~/..config/ fish目录的新机器上启动fish,则会得到预期的默认值。

不以这种方式使用uvar的另一个原因是,解析顺序是局部范围、全局范围、通用范围。由于在fish开始运行时导入的环境vars被放置在全局范围中,因此它们将隐藏您定义的uvar。不要导出通用变量。它不太可能产生预期的结果。只需在set -gx脚本中使用config.fish变量即可。

P.S.,在提出这种性质的问题时,您应该始终包括相关事实,例如您正在使用的操作系统和fish版本。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45119425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档