我只是学到了命令行有标记,就像 emacs 一样。但是,与 emacs 不同的是,
C-w
它不会删除该区域,而只会向后删除一个单词。有readline
等效的吗?
答案1
在 readline 和 zsh 中,这kill-region
与 emacs 或 tcsh 中的小部件相同,但默认情况下不绑定,因为与 tcsh 相反,它们都选择^W
与werase
tty 设备线路规则对齐。
请参阅zsh 中info bash kill-region
的 bash/readline 。info zsh kill-region
要将其绑定到^W
, 在 zsh 中(就像在 tcsh 中一样):
bindkey '^W' kill-region
在 zsh 中(就像在 tcsh 中一样)。
在 bash 中,您首先需要配置行规则以使用不同的字符werase
或禁用werase
altoger(但随后您将无法从 tty 自己的行编辑器中删除单词):
stty werase '^O'
# or:
stty werase '' # disable
bind '"\C-w": kill-region'
或添加"\C-w": kill-region
到您的~/.inputrc
以影响所有使用 readline 的应用程序。这也有同样的限制;werase
必须在 readline 初始化之前更改为其他内容,因此对于 bash,在 bash 启动之前。