Как настроить Ctrl-Left и Ctrl-Right в качестве сочетаний клавиш для предыдущего / следующего слова для bash (в настоящее время это alt-b и alt-f)?
Как настроить Ctrl-Left и Ctrl-Right в качестве сочетаний клавиш для предыдущего / следующего слова для bash (в настоящее время это alt-b и alt-f)?
Ответы:
Правильный ответ зависит от того, какой терминал вы используете.
Для 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+ <-.
Обратите внимание, что вам нужно написать escape-последовательности клавиатуры, используя синтаксис inputrc , например
\C
означает контроль\e
означает escape (который появляется так же, как ^[
при наборе текста с помощью Ctrl + V выше)"\e[1;5C": forward-word
. И тоже сделай Ctrl
+ V
для Ctrl
+ Left Arrow
.
Если вы используете ZSH, вам нужно выбрать другой метод, потому что, цитируя соответствующие части из Руководства ZSH ArchLinux :
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