如何绑定函数 fish shell 插件
How to bind function fish shell plugin
我正在尝试为鱼写一个插件 shell 但无法正常工作。
我在名为 functions/codex.fish
的文件中有以下内容:
function create_completion
commandline -a test
end
bind \cx create_completion
我安装插件使用 fisher
:
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 的功能时,没有任何反应。
我做错了什么?
您不需要插件来设置键绑定。这是一种方法:
- 创建您的函数:
function create_completion
commandline -a test
end
- 将其保存到磁盘:
funcsave create_completion
(这会创建文件 ~/.config/fish/functions/create_completion.fish
;您也可以手动执行此操作。)
- 运行
funced fish_user_key_bindings
并添加您的绑定:
function fish_user_key_bindings
bind \cx create_completion
end
现在 control-X 应该执行函数。
I have the following in a file called functions/codex.fish:
这是你的问题。 Fish 函数是延迟加载的。一旦第一次执行名为“codex”的函数,将加载名为“codex.fish”的文件。
所以这些绑定只会在您在该会话中 运行 “codex” 一次后定义(除非有另一个 codex.fish 具有优先权,在这种情况下它们不会被定义完全没有)。
只需将绑定添加到 config.fish,或 ~/.config/fish/conf.d
中急切加载的文件之一。
我正在尝试为鱼写一个插件 shell 但无法正常工作。
我在名为 functions/codex.fish
的文件中有以下内容:
function create_completion
commandline -a test
end
bind \cx create_completion
我安装插件使用 fisher
:
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 的功能时,没有任何反应。
我做错了什么?
您不需要插件来设置键绑定。这是一种方法:
- 创建您的函数:
function create_completion
commandline -a test
end
- 将其保存到磁盘:
funcsave create_completion
(这会创建文件 ~/.config/fish/functions/create_completion.fish
;您也可以手动执行此操作。)
- 运行
funced fish_user_key_bindings
并添加您的绑定:
function fish_user_key_bindings
bind \cx create_completion
end
现在 control-X 应该执行函数。
I have the following in a file called functions/codex.fish:
这是你的问题。 Fish 函数是延迟加载的。一旦第一次执行名为“codex”的函数,将加载名为“codex.fish”的文件。
所以这些绑定只会在您在该会话中 运行 “codex” 一次后定义(除非有另一个 codex.fish 具有优先权,在这种情况下它们不会被定义完全没有)。
只需将绑定添加到 config.fish,或 ~/.config/fish/conf.d
中急切加载的文件之一。