- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在zsh中绑定(bind)Ctrl+Enter ↵:
bindkey '^M' autosuggest-execute
但终端似乎为除 Alt 之外的任何修饰键发送相同的转义序列。
$ showkey -a
Press 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 系统的任何其他终端仿真器的解决方案。
请注意,可以使用 xterm 专门将 Ctrl + Enter 映射到特定的 shell 命令,这种特定方式不会影响运行在该计算机上的其他终端仿真器。相同的 X 服务器。对于 gnome-terminal,有一个更通用的解决方案,但它将同时应用于 XWindow 服务器上的每个终端仿真器,而不仅仅是 gnome-terminal。因此,根据您的需求,您必须选择这两种解决方案之一。
首先,这是专门适合 xterm 的解决方案:
让我们将 Ctrl + Enter 绑定(bind)到尚未被其他组合绑定(bind)的序列:使用 xterm,可以通过指定一些 X 资源来填充翻译来完成此操作 table 。例如,绑定(bind)到 Esc + M。然后,使用 zsh 中的 bindkey 将此特定序列绑定(bind)到您的 ZLE 函数( autosuggest-execute
根据您的问题)。
要尝试,只需按照以下步骤操作:
1-以这种方式启动 xterm:
% xterm -xrm '*.VT100.translations: #override Ctrl <Key>Return: string(0x1b) string("M")'
注意:我们使用了Return
,但这是Enter
我们将以这种方式绘制 map 。
2-在新的xterm窗口中,使用bindkey:
% bindkey '^[M' autosuggest-execute
3-现在输入 CTRL-Enter 运行 autosuggest-execute
这是更通用的解决方案,适用于几乎所有终端模拟器:
像上面一样,让我们将 Ctrl + Enter 绑定(bind)到尚未被其他组合绑定(bind)的序列(我们选择 Esc + M 此处)。使用Compose (5)
X11机制:添加一个文件$HOME/.XCompose,其中包含多键输入序列Ctrl + M的特定映射。然后,使用 zsh 中的 bindkey 将此特定序列绑定(bind)到您的 ZLE 函数( autosuggest-execute
根据您的问题)。
要尝试,只需按照以下步骤操作:
1- 创建一个名为 $HOME/.XCompose 的新文件
在此文件中添加以下内容:
include "%L"
! Ctrl <Return> : "\033M"
注1:我们使用了Return
,但这是Enter
我们将以这种方式绘制 map 。
注2:!
不是注释标记,将其保留在该行的开头很重要。
注 3:第一行 ( include...
) 是为了让其他快捷键保持工作状态(例如 ^ + e 映射到 ê)。
2-现在,您可以启动 gnome-terminal
3-在新的 gnome-terminal 窗口中,使用bindkey:
% bindkey '^[M' autosuggest-execute
4-现在输入 CTRL-Enter 运行 autosuggest-execute
关于zsh - 如何在zsh中绑定(bind)CTRL + Enter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43428384/
我正在尝试在 Macos big sur 上执行 .zsh 脚本,但它不允许我这样做。 每当我在终端中运行 .zsh 时,它会显示“/bin/zsh:无法打开输入文件:file-name.zsh” 我
在此示例中,我尝试将所有值从一个关联数组复制到另一个关联数组。我正在使用 zsh -n 检查我的代码是否存在语法错误,但是这个会抛出一个 test:12: bar: assignment to inv
我想获取$*的最后一个元素。到目前为止,我发现的最好的是: last=`eval "echo \\\$$#"` 但这似乎太不透明了。 最佳答案 在zsh中,您可以使用P parameter expa
有没有办法做type of auto-suggestion Fish does在 Zsh 中? 最佳答案 https://github.com/tarruda/zsh-autosuggestions正
我希望通过为 dtach 创建一个 zsh 别名来加快我的工作流程,其功能如下: dtach -A /tmp/{directoryName} -r winch dvtm 我尝试过这样做,但不起作用。
我已经安装了 NVM,然后我发现了 oh-my-zsh 并安装了它。它似乎有一个 nvm 插件,我在 .zshrc 中启用了它。 我还将其放入我的 .zprofile export NVM_DIR="
每当我运行 bower install或任何 bower命令,它最终运行为 bundle install或来自 bundler 的其他内容.我正在使用 oh-my-zsh 运行 zsh shell。它
如果在 bash 我做(从命令行) echo $0 输出是 bash 和其他 shell 类似。 但是如果我在 中做同样的事情zsh 输出是 -zsh 为什么zsh前面有那个破折号? 最佳答案 she
关于bower.io有一条警告说: Warning On prezto or oh-my-zsh, do not forget to alias bower='noglob bower' or bow
我想为接受目录作为参数的命令编写自定义补全。我认为通过示例来解释它应该如何工作是最简单的。 假设我在某处定义了一个目录列表: d=(~/somedir/foo ~/somedir/foo/bar ~/
我正在尝试构建一个 zsh 函数,该函数根据时间间隔返回输出。最初“你渴了”条件为真,但在通过命令行更改变量 thirsty 并将其设置为 false 后,初始 if 语句通过,但变量 thirsty
如果在 Zsh 中(在 macOS 或 Ubuntu 上)连续运行以下命令: date +%s echo \ a\ b\ c 然后可以按 5 次向上箭头滚动回到第一个命令。 有没有一种方法可以通过两次
在常规数组中,我可以使用 (i) 或 (I) 来搜索与给定值匹配的条目的索引(从头开始的第一个匹配项或数组的末尾,分别): list=(foo bar baz) echo $list[(i)bar]
我是 zsh 的新手。 我可以输入类似 cd %wiki 的内容吗?跳转到 ~/prj/golang/gowiki如果它是独一无二的。 但是,如果 cd %unix 可能有两个以上的目录, 只显示匹配
我尝试了无数方法来获得我想要的东西,但似乎没有任何效果。我总是得到类似 2:not found 的结果. 我想捕获命令的输出,然后测试它是否等于“!”,如下所示: function test() {
我在我的 mac 上使用 zsh (oh-my-zsh),我不明白为什么在我的输出结束时总是有这个字符:“%” 如果我不把 export TERM="xterm-256color"放在我的 ~/.zs
给定一个 Zsh 数组 myarray,我可以把它作为一个子集数组 set -A subarray for el in $myarray do if [[ $el =~ *x*y* ]] th
有时候我们在终端运行一个命令,输出太大了,忘了把“|less”放在最后。所以我想知道当输出在 zsh 中太大时是否可以分页? 我尝试使用 python 和 less 来实现这个功能: #!/usr/b
我有一个设置,我很高兴在机器之间共享我的配置文件,但我发现我经常想在 zsh (Ctrl + R) 中搜索,我不记得我在哪台机器上输入了命令。理想情况下,我希望从我的任何机器中搜索以前命令的规范重复列
如何根据现有的完成定义和默认参数为函数设置完成。 一个简化的例子(可以改写为别名): gpl() { git pull origin $@ } 这应该与 git pull origin 之后的
我是一名优秀的程序员,十分优秀!