我在 Debian Jessie 上安装了 GNOME。我更喜欢将 () 绑定到通常的 [ 和 ] 上进行编程,因为我经常使用 lisp。我可以使用 xmodmap 做到这一点,但它会破坏我的其他(葡萄牙语)布局,因为它会转动按键,使字母如下:
á é í ó ú。
放入左圆括号“(”。
我宁愿将每个布局绑定到其特定的特殊键绑定,这样我就可以为两个布局单独切换 () 和 [],而不会互相干扰。
布局类型包括gnome 菜单栏。
答案1
我认为你不能在 中做到这一点xmodmap
。以下是一些可能性...
首选方法。
自定义英语键盘布局(应该是
/usr/share/X11/xkb/symbols/us
)。复制一份,然后将原件更改为交换括号和方括号。这不会影响葡萄牙语布局。您也可以尝试键盘布局编辑器软件。一些参考资料:
如果您使用可定制的环境(例如 Emacs)进行编码,则您可以简单地重新绑定括号和方括号键来插入其他符号。
例如在 Emacs 中:
(define-key key-translation-map (kbd "[") (kbd "(")) ;; etc...
或者在 Vim 中:
imap [ ( " etc...
笔记:如果您无法在编辑器中直接重新绑定打印键,则可以使用文本替换、自动更正或片段扩展插件来自动替换字符。(您必须检查扩展的精确功能,看看它是否适用于此。)
例如,在 Emacs 中,除了上述方法之外,您还可以使用
abbrev-mode
自动更正,甚至 Yasnippet(如果您将其设置为自动和非递归扩展)。
其他方法。
从技术上讲,我确信您可以在 中完成此操作
xbindkeys
,通过将键绑定到检查当前键映射并模拟适当按键的脚本(我不知道它是否可以本地执行后者;如果不能,您需要使用类似xkvbd
或 之类的东西xdotool
)。但这可能不是最好的方法。更改键盘映射会更快,而且不容易出错。
你应该能够使用自动键。它可用于文本替换。不过,您必须做一些研究才能找到如何使其取决于当前键盘映射。