quiltedcomputer Asked: 2022-05-20 13:12:34 +0800 CST2022-05-20 13:12:34 +0800 CST 2022-05-20 13:12:34 +0800 CST 如何使用鱼壳在上一个目录中打开新的终端窗口? 772 我使用 fish shell 和 Gnome-Terminal 版本 3.44。 当我打开一个新终端时,我希望它在以前访问过的目录中启动。我怎样才能通过鱼壳来实现呢? fish gnome-terminal 1 个回答 Voted Best Answer NotTheDr01ds 2022-05-20T17:39:22+08:002022-05-20T17:39:22+08:00 关于何时保存目录,您有几个选项: 当你退出 shell 或者每次目录更改时 我将在本示例中使用“每次”方法。首先,我建议退出所有终端/鱼壳。这将允许后续的 shell 调用正确加载新函数。 创建一个在启动时运行的 Fish 脚本: ~/.config/fish/conf.d/starting_dir.fish: set -q fish_most_recent_dir && [ -d "$fish_most_recent_dir" ] && cd "$fish_most_recent_dir" function save_dir --on-variable PWD set -U fish_most_recent_dir $PWD end 这将: 检查fish_most_recent_dir变量是否存在,它是否引用了现有目录,如果存在则对其进行更改。 创建一个save_dir函数,在目录更改时将当前目录保存到fish_most_recent_dir通用变量 ( --on-variable PWD)。 这种save_dir方式需要在启动时强制加载事件函数,因为自动加载函数无法处理fish中的事件。 请注意,如果您的启动配置中有任何其他cd语句,它们可能会在此函数之后执行。如果发生这种情况,他们将覆盖它。 如果您只想在 Fish 退出时保存工作目录,您可以更改事件函数以改为使用--on-event fish_exit。
关于何时保存目录,您有几个选项:
我将在本示例中使用“每次”方法。首先,我建议退出所有终端/鱼壳。这将允许后续的 shell 调用正确加载新函数。
创建一个在启动时运行的 Fish 脚本:
~/.config/fish/conf.d/starting_dir.fish
:这将:
检查
fish_most_recent_dir
变量是否存在,它是否引用了现有目录,如果存在则对其进行更改。创建一个
save_dir
函数,在目录更改时将当前目录保存到fish_most_recent_dir
通用变量 (--on-variable PWD
)。这种
save_dir
方式需要在启动时强制加载事件函数,因为自动加载函数无法处理fish中的事件。请注意,如果您的启动配置中有任何其他
cd
语句,它们可能会在此函数之后执行。如果发生这种情况,他们将覆盖它。如果您只想在 Fish 退出时保存工作目录,您可以更改事件函数以改为使用
--on-event fish_exit
。