如何让 fish shell 像 bash 那样删除单词
How to make fish shell delete words like bash does
我正在第二次尝试这条鱼 shell。真正让我烦恼的一件事是 Ctrl+w 快捷方式的 "new" 行为。
考虑以下情况:
$ vim ~/.config/fish/config.fish
...光标位于行尾。
当您按下 Ctrl+w 时,会发生以下情况:
- 在bash中:
~/.config/fish/config.fish
被删除
- in fish: 只有
config.fish
被删除
如何让 fish 删除仅由空格分隔的单词?
“\cw”(fish 的表示法)绑定到“backward-kill-path-component”(bind \cw
会告诉你)。
如果您愿意,可以将它绑定到其他东西,包括输入函数,如“backward-kill-word”或任何 fish 脚本 - bind \cw backward-kill-word
或 bind \cw "commandline -rt ''"
(这将删除整个当前令牌)或 bind \cw backward-kill-bigword
。有关详细信息,请参阅 the bind documentation 或 bind --help
。
这里“word”和“bigword”的区别是“word”只会转到下一个非word-character,可以是“.”。或“/”或“-”等,而“bigword”将真正转到下一个空白字符。
请注意,“bigword”功能仅在 fish 2.3.0 中引入。
您可以在交互式 shell 中尝试这些咒语。如果您决定使其永久化,则需要将它们添加到名为 fish_user_key_bindings
.
的函数中
我正在第二次尝试这条鱼 shell。真正让我烦恼的一件事是 Ctrl+w 快捷方式的 "new" 行为。
考虑以下情况:
$ vim ~/.config/fish/config.fish
...光标位于行尾。
当您按下 Ctrl+w 时,会发生以下情况:
- 在bash中:
~/.config/fish/config.fish
被删除 - in fish: 只有
config.fish
被删除
如何让 fish 删除仅由空格分隔的单词?
“\cw”(fish 的表示法)绑定到“backward-kill-path-component”(bind \cw
会告诉你)。
如果您愿意,可以将它绑定到其他东西,包括输入函数,如“backward-kill-word”或任何 fish 脚本 - bind \cw backward-kill-word
或 bind \cw "commandline -rt ''"
(这将删除整个当前令牌)或 bind \cw backward-kill-bigword
。有关详细信息,请参阅 the bind documentation 或 bind --help
。
这里“word”和“bigword”的区别是“word”只会转到下一个非word-character,可以是“.”。或“/”或“-”等,而“bigword”将真正转到下一个空白字符。
请注意,“bigword”功能仅在 fish 2.3.0 中引入。
您可以在交互式 shell 中尝试这些咒语。如果您决定使其永久化,则需要将它们添加到名为 fish_user_key_bindings
.