如何在终端发送特殊组合健,比如 C-RET(Control-Enter)

有没有人解决了这个问题。

C-, C-RET 这类特殊的组合件无法发送。

像我用的终端 iTerm2 上配置了一些组合件发送 Hex Codes(不知道从哪里抄来的了),但是不包含 C-RET 等键位,这个快捷键在 org-mode 还是挺常见的。

这里有篇 Terminal Emulator Readline 的相关资料,但是还是一头雾水。

C0 and C1 control codes - Wikipedia

iTerm2 配合 可以解决这样的问题

iterm-key.png

(global-set-key (kbd "C-[ [ a f") 'backward-kill-word) ;== "M-[ a f" iterm2 map to ctrl-;

也可以对其他键进行绑定
(global-set-key (kbd "C-[ [ a a") 'backward-kill-word) ;== "M-[ a a" iterm2 map to ctrl-backspace
(global-set-key (kbd "C-[ [ a b") 'toggle-eshell-cd)   ;iterm2 map to ctrl-f2
(global-set-key (kbd "C-[ [ a c") 'hippie-expand)   ; iterm map to ctrl-return
(global-set-key (kbd "C-[ [ a d") 'bm-previous)   ; iterm map to ctrl-,
(global-set-key (kbd "C-[ [ a e") 'goto-definition)   ; iterm map to ctrl-.

1 个赞

好的,原理似乎是转换编码以后重新绑定键位。

主要目的是想在 iPad 上绑定,但是 Blink 不支持此功能,只能作罢。不过对终端的键位多了一点了解。

感谢。

我在 win/linux/Mac 下试了很多的终端,最后选择了 alacritty,完美

1 个赞

我用alacritty怎么总无法将option作为meta,这个大家怎么解决的呢?是远程ssh到开发机上,发现不生效。

Blink 支持 send hex code