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
词的意思等等