【问题标题】:Why readline does not unset `backward-delete-char`?为什么 readline 不取消设置 `backward-delete-char`?
【发布时间】:2018-03-05 08:27:44
【问题描述】:

我需要将代码127(又名DEL,又名^?)绑定到delete-char

如果我将DEL: delete-char 放入~/.inputrc,它就不起作用。这是因为backward-delete-char默认使用此代码。

所以,首先我需要从backward-delete-char 中释放这段代码:

$ bind -u backward-delete-char

但由于某种原因它并没有取消:

$ bind -q backward-delete-char
backward-delete-char can be invoked via "\C-?".

readline 库(供本地使用)的源代码中应更改哪些内容以解除 \C-?backward-delete-char 的绑定?

注意如果我取消设置例如delete-char,它会完美运行:

$ bind -u delete-char
$ bind -q delete-char
delete-char is not bound to any keys.

【问题讨论】:

    标签: readline libreadline


    【解决方案1】:

    运行GNU bash, version 4.4.19(1)-release (x86_64-apple-darwin16.6.0) 我看到了同样的事情。我可以用这个取消设置我想要的那个:bind -m emacs-meta -u backward-kill-word

    根据维护者切特的说法:

    除非您使用 -m' option, the commands act on the current keymap, which is eitheremacs' 或(通常)`vi-insert'

    我发现他的示例命令不太有效,只有 -m emacs-meta 有效 - 但我不确定如何准确发现适用的键盘映射。

    发现过程:搜索邮件列表(谷歌和site:http://lists.gnu.org/archive/html/bug-bash/ "bind -u")并拿起: Re: Some readline functions can't be unbound with bind -u

    【讨论】:

    • 注意:我最近回过头来在beginning-of-line 上尝试了这个,但即使使用各种键盘映射也无法正常工作 - 所以我最终一一解除绑定键序列(例如,@ 987654328@)
    猜你喜欢
    • 2010-10-16
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多