作为一名程序员,我发现自己输入符号的次数比输入数字的次数多得多。因此,如果键盘上的数字行默认显示符号就好了。
最终结果应该是:6会产生^
并且Shift+6会产生6
。
我尝试过切换到 Dvorak 一段时间,但是陡峭的学习曲线和迫在眉睫的最后期限使得这不是一个有吸引力的解决方案。
理想情况下,我也希望在 Windows 上实现这一点,但让我们专注于 Debian,因为它是我的主要开发机器。
从我在网上查找通过快速按下 Shift 按钮激活的“shift lock”功能在 Windows 上确实可以实现这一点,但我找不到任何 *nix 参考。
编辑:理想情况下,解决方案不应该干扰非数字行键,[但是如果确实如此,我可以忍受它(因为{
在 C 中比更常见[
)。
答案1
从你的问题中我了解到你只需要某些键的工作方式与按下 Shift 键时完全相同,反之亦然。为此,你可以构建自己的自定义键盘布局。为此,你可以下载 Microsoft Keyboard Layout Creator莫斯科国立科学图书馆然后使用它为您的系统创建自定义布局。此外,在构建自定义布局后,系统会要求您安装创建的布局,因此请选择“是”以转到安装程序所在的文件夹并安装您的自定义布局。此外,在构建自定义布局后,您还需要重新启动系统。此后,您只需从控制面板激活它即可。
去 (适用于 Windows 8)
- 按 Windows 按钮 + I(打开“设置”超级按钮菜单)
- 点击键盘按钮(右下角)
- 您应该看到您的自定义布局
- 选择它
- 现在您的自定义布局将被激活
答案2
来自主题反转按下 Shift+数字键的作用出现这个 xmodmap 文件:
keycode 10 = exclam 1 exclam 1
keycode 11 = at 2 at 2
keycode 12 = numbersign 3 numbersign 3
keycode 13 = dollar 4 dollar 4
keycode 14 = percent 5 percent 5
keycode 15 = asciicircum 6 asciicircum 6
keycode 16 = ampersand 7 ampersand 7
keycode 17 = asterisk 8 asterisk 8
keycode 18 = parenleft 9 parenleft 9
keycode 19 = parenright 0 parenright 0
有关使用此文件的更多信息,请参阅上面的链接。
答案3
您可以使用dumpkeys
和loadkeys
(对于控制台)或xmodmap
(对于 X)来重新定义给定键盘键的功能。xev
可以告诉您 X 如何看待特定的键输入。
我建议您首先打印完整的键盘映射表达式集;您的系统可能一开始的设置略有不同,在这种情况下,上面的内容将不完全匹配。为此,只需执行xmodmap -pke
(将键盘映射表打印为表达式)。
例如,要重新映射1到 X!
并将Shift+1映射到1
X,我们首先使用 xev 找出1键码 10(在我的情况下;请务必验证)。要重新映射键以反转其移位函数:
xmodmap -e 'keycode 10 = exclam 1 exclam 1 exclamdown onesuperior exclamdown'
要恢复正常功能(这与 打印的内容相匹配xmodmap -pke
):
xmodmap -e 'keycode 10 = 1 exclam 1 exclam exclamdown onesuperior exclamdown'
更改会立即生效,并且至少影响整个 X 会话(它们不是启动 xmodmap 的应用程序本地的)。
一旦您拥有一组可以按照您想要的方式设置键盘的 xmodmap 命令,请将它们存储在 ~/.xmodmaprc 中,然后添加到您的 ~/.xsessionrc 中(如果不存在则创建它):
xmodmap ~/.xmodmaprc
您想要添加到 .xmodmaprc 的部分只是keycode XX = yyy ...
命令行命令的一部分(即开关的参数-e
)。
答案4
对于 BSD 操作系统,请查看此选项键盘布局编辑器或者使用 XKB 为 X11 创建自定义键盘布局
对于 Windows,请查看Microsoft 键盘布局创建器 1.4
这些似乎是我发现的最佳选择。但并不是说它们是唯一的选择。