做一个反击只会产生反击

我的反引号键(`)在第一次按下时不产生任何东西 – 我必须按两次才能产生一个`。 如果我忘了,输入`e,我会得到一个重音e字符。

我只能通过运行以下方法暂时解决当前会话:

xmodmap -e 'keycode 49 = grave asciitilde' 

问题是,我无法弄清楚如何使这种变化永久化。 我在Ask Ubuntu上找到了很多相关的问题,但没有一个能解决这个问题。

我正在使用KDE。

在系统首选项,键盘布局中,有三个英国“变体”:

 Layout Variants ------ -------- English (UK) Default English (UK) English (UK, extended WinKeys) English (UK) English (UK, international with dead keys) 

我的键盘有windows键,所以我在安装过程中选择了第二个变体,看似合理。

事实上,“默认”和“扩展的WinKeys”变体之间的区别似乎与Windows键完全没有关系。 “扩展的WinKeys”变体实际上对AltGr键行为进行了许多更改,其中大部分都是为了更好,例如,AltGr移位的撇号和抑扬符键将急性和旋转的重音添加到下一个被按下的字母,而不是“默认”变体给出的随机结果。

但是,“扩展的Winkeys”变体还会更正AltGr移位的反引号,并返回打印在键上的断条,而不是“默认”提供的不正确的实心条。 这反过来意味着AltGr-backtick不能用于将重音符添加到下一个字母,这与“扩展的Winkeys”变体一致,所以有人显然决定用该函数替换反引号。

由于任何英国Linux用户都会使用Compose-keyfunction来编写带重音的字母,因此没有人知道这些键盘变体之间的差异,它只会吸引人们。 在提到这种意想不到的行为的反复关键的各种论坛中,每个人都对它为什么会发生时感到迷惑。

这就是这个bug造成的那种事情。 如果我想在路径上的某个位置显示shell脚本的内容,我可能会输入:

 $ cat `which zegrep` 

但相反,我得到:

 $ cat ẁhich zegrep 

…反击和“w”结合成w-with-grave

这是反引号键与英国“扩展WinKeys”布局的映射:

 $ xmodmap -pke | grep "keycode 49" keycode 49 = dead_grave notsign grave notsign brokenbar notsign bar bar 

如果您将键盘布局更改为英国“默认”,则dead_grave键映射将移至第三个位置,即“mode_shifted”位置(如果您在键盘上定义了一个,则由Mode_shift键启用)感:

 $ xmodmap -pke | grep "keycode 49" keycode 49 = grave notsign dead_grave notsign bar bar brokenbar notsign 

我在想我应该报告一个错误,因为显然其他人遇到了这个问题,但我不确定该推荐什么。 也许将“英国,扩展的WinKeys”重命名为“英国,通过AltGr重新登陆”,这样人们通常不会选择它,除非他们知道什么是“死人”并且特别想要这种行为。 或者将dead_grave函数移动到反引号键上的AltGr移位位置,这将使其与其他死键一致。

无论如何,只需转到键盘布局,添加新布局并选择英国默认键盘。

这被称为“死键”。 寻找键盘布局的变体,其中包含“消除死键”或不是“死键”的变体。 对于gb键盘,我认为该变体称为English (UK) 。 您也可以使用命令行进行设置:

 setxkbmap -layout gb -variant basic 

但是,这不是永久性的。 打造基本的

如果你没有找到这样的,那么创建自己的布局是可能的(而且非常简单)。