如何在bash中更改上一个/下一个单词的快捷方式?


Answers:


26

正确答案取决于您所使用的终端。

对于Gnome Terminal或xterm的最新版本,请将其放在〜/ .inputrc中:

"\e[1;5C": forward-word
"\e[1;5D": backward-word

对于PuTTY,请将其放在〜/ .inputrc中:

"\eOC": forward-word
"\eOD": backward-word

对于rxvt,将其放在〜/ .inputrc中:

"\eOc": forward-word
"\eOd": backward-word

您可能可以将所有这些放到〜/ .inputrc中。

在所有情况下,您还需要将其放在〜/ .bashrc(或〜/ .zshrc)中:

export INPUTRC=~/.inputrc

如果不工作,或者你有一个不同的终端,去你的终端输入Ctrl+ V Ctrl+ ->。然后使用该代替的"\e[1;5C""\eOC"以上。重复Ctrl+ <-

注意,您需要使用inputrc语法编写键盘转义序列,例如

  • \C 手段控制
  • \e表示转义(显示为^[使用上面的Ctrl + V键入时的样子)

Ctrl + V,Ctrl->打印“ ^ [[1; 5C”,我使用的是gnome-terminal。
ripper234 2011年

2
所以尝试一下"\e[1;5C": forward-word。并为+ 做Ctrl+ V事情。CtrlLeft Arrow
Mikel

谢谢,工作就像一个魅力。但我肯定会慢慢地学习如何在Linux中游泳。为什么他们必须首先使其变得非直觉?(您必须承认ctrl-left,ctrl-right是更好的选择)
ripper234

1
如果您认为Linux一开始是不直观的,请尝试默认安装FreeBSD甚至Solaris。将bash作为起始外壳是一个梦想。同样,由于键盘并不总是具有箭头键,Emacs,因此bash也支持快捷键。尝试使用Ctrl-b和Ctrl-f一段时间。
penguin359 2011年

2
UNIX / Linux系统的优点在于可以轻松地在设置之间移动。一旦按照自己喜欢的方式配置了您喜欢的程序,就可以对其进行复制。我实际上正在对我的主目录文件(例如.inputrc,.bashrc,.vimrc等)使用版本控制。我使用mercurial在计算机之间克隆并保持所有主目录设置为最新。我还计划在某个时候发布我的仓库,以便其他人可以分享我所有的辛苦工作。
penguin359 2011年

3

如果您使用的是ZSH,则需要采用其他方法,因为引用了ArchLinux ZSH指南的相关部分:

Zsh不使用readline #like bash#,而是使用自己的功能更强大的zle。

它不会读取/ etc / inputrc或〜/ .inputrc。

阅读该指南后,我认为我需要一些ZSH来源才能大致了解如何执行此操作,因此我找到了oh-my-zsh文件,该文件描述了我想要的行为,我复制了相关部分想要进入我的〜/ .zshrc:

bindkey -e #Use emacs mode, it's more sane for beginners
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
# Also, If you want to copy paste this into your zshrc,
# I'm pretty sure you would have to add this at the top : 
# setopt interactive_comments

我正在尝试ctrl + rightarrow,但在Mac上
却一言不发
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.