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中输入?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)