如何让 fish shell 像 bash 那样删除单词

How to make fish shell delete words like bash does

我正在第二次尝试这条鱼 shell。真正让我烦恼的一件事是 Ctrl+w 快捷方式的 "new" 行为。

考虑以下情况:

$ vim ~/.config/fish/config.fish

...光标位于行尾。

当您按下 Ctrl+w 时,会发生以下情况:

如何让 fish 删除仅由空格分隔的单词?

“\cw”(fish 的表示法)绑定到“backward-kill-path-component”(bind \cw 会告诉你)。

如果您愿意,可以将它绑定到其他东西,包括输入函数,如“backward-kill-word”或任何 fish 脚本 - bind \cw backward-kill-wordbind \cw "commandline -rt ''"(这将删除整个当前令牌)或 bind \cw backward-kill-bigword。有关详细信息,请参阅 the bind documentationbind --help

这里“word”和“bigword”的区别是“word”只会转到下一个非word-character,可以是“.”。或“/”或“-”等,而“bigword”将真正转到下一个空白字符。

请注意,“bigword”功能仅在 fish 2.3.0 中引入。

您可以在交互式 shell 中尝试这些咒语。如果您决定使其永久化,则需要将它们添加到名为 fish_user_key_bindings.

的函数中