如何在zsh中绑定命令键?

kie*_*iak 11 zsh key-binding

可以在 zsh 中从 mac os x 绑定命令密钥吗?我找不到任何相关信息。

mik*_*1aj 15

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

然后您可以通过将以下内容放入您的.zshrc:

bindkey '^[begin' beginning-of-line
bindkey '^[end' end-of-line
Run Code Online (Sandbox Code Playgroud)


Mar*_*nks 2

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

\n\n

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

\n\n

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

\n\n
    \n
  1. 编写一个 AppleScript 来完成您想做的任何事情;使用该do shell script命令执行 shell 命令 \xe2\x80\x93 或编写 shell 脚本(如果需要)。然而,无论哪种方式,这种方法都会为每个命令运行打开一个新的终端窗口。

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

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

  6. \n
\n\n

方法 1 并不完美,因为您无法在当前窗口 shell 会话中运行它。方法 2 并不完美,因为当活动 shell 会话运行 zsh 以外的任何内容时,它会产生不需要的结果。

\n