【问题标题】:How to make fish shell delete words like bash does如何让鱼壳像bash一样删除单词
【发布时间】:2017-02-14 20:14:25
【问题描述】:

我再试一次鱼壳。真正让我烦恼的一件事是 Ctrl+w 快捷方式的“新”行为。

考虑以下情况:

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

...光标位于行尾。

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

  • 在 bash 中:~/.config/fish/config.fish 被删除
  • 在fish中:仅删除config.fish

如何让fish删除只用空格分隔的单词?

【问题讨论】:

  • 我不熟悉fish shell,但这通常由定义行编辑器应将哪些字符视为“单词”的设置控制。例如在 vim 你有 iskeyword 选项变量和 zsh 有 shell 变量 $WORDCHARS 。即默认情况下 zsh 行编辑器会执行您想要的操作,但我个人希望 ^W 停止在文件路径段上,所以我编辑了 $WORDCHARS。有时行为也特定于您正在调用的行编辑器函数。

标签: bash key-bindings fish


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 好的,这让我升级到2.3版本,效果很好!谢谢!
猜你喜欢
  • 1970-01-01
  • 2022-11-15
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
相关资源
最近更新 更多