mse*_*ane 2 osx keyboard-shortcuts terminal
我在另一篇文章中读到,您可以在终端中键入CtrlJ或CtrlM来代替按键,这很棒。Return但我想要做的是将其更改为另一种组合,例如:Ctrlspacebar. 我尝试过重新映射F1密钥,但没有成功。
这可能吗?
取决于你到底想做什么。
终端有两种主要模式,这两种模式都可以通过额外设置进行微调:
^H(或^?)、、^W(^U或@)、^V(或\) 字符可用于编辑行。^J在接收到字符之前,不会向从终端设备读取数据的应用程序发送任何内容。在这两种情况下,^M(CR) 字符都可以自动转换为^J(LF)(或者对于那些在按 Enter 时同时发送 CR 和 LF 的终端来说被忽略)。
第一种模式是终端的默认模式。第二种模式由zsh、bash或vi想要控制行编辑的应用程序使用。
在第一种模式中,您无法更改用于接受该行的字符。
但是您可以告诉您的终端^J在按这个或那个键时发送字符。例如,通过xterm,您可以使用translationsX11 资源来更改键映射并告诉它在按下给定按键时发送您想要的任何内容。如果您的终端不支持重新映射键盘,您仍然可以使用 GNUscreen来为您进行翻译。例如,如果您的终端^[OP在按 时发送字符序列F1,您可以添加
bindkey \033OP "\012"
Run Code Online (Sandbox Code Playgroud)
告诉你~/screenrc当你按下时发送 LFF1
对于第二种情况,即应用程序控制输入,您仍然可以使用与上面相同的方法,但您也可以配置每个单独的应用程序来执行此操作,以及当您按F1
例如,对于zsh,LF 字符绑定到accept-line zsh小部件。你可以这样做:
bindkey "^[OA" accept-line
Run Code Online (Sandbox Code Playgroud)
绑定F1到同一个小部件。
请注意,Ctrl+Space通常发送 NUL 字符,您可以将其称为\0或^@。
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |