我习惯使用美国国际键盘布局。但是,Windows 和 Linux 之间的实现似乎有很大差异(就我而言,Gnome 可能是 GTK 的问题,因为 GTK 在 Windows 上的行为相同)。
该布局使用死键,例如'、"、^等键,可轻松输入带变音符号的字符。在 Windows 上,按下一个死键,然后按下一个没有配对的键,将产生死键的字符(与空格配对时)和第二个键的字符。例如:按",a可产生“ä”,但按',可产生“'s”,因为和s不配对。's
现在,有一种语言叫做英语,它经常使用这两个字符,而且由于它在 Windows 上可以像往常一样输入它们,所以对我来说这已经成为了肌肉记忆。这让我想到了我的问题:
在 Linux 上(在 Windows 上为 GTK),是'和s(之间的)配对许多others),结果就是ś
(这又导致我频繁输入“itś”)。因此,输入“it's”需要我在末尾输入', , 。s
我习惯的其他一些组合不起作用。其中之一是,对于不存在的对,只需没有什么结果是。输入“I'd”会得到“I”。按两次其中一个键会得到一个无间距变音符号,这打破了我先输入两个引号再输入字符串的习惯(现在会得到一个无间距的尖音符或长音符号)。
长话短说:所提供的美国国际布局似乎都无法与 Windows 中的布局相同 - 是否有做效果一样吗?或者有没有机会这样配置?虽然用重音符号或无间距变音符号输入 s 可能很好,但这些对我来说并不常见。
答案1
目前有一个 github repo 提供了一个解决这个问题的.deb 文件:
适用于 Linux 的 Windows™ 美国国际版 XCompose
正如其他答案所建议的那样,它基于定制的.XCompose 文件。
从该页面(Ubuntu / Debian):
sudo apt-add-repository -y ppa:rael-gc/utils
sudo apt update
sudo apt install win-us-intl
im-config -n uim
注销并登录。如果不起作用,请尝试重新启动系统。
答案2
一种可能性是避免出现死键,而是使用 Compose 键输入重音字母。例如,键入Compose " a。ä
您必须选择包含Compose键的键盘布局选项;常见的选择是右键左侧的键Ctrl(我认为 Windows 称之为Menu)。 的优点Compose是您可以在不更改主布局的情况下输入许多花哨的字符。缺点是输入重音字母需要按三次而不是两次。
或者,您可以通过在主目录中创建一个名为(注意 CApitalization)的文件并列出所需的组合来配置死键的效果.XCompose
。例如:
包括“/usr/share/X11/locale/en_US.UTF-8/Compose” <dead_acute> <space> :“'”撇号 <dead_acute> <exclam> :“'!” <dead_acute> <quotedbl> :“'\”” # ETC... <dead_acute> <a> :“á” <dead_acute> <b> :“'b” # ETC...
语法相当简单: 左侧的键序列:
转换为""
右侧的字符串:
。右侧的额外单词是与此键序列相对应的键符(即键的名称);它并不十分重要。从 a#
到行尾的所有内容都将被忽略。
如果您的发行版将第一行放在不同的位置,请将其更改为指向系统文件。您可以在此文件中查找更多语法示例。<Multi_key>
是密钥的另一个名称Compose。
左侧<
尖括号内的名称是键盘符号。您可以在(此文件位于开发包中,例如在 Ubuntu 上)>
中找到键盘符号列表。/usr/include/X11/keysymdef.h
x11proto-core-dev
是的,这需要输入很多内容,但你应该能够通过复制粘贴大块内容keysymdef.h
并进行一些巧妙的批量替换来自动化大部分操作。有一点会有所帮助,那就是你可以重用右侧的十六进制代码来制作右侧字符串,这要归功于“\x日“语法:turn 例如
#define XK_exclam 0x0021 /* U+0021 感叹号 */
进入
<dead_acute> <exclam> :“'\x21”
最后,您可以设置一个带有死键和一个Compose键的键盘布局。如果您是德国人,您可能只设置"一个死键。如果您要走这条路,最简单的选择是使用 GUI 设置一个没有死键的键盘和一个.Xmodmap
死键的文件,其中包含类似
keysym 撇号 = 撇号 dead_quotedbl
答案3
我知道这个问题已经“解决”了一段时间。但是,我想介绍一下我的解决方案,它结合了本页的发现以及大量的测试和实验。
适用于 Linux 的 Win US Intl是我编写的一系列脚本,用于解决 Linux 原生 US Intl 键盘布局出现问题的问题,正如 OP 所写。我使用它主要是因为我的母语是西班牙语,而且我仍然使用很多英语论坛、文本、聊天等(比如这个网站)。
需要注意:这实际上与 Windows XP 美国国际键盘布局的行为类似(并不完全相同)。
您可以前往http://tamh.info/en/win-us-intl-4-linux/来检查一下。我正在对其进行改进,包括添加更多 XCompose 条目以应对其他几个边界情况,以及其他更改。
答案4
因此有一个解决方案,正如有人在这里发布的那样,有一个 github repo 可以完成这项工作:https://github.com/raelgc/win_us_intl 以下是您要执行的操作:
下载 zip 文件
提取到您想要的任何位置,您的重点应该放在 XCompose 文件上。
使用您喜欢的文本编辑器打开 XCompose 文件,然后输入以下内容包括“/usr/share/X11/locale/en_US.UTF-8/Compose”像这样的一行:包括“%L”
将 XCompose 文件移动到~/目录
编辑:
- 此步骤不再需要,在所有新版本的 Linux 上它都可以正常工作,如果它不适合您,请仅当您知道自己在做什么时才执行此步骤,因为 XIM 存在一些已知问题。
- 编辑你的〜/ .profile并输入导出 GTK_IM_MODULE="xim"在文件末尾。
编辑:
- 如果您正在使用 GNOME:IBus 已预先安装此环境,更改为其他输入法不会产生任何影响,因为 GNOME 无论如何都会启动它并配置重要变量。
- 如果您不想使用 IBus,请在终端中输入此命令: im-config -n uim
重启
笔记:对于我来说,如果没有第 5 步,此解决方案就不起作用,因此,如果您知道如何帮助我和其他处于与我相同情况的人,这是我提出的另一个问题的链接:我的系统无法读取 .XCompose 文件