如何绑定CTRL在zsh中输入?

如何绑定CTRL在zsh中输入?,第1张

概述我想在zsh中绑定CtrlEnter↵: bindkey '^M' autosuggest-execute 但似乎终端为除Alt之外的任何修改键发送相同的转义序列. $showkey -aPress any keys - Ctrl-D will terminate this program^M 13 0015 0x0d # Enter^M 13 0015 0x0d 我想在zsh中绑定CtrlEnter↵:

bindkey '^M' autosuggest-execute

但似乎终端为除Alt之外的任何修改键发送相同的转义序列.

$showkey -aPress any keys - Ctrl-D will terminate this program^M       13 0015 0x0d # Enter^M       13 0015 0x0d # CTRL  + Enter^M       13 0015 0x0d # SHIFT + Enter^[^M     27 0033 0x1b # ALT   + Enter         13 0015 0x0d

我不确定问题是否特定于gnome-terminal.我也在mate-terminal和xterm中对此进行了测试,结果是一样的.有没有办法检测CTRL Enter?

解决方法 这是xterm,gnome-terminal和XWindow系统的任何其他终端仿真器的解决方案.

请注意,将Ctrl Enter映射到特定的shell命令可以使用xterm专门完成,其方式不会影响在同一X Server上运行的其他终端仿真程序.使用gnome-terminal,有一个更通用的解决方案,但它将同时应用于XWindow服务器上的每个终端仿真器,而不仅仅是gnome-terminal.因此,根据您的需求,您必须选择这两种解决方案中的一种.

首先,这里是特别适合xterm的解决方案:

让我们将Ctrl Enter绑定到尚未受其他组合约束的序列:使用xterm,可以通过指定一些X资源来填充翻译表来完成.例如,绑定到Esc M.然后,在zsh中使用bindkey将此特定序列绑定到您的ZLE函数(根据您的问题自动提示执行).

要尝试,请按照以下步骤 *** 作:

1-以这种方式启动xterm:

% xterm -xrm '*.VT100.translations: #overrIDe Ctrl <Key>Return: string(0x1b) string("M")'

注意:我们使用了Return,但这是Enter,我们将以这种方式映射.

2-在新的xterm窗口中,使用bindkey:

% bindkey '^[M' autosuggest-execute

3-现在键入CTRL-Enter以运行autosuggest-execute

对于几乎所有终端仿真器,这是更通用的解决方案:

如上所述,让我们将Ctrl Enter绑定到尚未受其他组合约束的序列(我们在这里选择Esc M).使用Compose(5)X11机制:添加一个文件$HOME / .XCompose,其中包含多键输入序列Ctrl M的特定映射.然后,使用zsh中的bindkey将此特定序列绑定到ZLE函数(autosuggest-execute)根据你的问题).

要尝试,请按照以下步骤 *** 作:

1-创建一个名为$HOME / .XCompose的新文件

在此文件中添加以下内容:

include "%L"! Ctrl <Return> : "3M"

注1:我们使用了Return,我们将以这种方式进行映射.

注2:!不是注释标记,重要的是将它保持在此行的开头.

注3:第一行(包括…)用于保持其他快捷方式正常工作(例如^ e映射到ê).

2-现在,你可以启动gnome-terminal

3-在新的gnome-terminal窗口中,使用bindkey:

% bindkey '^[M' autosuggest-execute

4-现在键入CTRL-Enter以运行autosuggest-execute

总结

以上是内存溢出为你收集整理的如何绑定CTRL在zsh中输入?全部内容,希望文章能够帮你解决如何绑定CTRL在zsh中输入?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1019445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存