在 bash 中按单词移动

在 bash 中按单词移动

CTRL在 bash 中,可以使用+移动到行首,使用+移动A到行末。如何按单词向前和向后移动?CTRLE

答案1

使用 emacs 绑定:

Meta-B向后移动一个单词并且Meta-F向前移动一个单词。

Ctrl-B向后移动一个字符并且Ctrl-F向前移动一个字符。

因此BvsF是向后与向前,而MetavsCtrl是单词与字符。

的确切映射Meta可能因键盘而异。尝试按住Alt另一个键的同时按下;如果不行,请按下并释放Esc,然后按下另一个键。

答案2

使用 alt+b 向后移动一个单词,使用 alt+f 向前移动一个单词。

答案3

普京~/.inputrc

# Ctrl+Left/Right 按整个单词移动。
"\e[1;5C": 正向词
"\e[1;5D":向后单词
# 与按下 Shift 相同。
"\e[1;6C": 正向词
"\e[1;6D":向后单词

showkey -a在终端中会告诉您按下按键时终端发出了哪些 ANSI 代码,例如Ctrl+Right我得到:

bash# showkey -a

Press any keys - Ctrl-D will terminate this program

^[[1;5C          27 0033 0x1b
         91 0133 0x5b
         49 0061 0x31
         59 0073 0x3b
         53 0065 0x35
         67 0103 0x43

^[是中的ESC。你可以使用内置的 Bash 即时尝试:\e~/.inputrcbind

bind '"\e[1;5C": forward-word'

或者使用以下命令转储当前绑定:

bind -p

相关内容