.inputrc 设置:delete-char 和 [] 键绑定不起作用

.inputrc 设置:delete-char 和 [] 键绑定不起作用

我在 Windows 下使用 mingw。当我使用 ruby​​ (irb) 时,我的“特殊”字符(如 []{} 和 \)不起作用。这是因为我的德语键盘,这些键与 AltGr(Alt + Ctrl)一起使用。我找到了解决方案这里或者这里

现在,当我添加行

"\M-[": "["

在我的 .inputrc 文件中,删除键不再起作用。它的定义与往常一样:

"\e[3~": delete-char

按删除键只会返回[3,而按 Ctrl + v,删除会^[[3~按预期返回。

.inputrc 中的这两个定义不知为何不能一起工作。有什么想法吗?

编辑:
只有删除键不起作用,我的其他绑定都起作用,例如:

"\e[1~": beginning-of-line              # home (ok)
"\e[2~": paste-from-clipboard           # insert (ok)
"\e[3~": delete-char                    # delete (PROBLEM)
"\e[4~": end-of-line                    # end (ok)
"\e[5~": history-search-backward        # pageup (ok)
"\e[6~": history-search-forward         # pagedown (ok)

答案1

DEL: delete-char

应该对你有用。

答案2

\M-[ 表示 META-[,可以用 ALT-[ 或 ESC 来实现[ \e[ 表示 ESC,[ 但这只是之前重新定义的

答案3

解决方案是引入一个条件初始化构造

$if ruby
  "\M-[": "["
  "\M-]": "]"
  "\M-{": "{"
  "\M-}": "}"
  "\M-\\": "\\"
  "\M-|": "|"
  "\M-@": "@"
  "\M-~": "~"
$else
  "\e[1~": beginning-of-line              # home
  "\e[2~": paste-from-clipboard           # insert
  "\e[3~": delete-char                    # delete
  "\e[4~": end-of-line                    # end
  "\e[5~": history-search-backward        # pageup
  "\e[6~": history-search-forward         # pagedown
$endif

但最初的问题:这里发生了什么仍然存在:)

相关内容