在 Linux 上按 F9 返回正确的值
~
在 UNIX(Solaris 或 hpux)返回时
0~
如何在这些系统上设置正确的波浪号?
答案1
功能键可以由窗口管理器或终端仿真器解释(例如,您会发现 F11 通常会最大化窗口)或作为 VTxxx 或 ANSI 转义序列传递到程序。
Linux 和 Solaris 上的 F9 通常发送ESC[20~.根据软件的版本,bash
orksh
会将其解释为0~
或~
。另一方面,如果您的 shell 是 dash,它不进行任何行编辑,您将看到^[[20~
.
要使 F9 发送~
:
如果您使用的是 X(在美国布局键盘上测试):
xmodmap -e "keycode 75 = asciitilde"
在 Linux 控制台上,运行showkey
以查找 F9 的键码。在我的系统上,它是 67。然后运行此命令(您可能需要 root 身份):
echo "keycode 67 = asciitilde" | loadkeys
在 Solaris 10 控制台上,运行showkeys | more
以查找 F9 的密钥表条目。在我的带有虚拟 USB 键盘的虚拟机上,它是key 66 all tf(9)
.然后创建一个包含以下内容的文件:
key 66 all ~
并运行loadkeys /path/to/file
。
答案2
我不知道是什么让您认为 F9 返回波浪号是“正确的”,但如果您想要波浪号,则应该使用波浪号键。
根据您使用的客户端硬件、客户端软件、服务器端软件以及服务器端硬件的差异,功能键大多是未定义的。
答案3
首先找到的解决方案必须按
CTRL+V and key
就我而言是 F9 所以我这样做了
CTRL+V F9
并返回这个
^[[20~
现在我知道是键 20 并且我将它绑定到波形符
bind '"\e[20~":"~"'
我尝试按 F9 并返回波形符,我将其放入 $HOME/.profile 中以进行永久更改