如何在 zsh 中绑定命令键?

如何在 zsh 中绑定命令键?

可以在 zsh 中绑定 mac os x 的 Command Key 吗?我找不到任何相关信息。

答案1

如果您使用 iTerm2,则可以。首先,配置热键以发送您的自定义代码:

然后您可以通过将以下内容放入您的中来绑定它们.zshrc

bindkey '^[begin' beginning-of-line
bindkey '^[end' end-of-line

答案2

是的,但它并不像你希望的那么简单。

首先,当按下命令键组合时,Mac OS 不会将控制序列传递给应用程序。相反,应用程序会向操作系统提供可通过 Apple 事件执行的功能。将按键组合绑定到特定的 Apple 事件发生在操作系统级别。

我能想到的最佳解决方案如下:

  1. 编写一个 AppleScript 来执行您想要执行的任何操作;使用命令do shell script执行 shell 命令 – 或者如果愿意的话编写一个 shell 脚本。无论哪种方式,这种方法都会为每次运行命令打开一个新的终端窗口。

  2. 或者,找出能够产生所需行为的一系列击键序列(例如,您应该能够键入“top”以在当前 shell 窗口中启动 top)。

  3. 使用 Automator 创建一个服务,该服务可以运行 AppleScript(或 shell 脚本或其他脚本),也可以键入按键。将此服务分配给终端,并为其分配键盘快捷键。本指南将引导您完成该过程: http://www.makeuseof.com/tag/how-to-create-your-own-services-menus-mac/

方法 1 并不完美,因为您无法在当前窗口 shell 会话中运行它。方法 2 也不完美,因为当活动 shell 会话正在运行除 zsh 之外的任何程序时,它会产生不理想的结果。

相关内容