我遇到了一个奇怪的问题:我无法在 bash 中输入或复制百分号...
我尝试读取~/.bashrc
,/etc/profile
(以及 中的内容/etc/profile.d
)。我也尝试了sudo bash
,但仍然无法输入“%”。百分号有效sh
...
还检查了键映射:xmodmap -pke | grep percent
给出keycode 14 = 5 percent 5 percent
。如果我更改键映射,例如使用,它会在按下时xmodmap -e "keycode 14 = 5 U203D 5 UD203D"
打印字符‽
SHIFT+5
同样奇怪的是:我甚至无法将 % 符号从剪贴板复制到终端。
有什么建议么?
cat ~/.inputrc
$include /etc/inputrc
%"\e[5~": history-search-backward
%"\e[6~": history-search-forward
"\e[A": history-search-backward
"\e[B": history-search-forward
cat /etc/inputrc
# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off
# try to enable the application keypad when it is called. Some systems
# need this to enable the arrow keys.
# set enable-keypad on
# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
# do not bell on tab-completion
# set bell-style none
# set bell-style visible
# some defaults / modifications for the emacs mode
$if mode=emacs
# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert
# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history
# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
$if term=rxvt
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line
# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line
$endif
uname -a
Linux 3.2.0-65-generic #99-Ubuntu SMP Fri Jul 4 21:03:29 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
顺便说一句:这个问题最初是在https://stackoverflow.com/questions/28362965/percent-sign-in-bash-is-not-typeable
答案1
删除行中的 %
%"\e[5~": history-search-backward
%"\e[6~": history-search-forward
在您的inputrc
文件中。这些是定义以 键开头的键盘序列%
,它们基本上会导致该键不可用。如果您删除%
,则这些行会将 history-search 与 PageUp 和 PageDn 键关联起来。