readline 中支持驼峰命名法的向后终止字

readline 中支持驼峰命名法的向后终止字

backward-kill-word是删除前一个字母数字单词的 readline 操作。例如,在以下场景中应用此操作(指示光标的位置)

echo hello-friend▯

结果是

echo hello-▯

backward-kill-word通常绑定到<Alt-Backspace>,尽管这可以在 readline 的配置文件中自定义~/.inputrc

我的问题是:是否可以进行自定义backward-kill-word,以便删除第一个非字母数字字符或第一个大写字母?这样,它就可以用来删除 CamelCase 单词。例如,如果我从

echo HelloFriend▯

按下后<Alt-Backspace>我想获得

echo Hello▯

答案1

如果可以选择切换到zsh,您可以使用select-word-style用户贡献的小部件它允许您为所有单词动作和操作选择单词样式。

添加~/.zshrc

autoload -U select-word-style
zle -N select-word-style
bindkey '\ez' select-word-style
select-word-style default

然后按Alt+Z选择替代文字样式:

$ 回显你好朋友Alt+Z
文字样式(点击回车查看更多详细信息):
(b)ash (n)正常 (s)地狱 (w)hitespace (d)默认 (q)uit
(B)、(N)、(S)、(W) 如上,带有子字匹配

然后大写B会选择一种(对我来说很烦人,但也许对你来说很熟悉)bash单词选择风格,但使用驼峰式子词处理更改,其中(在emacs模式下)Ctrl+ W(或Alt+ Backspace)将删除Friend上面的内容,或者Alt+B将移回开头这个Friend词的意思等等

相关内容