【问题标题】:Better terminal in Mac OS X -- reversing the control and command key-mappingsMac OS X 中更好的终端——反转控制和命令键映射
【发布时间】:2010-09-09 16:27:06
【问题描述】:

我正在尝试在 Mac OS X 中获得相同的 KDE Konsole 体验。

这是我的(过于复杂?)设置:

  • 我在“系统偏好设置”级别交换了控制和命令。 (没有这个就活不下去)
  • Parallels 允许您在 Parallels 应用程序级别上反向控制和命令。所以我可以撤消系统偏好设置(并在虚拟 Linux 中获得我想要的设置)

我希望 Mac OS X 终端应用程序具有相同的每个应用程序选择退出功能。有可能吗?

【问题讨论】:

  • 在系统级别交换控制和命令应该已经在终端中交换它。您要退出系统交换吗?

标签: macos terminal


【解决方案1】:

您可以简单地通过 ssh 进入 Linux/Unix 系统并直接在您的 Mac 屏幕上运行 X11 程序:ssh -X user@host_or_ipaddress,登录,然后运行您想要的 X11 程序(例如 emacs&) X11 应用程序将出现在 Mac 显示屏上。

优点:

  • X11 窗口与任何其他窗口一样工作,包括 Exposé goodness 等...
  • 无需仅在 Parallels 控制台窗口内工作
  • 相同的解决方案适用于任何远程或虚拟 Linux/Unix 系统
  • ssh 连接即使在互联网上也是安全的

技术信息:

  • "ssh -X" 开启 ssh 连接的 X11 转发,即 X11 显示连接安全地通过 ssh 隧道
  • “ssh -X”还处理 X11 身份验证隧道
  • X11.app 在 OSX 上由 launchd 在需要时自动启动
  • X11 可以通过网络连接到显示器,这是它为数不多的酷炫功能之一 ;-)

【讨论】:

    【解决方案2】:

    您可以在“系统偏好设置”>“键盘和鼠标”>“键盘快捷键”中自定义用于单个应用程序的命令键。我认为(如果我正确理解您要做什么)这可能会让您实现目标。您可以重新映射终端的所有命令键以使用控制而不是命令,以使它们不碍事......但是您可能需要在您 ssh 进入的机器上进行大量自定义,以便它们使用命令而不是控制

    看来您将不得不做大量的工作才能让您使用小指而不是拇指作为修饰键。

    另一种可能性:用户偏好可以通过“defaults”命令进行操作。我还没有找到一种方法来使用它来控制它们的修饰键映射,但它在逻辑上应该是可能的(如果你愿意做很多挖掘的话)。如果是这样,那么您可以编写简短的脚本来在 Mac 默认和交换模式之间来回切换。使用 Quicksilver 触发脚本,每当您使用终端时,您都可以调用一个脚本,而无论何时离开它,您都可以调用另一个脚本。再一次,实现你想要的东西是一个很大的痛苦,但它可能是可能的。

    我认为没有干净简单的解决方案。

    如果您愿意安装它们(可能是内核扩展),我见过第三方程序可以更好地控制修改键的操作。他们可能可以做你想做的事,但我不记得名字了。如果你用谷歌搜索修复 emacs 和 vi 键的程序,你可能会找到它们。

    祝你好运。

    【讨论】:

      【解决方案3】:

      我遇到了和你一样的问题。我已将 Command 重新映射为 CAPS Lock,将 Control 重新映射为 Command,但作为 Linux 的频繁用户,我希望这两种设置尽可能相似。我就是这样解决的:

      • 安装Keyboard Maestro(不是免费的,但完全值得),并将其设置为在登录时运行。
      • 在 KM 中,定义宏以将 CMD+{key} 发送到 Terminal 中的 CTRL+{key}

      如果你想重新映射很多键,这是很多的工作。但是我已经自己做了,你可以下载这个文件kmmacros。双击即可安装。几个注意事项:

      • 您需要将 Terminal 设置为使用 option 作为元键(Terminal > Preferences > Keyboard)。
      • 绑定仅适用于 emacs 模式。 This 备忘单应该会有所帮助。
      • 大多数默认快捷方式不再起作用(CMD-NCMD-C、...),Terminal中的菜单> 没有反映这一点。对于某些冲突(新窗口、关闭窗口),我采用了 Gnome 中的冲突。

      【讨论】:

        【解决方案4】:

        您正在寻找的解决方案是 KeyRemap4MacBook。有虎、豹、雪豹和狮子版本。

        安装后,转到 系统偏好设置 -> KeyRemap4MacBook

        然后选择以下选项:

        • 更改 Command_L 键(左命令)
        • ---> Command_L 到 Control_L(终端、虚拟机、RDC 除外)
        • 更改 Control_L 键(左控制)
        • ---> Control_L 到 Command_L(终端、虚拟机、RDC 除外)

        如果您愿意,也可以对 Command_R(右命令)和 Control_R(右控制)重复此操作。在我的 Macbook 上测试并运行。

        【讨论】:

          【解决方案5】:

          有很好的按键映射灵活的终端:iTerm2

          我最喜欢的一组:iTerm + zsh + oh-my-zsh

          【讨论】:

            【解决方案6】:

            2016 年的解决方案是使用Karabiner 开源程序,它允许您以非常精细的粒度重新映射修饰符和其他键,例如

            • 仅重新映射 left ⌘ CmdOption 键。
            • 仅为特定应用程序重新映射键,例如仅在终端、Emacs 或虚拟机内。

            例如,这里是如何重新映射左 ⌘ Cmd 键以充当 Ctrl 仅在终端内(并且不影响右键,因此您仍然可以使用例如 ⌘ Cmd + Tab 在应用程序之间切换):

            【讨论】:

            • 我在 Karabiner 中看不到执行此操作的选项。
            • Karabiner 可以像这样仅用于特定的用户选择的应用程序,还是仅用于 Karabiner 应用程序中列出的应用程序?我只想在使用 REAPER 时交换命令和控制键,但我不知道该怎么做。
            猜你喜欢
            • 2012-05-11
            • 1970-01-01
            • 2023-03-27
            • 1970-01-01
            • 1970-01-01
            • 2013-03-10
            • 2011-11-13
            • 2010-10-27
            • 1970-01-01
            相关资源
            最近更新 更多