![.inputrc 设置:delete-char 和 [] 键绑定不起作用](https://linux22.com/image/1227082/.inputrc%20%E8%AE%BE%E7%BD%AE%EF%BC%9Adelete-char%20%E5%92%8C%20%5B%5D%20%E9%94%AE%E7%BB%91%E5%AE%9A%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我在 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
但最初的问题:这里发生了什么仍然存在:)