Keyboard
點擊 <Del> 鍵時的波浪號
我正在使用 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
當我點擊
<Del>
波浪號時,會列印而不是刪除下一個字元。當我刪除 .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