关闭终端窗口后,如何强制fish持续保存新的键绑定?

关闭终端窗口后,如何强制fish持续保存新的键绑定?

目前我有问题:

  • 我打开一个终端窗口,默认的shell是鱼。
  • 我添加了一个键绑定:bind \ eg functionname
  • 它适用于终端窗口
  • 现在我关闭终端窗口
  • 打开一个新的终端窗口,再次fish是默认的shell
  • 绑定不再起作用,并且不会出现在fish -a输出中

您可以在初始化文件中添加绑定:

 /usr/share/fish/config.fish /etc/fish/config.fish ~/.config/fish/config.fish 

例如,您可以添加以下function:

 function __fish_less commandline -i -- "|less" end bind \ey __fish_less 

一个例子:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

编辑:

从鱼壳文件 :

初始化文件在启动时,fish会评估文件/usr/share/fish/config.fish(或者/ usr / local / fish …如果你在/ usr / local中安装了fish),/ etc / fish / config.fish(或者〜/ etc / fish / …如果您在主目录中安装了fish)和〜/ .config / fish / config.fish(或者$ XDG_CONFIG_HOME变量指定的任何其他目录),按此顺序。 不应直接编辑第一个文件,第二个文件用于系统范围配置,最后一个用于用户配置。 如果只想在启动交互式shell时运行命令,请使用命令’status –is-interactive’的退出状态来确定shell是否是交互式的。 如果只想在使用登录shell时运行命令,请改用“status –is-login”。

例子:

如果要在使用登录shell时将目录〜/ linux / bin添加到PATH变量,请将以下内容添加到〜/ .config / fish / config.fish文件中:

如果status –is-login设置PATH $ PATH~ / linux / bin结束

如果要在fish退出时运行一组命令,请使用由shell退出触发的事件处理程序:

函数on_exit –on-process%self echo fish现在正在退出

通用变量存储在.config / fish / fishd.HOSTNAME文件中,其中HOSTNAME是您计算机的名称。 不要直接编辑此文件,通过鱼脚本或交互式使用鱼来编辑它们。

因此,您应该编辑〜/ .config / fish / config.fish,注销(或重新获取config.fish),最后您应该拥有“自定义绑定”。

我建议你阅读整个文档,并在shell中玩一点,我在这里写的任何内容都不是来自doc。

然后,如果它不起作用,请返回此处的日志(如果可用),配置文件, 调试输出等。

根据这个问题 ,你似乎需要编辑/创建文件~/.config/fish/functions/fish_user_key_bindings.fish ,例如:

 function my_func echo hello end function fish_user_key_bindings bind \eg my_func end