Ctrl + 左/右箭头键问题

ris*_*kio 37 keyboard-shortcuts zsh gentoo

上次系统更新后,zsh终端上的ctrl + 左/右箭头命令不执行任何操作。另外 ctrl+ u 有问题,因为通常该命令擦除从光标到行首,而现在擦除整行..有人知道如何解决这些问题吗?谢谢你们。

小智 66

FWIW,这是使用 zsh 的默认值在我的环境(rhel5.x)上工作的。

bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
Run Code Online (Sandbox Code Playgroud)

  • `^[^[[D` 和 `^[^[[C`,分别用于 OSX (9认同)
  • 经确认,Goncalo 的提议也适用于 Debian 8.5。我只是想知道为什么默认情况下这段代码没有内置在 `.zshrc` 中。 (2认同)
  • 有趣的是 `"^[[1;5C"` 和 `"^[[1;5D"` 直接在我的 mac 10.15.5 上运行良好 (2认同)

Tor*_*xed 18

Ctrl+U很可能是因为光标位于行尾。其次,您将哪个版本的 Gentoo 称为“最后一次系统更新”?

你希望 ctrl+left/right 做什么?

注意:如果配置有效,但假定的键不能满足您的要求,可能是因为键定义与您和我的不同,请执行以下操作:

cat > /dev/null
Run Code Online (Sandbox Code Playgroud)

并按下您想要输出的键并进行相应调整。


miy*_*lys 6

什么工作直接取决于发行版(Gentoo、Debian、RHEL 等)或 shell(ZSH、KSH、BASH)——它取决于使用的terminal emulator是哪个及其设置:konsole、终止符、urxvt、lx-terminal等等。如果发行版使用不同的标准外壳配置(fx..zshrc),并且如果使用不同的外壳,该发行版上的外壳配置可能已经处理它,发行版可能很重要。

以下是一些特定于终端模拟器的解决方案:

urxvt/rxvt-unicode(也许还有其他):

bindkey "^[Od" backward-word
bindkey "^[Oc" forward-word
Run Code Online (Sandbox Code Playgroud)

终结者、konsole 和 xterm(也许还有其他):

bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word
Run Code Online (Sandbox Code Playgroud)

对于更通用的方法,您启动终端,按 CTRL-V 后跟您想要转义码(名称)的组合键 - 在本例中为组合键 CTRL-leftarrow 和 CTRL-rightarrow - 并为每个输入输出两个引号之间的组合键。


ris*_*kio 5

使用的终端Konsole

解决方法:右键单击终端(或菜单栏中的设置)-> 更改当前配置文件> 键盘映射-> 更改为默认值(xfree4)