我仍然经常在 Linux 和 Mac 之间切换,我不知道如何避免键盘输入混乱,尤其是在使用浏览器和 Unix 应用程序时。
情况如下:
- Emacs、vim、shell 和其他 Unix 应用程序在 Mac 和 Linux 上都使用相同的 ctrl 键
- 一些非常常见的复制、粘贴、剪切等按键在 Mac 上都交换为 cmd,在 Linux 上则交换为 ctrl。
我尝试过的一些方法:
- 在 Emacs 中使用 cmd 作为 ctrl — — 有点可行,但它会使其他 Unix 类型的应用程序感到困惑。
- 交换键盘上 cmd 和 ctrl 的位置 — 适用于复制、粘贴、全部,但不太适用于其他操作。
我不可能是唯一一个在 Mac 和 Linux 之间来回切换并遇到此问题的人。
从 Linux 方面来解决这个问题并在那里更改映射是否更好,以便我可以在 Mac 上获得相同的映射?
主要问题是浏览器应用程序(Chrome/Firefox)以及 Unix 类型应用程序(Emacs、IntelliJ、Rubymine、Vim、tmux)。
答案1
经过几个月的时间,我确实找到了一个我喜欢的解决方案。
- 在 Mac 上,我已经习惯了有 3 个主要修饰符:Cmd、Ctrl、Opt。
- 在 Linux 机器上,我使用相同的运动键盘,并具有相同的修饰符布局,因此我映射:
Mac => Linux CMD == Ctrl Opt == Alt Ctrl == Ctrl
关键是要按两次 ctrl。后来我习惯了 mac 上 cmd 和 ctrl 之间的区别,在 PC 上,ctrl 就是关键。例如:
在 Chrome 中:
Ctrl-tab on the Mac ==> Ctrl-tab on Linux
Cmd-C on the Mac ==> Ctrl-c on Linux.
因此,我可以在 Linux 上按下两个不同的键并获得与 Mac 相同的结果。
如果您有 Windows 类型的键盘,您可以将特殊的 Windows 键之类的键重新映射为 Mac 命令键。
从那时起,我就只使用 Mac,毫无疑问,这对于触摸打字来说效率更高!
答案2
更新
金拓网现在将在终端应用中将 Alt/Cmd 映射为使用 Ctrl+Shift。当然,其余时间它会将 Alt/Cmd 映射到 Ctrl。
这是一个更简单的解决方案,Kinto。它解决了您遇到的终端键盘映射无法正常工作的问题,同时保持了其他一切的良好键盘映射。
我已经为此工作了 3 年……现在终于觉得我可以做出一些贡献了,因为它的效果非常好,不像我之前的两次尝试。它适用于 x11 和基于 systemd 的发行版,但一旦我找到一个好的方法来实现它,这个概念就会延续到 Wayland,尽管增强的安全性让它很难使用。
1)要点(适用于那些只想了解前提或实现自己的替代解决方案的人,不涉及边缘情况)。
https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb
2) 使用 systemd、bash 和 xprop 的完整安装程序。(包括 chromebook 等极端情况,支持起来非常困难,但我喜欢我的安装程序,这样每个人都能从中受益!)
https://github.com/rbreaves/kinto
本质上,使用此解决方案,您无需费力地正确创建新的快捷键,也不必尝试避免终端应用与其他 GUI 应用的快捷键冲突。您只需兼得两者之长,它就可以尽可能无缝地工作 - 除了包括各种终端和流行文本编辑器的默认快捷键配置文件(我可能会在稍后介绍)。即使是像 Sublime 这样的文本编辑器也不会简单地在每个快捷键上将 Cmd 键替换为 Ctrl,但我认为它在 95% 或更多的时间内都能正确对齐。
说到 Wayland,我确实有一个概念验证,即如何使用现有的小部件来提取应用程序名称,使这个键盘映射键交换技巧在 KDE Plasma 5 上发挥作用。如果有人有更好的解决方案,我愿意洗耳恭听,尤其是如果它也可以在 x11 上工作的话。Xprop 在 x11 上完全足够,但在 Wayland 上显然没用。
https://github.com/rbreaves/applet-window-title/commit/ff17e694579a52a9848d6bea87b2d11f22033718
答案3
不久前我经历过这个问题,并发现了某人的自动密钥设置(如果我能找到它的来源,我会给予赞扬)。
我针对我的设置中缺少的一些东西进行了修改,但它在这里:
https://github.com/ericwooley/dotfiles/tree/master/.config/autokey
我喜欢 95% 的按键都是相同的。
有些东西仍然不同 cmd + right 和 cmd + left 的行为不一样,在 Linux 上我使用 alt+page-up 和 down。
我最终依靠编辑器中的 vim 绑定来保持我的理智,如果您所做的事情可行的话,我会推荐它。
哦,guake 有一个可配置的终端复制和粘贴设置,所以我将其设置为 alt+c 和 alt+p 以进行终端恶作剧
答案4
KDE(Kubuntu)有一个快捷方式配置工具,可让您设置全局快捷方式,但我测试时无法让它识别更改。可能需要重新启动。也许 Ubuntu 有类似的选项。
另一个可能对 Linux 中的复制和粘贴功能有帮助的方法是使用鼠标中键进行粘贴。当您突出显示某些文本时,您不必复制它 - 突出显示它,切换到其他应用程序,然后单击鼠标中键以粘贴突出显示的文本。不同的习惯会使键盘问题变得毫无意义,至少对于那些特定功能而言。