在 macOS 中,“系统修饰键”(用于复制、粘贴等全系统操作系统快捷键的键)是cmd
,它与 键是分开的ctrl
。这意味着cmd
键可用于打开新的浏览器选项卡和全系统复制/粘贴等操作,而 键ctrl
可用于以 emacs 样式导航文本(例如,ctrl-a
转到操作系统中任何位置的行首)。
自从切换到 Debian 后,我就因为没有这种分离而感到非常沮丧。这意味着我的肌肉记忆ctrl-a
会转到行首,而不是选择所有文本(就像cmd-a
在 Mac 上一样)。
有没有办法将ctrl
按键的功能重新分配给其他按键?这并不意味着重新映射ctrl
到键盘上的其他按键;我仍然希望ctrl
它存在,但我不想将它用于复制/粘贴之类的操作,我希望使用其他修饰键来执行此操作,并让其ctrl
自由用于 emacs 样式的命令。
我知道在所有情况下这可能都很困难,但即使我能让它在 Chrome、终端和一些 IDE 中运行,那就足够了。
答案1
过去几天我发现可以适应这种用例的一件事是自动键。它允许您(除其他外)在特定组合键上运行 Python 脚本来修改其操作。这可用于在 Linux 中模拟 macOS 键盘(其中ctrl
是其自己的键,cmd
在这种情况下可以被视为alt
或 的同义词win
)。
例如,为了更改ctrl-a
为转到行首(emacs 样式),并用于alt-a
全选,我编写了以下脚本:
import re
if re.match('.*Gnome-terminal', window.get_active_class()):
keyboard.send_keys("<ctrl>+a")
else:
keyboard.send_keys("<home>")
这允许ctrl-a
在终端中保留其行为,但所有其他程序(例如 Chrome 和 IntelliJ)都会转到行首。在 AutoKey 中,它与ctrl-a
按下该快捷键绑定,并在按下时运行。
另一个示例是使用alt-w
关闭标签页(例如在 Chrome、IntelliJ 和终端中)。可以使用绑定到以下脚本来完成此操作alt+w
:
import re
if re.match('.*(Gnome-terminal|jetbrains-clion)', window.get_active_class()):
keyboard.send_keys("<ctrl>+<shift>+w")
else:
keyboard.send_keys("<ctrl>+w")
答案2
- Command + 空格
- 搜索键盘(您也可以从设置->键盘进入)
- 选择子选项卡 - 键盘
- 点击修饰键
- 随意更改。希望这有帮助。这是修饰键的屏幕截图!!