首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何绑定函数fish shell插件

如何绑定函数fish shell插件
EN

Stack Overflow用户
提问于 2022-03-28 10:36:35
回答 2查看 223关注 0票数 1

我正试图为鱼壳写一个插件,但没能让它正常工作。我在一个名为functions/codex.fish的文件中有以下内容

代码语言:javascript
复制
function create_completion
    commandline -a test
end

bind \cx create_completion

我使用fisher安装了这个插件

代码语言:javascript
复制
tom@desktop-20-3 ~/g/b/z/update_insert (main)> fisher install ~/git/codex.fish/
fisher install version 4.3.1
Installing /home/tom/git/codex.fish
           /home/tom/.config/fish/functions/codex.fish
Updated 1 plugin/s

但是,当我尝试使用Ctrl+x运行函数时,什么都不会发生。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-29 06:24:39

我在一个名为functions/codex.fish的文件中有以下内容:

这是你的问题。鱼的功能是懒洋洋的。名为"codex.fish“的文件将在第一次执行名为"codex”的函数时加载。

因此,只有在会话中运行"codex“一次之后才会定义这些绑定(除非有另一个具有优先级的codex.fish,在这种情况下根本不会定义它们)。

只需将绑定添加到config.fish或~/.config/fish/conf.d中一个急切加载的文件中即可。

票数 1
EN

Stack Overflow用户

发布于 2022-03-28 18:52:21

您不需要插件来设置键绑定。有一种方法可以做到:

  1. 创建您的函数:

代码语言:javascript
复制
function create_completion
     commandline -a test
end

  1. 将其保存到磁盘:

代码语言:javascript
复制
funcsave create_completion

(这将创建文件~/.config/fish/functions/create_completion.fish;您也可以手动创建该文件。)

  1. 运行funced fish_user_key_bindings并添加绑定:

代码语言:javascript
复制
function fish_user_key_bindings
    bind \cx create_completion
end

现在,control应该执行这个函数。

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

https://stackoverflow.com/questions/71646083

复制
相关文章

相似问题

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