在 bash 的绑定命令中使用 Mac OS 命令键

在 bash 的绑定命令中使用 Mac OS 命令键

在我的 ubuntu bash 中,我重新映射了Ctrl-y组合键以将文本复制到剪贴板,如下所示:

bind -x '"\C-y": copy_line_from_x_clipboard'

有用。现在,我正在迁移到 Macbook,我喜欢使用Commandkey 而不是Ctrl上面的 key。我在网上没有看到任何包含 Mac OS 命令键的键绑定示例。我尝试获取Command-y使用该命令的组合键sed -n l,如下所示这里Command-y,但在输入按键后显示空行。

对于那些感兴趣的人,从剪贴板粘贴文本的被调用函数是,

copy_line_from_x_clipboard() {
        local n=$READLINE_POINT
        local l=$READLINE_LINE
       local s=$(xsel -ob)
       READLINE_LINE=${l:0:$n}$s${l:$n:$((${#l}-n))}
       #READLINE_LINE=${l:0:$n}$s
       READLINE_POINT=$((n+${#s}))
}

答案1

根据评论之一在控制台 Vim 中使用 CMD 映射,您不能使用CommandTerminal.app 中的密钥,尽管您可以在 iTerm2 中。

您可能正在寻找修饰语,例如shiftcontrol类似于altmeta键的东西。

在 Terminal.app 的键盘首选项中,您有一组使用这些修饰符的初始键定义 - 以及Option.您可以更改这些定义,或添加新的定义。

以下是显示该对话框的几个屏幕截图:

显示键盘首选项屏幕

第二个屏幕截图显示Option(单独或与其他修饰符结合使用),但Command不可供在终端中运行的程序使用:

显示键的可用修饰符

答案2

如果您使用 iTerm2,这里有一个有用的技巧...

  1. 转到首选项->按键->按键绑定
  2. 将您想要自定义的任何组合键设置为“忽略”,以将其与默认功能分离
  3. 转到首选项->个人资料->密钥
  4. 设置组合键以发送 ctrl 等效项的 Unicode 十六进制代码,例如 ^R 是 0x12

相关内容