是否可以配置 bash 以便 ctrl-W 正确删除单词?

是否可以配置 bash 以便 ctrl-W 正确删除单词?

Readline 提供了两种不同的删除单词函数,但似乎都无法配置,而且效果也不理想。我是否可以施展某种魔法,将这两种行为结合起来,得到我想要的结果?

**** Bind ctrl-W to backward-kill-word ****

% the "quick brown" fox
                        ^
% the "quick brown"        # 1x
                    ^
% the "quick               # 2x
             ^
% the "                    # 3x
       ^
%                          # 4x
  ^

不:不明白引用的字符串是一个单词。

**** Bind ctrl-W to shell-backward-kill-word ****

% the "quick brown" fox
                        ^
% the "quick brown" fox    # 1x
                       ^
% the "quick brown"        # 2x
                   ^
% the                      # 3x
     ^
%                          # 4x
  ^

不:更接近了,但是坚持将光标定位在前一个单词的正上方,并在与backward-kill-word正确删除整个单词相同的情况下删除一个空格,这使得使用这种方法变得无法容忍。

这是我可能想到的默认行为,但我无法引出它。

% the "quick brown" fox
                        ^
% the "quick brown"        # 1x ctrl-W
                    ^
% the                      # 2x ctrl-W
      ^
%                          # 3x ctrl-W
  ^

编辑:我很高兴地说,我找到了一个可以实现这一点的宏,至少在这个简单的情况下是这样。时间会证明它是否有效。

Meta-w: shell-backward-kill-word
Meta-s: delete-horizontal-space
Control-w: "\M-s\M-w "

相关内容