Ctrl + 左/右箭头键问题

Ctrl + 左/右箭头键问题

上次系统更新后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 ArrowCtrl + Right Arrow- 并将每个组合键的输出放在两个引号之间以进行转换它的按键绑定。

答案4

我遇到这个问题是因为我在使用外接键盘的 MacBook 上遇到了类似的问题。

结果 ctrl+Left 和 ctrl+Right 设置为任务控制的键盘快捷键

在系统上禁用此功能解决了我的问题

添加

bindkey '\e\e[C' forward-word
bindkey '\e\e[D' backward-word 

启用 alt+right 和 alt+left 来执行相同的操作

相关内容