【问题标题】:How can I reset the startup directory to my HOME in Fish?如何在 Fish 中将启动目录重置为我的 HOME?
【发布时间】:2013-04-14 15:15:00
【问题描述】:

在我的桌面管理器中,我已将fish 绑定到键盘快捷键Ctrl + ~。在启动时,fish 打开目录/usr/lib/lightdm/lightdm。这很烦人,因为我与 lightdm 没有任何业务往来,我通常在我的 $HOME 目录中处理代码。

如何更改鱼的启动目录?我想把启动目录改成~/

【问题讨论】:

    标签: shell fish


    【解决方案1】:

    我发现在启动时运行的config.fish 文件一直在更改我的默认工作目录。

    设置我的PATH 的错误尝试在我的config.fish 中留下了一个目录列表,其中第一个是/usr/lib/lightdm/lightdm。 Fish 自动假定没有命令的目录应该是 cd`d 进入,所以我的 shell 在启动时是 cd`进入该目录。

    我删除了杂散线,一切都很好。

    要更改您的 fish 启动目录:cd /path/to/new/startup/directory 添加到您的~/.config/fish/config.fish 文件中,如果不存在则创建它。

    【讨论】:

    • 不,不要这样做!如果您将cd 添加到您的config.fish,它将适用于日常使用,但fish 也会在您运行任何Fish shell 脚本之前运行cd。因此,如果您尝试使用相对于当前目录的路径运行脚本,例如 fish hello.fish./hello.fish,那么除非您已经在您指定的自定义目录。
    • 我想强调 codysehl 所说的,不要那样做;在每个 shell 命令之前执行 cd 通过将其添加到 config.fish 会导致大量问题(例如 vifm 变得非常糟糕)。我学得很辛苦..
    • 如果这个错误,有人可以提供更好的答案吗?
    • stackoverflow.com/a/55730891/7683365 是正确答案,它不会影响您的脚本或来自其他程序的任何 shell 命令调用。
    【解决方案2】:

    正如@nathaniel-waisbrot 在this answer 中所说,您只能在交互式运行fish 时cd(shell 而非脚本):

    # ~/.config/fish/config.fish
    
    if status is-interactive
      cd $HOME
    end
    

    使用fish的status命令

    如果这不适合您,那可能是您的鱼主题。我使用具有a bookmarking featuredangerous theme。从我的启动目录中删除书签为我解决了这个问题。

    【讨论】:

      【解决方案3】:

      虽然与 OP 的问题没有直接关系,但它足够接近,以至于我的搜索出现了这个线程。所以我将这个答案分享给其他搜索者。

      iTerm 将在其“排列”选项卡下存储路径(连同选项卡、选项卡标题和窗口布局)。显然,当我设置默认排列时,我打开了一个选项卡到 /

      我可以通过cding 到我的主目录并更改我的默认窗口排列来将其更改为我想要的任何内容。

      我想如果您没有默认安排,“重用以前会话的目录”选项将适用于新会话,但不适用于恢复的安排。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-29
        • 2018-10-09
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-01
        • 2019-05-05
        • 1970-01-01
        相关资源
        最近更新 更多