上次系统更新后Ctrl + 左/右箭头命令开启桀骜终端不执行任何操作。另外 ctrl+ u 有问题,因为通常该命令从光标擦除到行首,而现在擦除整行。有人知道如何解决这些问题吗?谢谢你们。
答案1
FWIW,这是使用 zsh 默认值在我的环境(rhel5.x)上运行的。
bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
答案2
Ctrl+U很可能是因为光标位于行尾。其次,您所说的“最后一次系统更新”是哪个版本的 Gentoo?
您希望 ctrl+左/右做什么?
添加到 zsh 配置:
bindkey '^[[1;5C' emacs-forward-word bindkey '^[^[[D' emacs-backward-word
从旧的废品中我发现(可能有帮助):
bindkey ";5C" forward-word bindkey ";5D" backward-word
或者看看这链接,哪个应该对您有帮助?
笔记:如果配置有效,但假定的键没有执行您想要的操作,可能是因为键定义与您和我的不同,请执行以下操作:
cat > /dev/null
并按下您想要输出的键并进行相应调整。
答案3
什么有效不直接取决于发行版(Gentoo、Debian、RHEL 等)或 shell(ZSH、KSH、BASH) - 这取决于所terminal emulator
使用的版本及其设置:konsole、terminator、urxvt、lx-terminal 等。发行版可能如果它使用不同的标准 shell 配置(fx. .bashrc
、、.zshrc
).inputrc
,并且如果使用不同的 shell,则该发行版上的 shell 配置可能已经处理它。
以下是一些特定于终端仿真器的解决方案:
urxvt/rxvt-unicode(也许还有其他):
bindkey "^[Od" backward-word
bindkey "^[Oc" forward-word
alacritty、konsole、terminator、xterm(也许还有其他):
bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word
对于更通用的方法,您启动终端,Ctrl + V按后跟您想要转义码(名称)的组合键 - 在本例中为组合键Ctrl + Left Arrow和Ctrl + Right Arrow- 并将每个组合键的输出放在两个引号之间以进行转换它的按键绑定。
答案4
我遇到这个问题是因为我在使用外接键盘的 MacBook 上遇到了类似的问题。
结果 ctrl+Left 和 ctrl+Right 设置为任务控制的键盘快捷键。
在系统上禁用此功能解决了我的问题
添加
bindkey '\e\e[C' forward-word
bindkey '\e\e[D' backward-word
启用 alt+right 和 alt+left 来执行相同的操作