Keyboard

點擊 <Del> 鍵時的波浪號

  • January 4, 2022

我正在使用 XFCE 終端仿真器 0.4.8。

我的 ~/.inputrc 文件:

# Insert Key
"\e[2~": paste-from-clipboard
"\C-v": paste-from-clipboard
"\e[A":history-search-backward
"\e[B":history-search-forward
"\M-[3~": delete-char

當我點擊&lt;Del&gt;波浪號時,會列印而不是刪除下一個字元。當我刪除 .inputrc 文件時,它開始正常工作。Google搜尋顯示,這一行:

"\M-[3~": delete-char

幫助人們治癒了這個問題。但不是我。我將這一行插入到 .inputrc 中,甚至刪除了所有其他行。不工作。

怎麼修?

"\M-[3~": delete-char

是不正確的,因為它告訴 bash 查找 的字元[,(根據 bash)可能是後跟 的轉義字元[,或者它可能是通過 OR’ing[與 0x80 形成的字元,即 0xdb 這是Û

實際的鍵只使用轉義字元,所以你應該使用這個設置:

"\e[3~": delete-char

儘管問題已經得到解答,但我想(對於其他人)提到這取決於您的 shell,因為我遇到了同樣的問題,但使用的是 zsh。問題是 zsh 不使用 readline,因此不讀取 inputrc。相反,他們實現了 zsh 行編輯器 (zle)。

我找到的解決方案是在您的 zshrc 中明確設置鍵綁定(因此對於 zle 而不是 readline),如arch wiki中所述

# create a zkbd compatible hash;
typeset -g -A key
key[Delete]="${terminfo[kdch1]}"

# setup key accordingly
[[ -n "${key[Delete]}"    ]] && bindkey -- "${key[Delete]}"     delete-char

引用自:https://unix.stackexchange.com/questions/81256