Пару месяцев назад я нашел команду, которая заставляла мою историю bash автоматически заполнять то, что уже было в строке при нажатии стрелки вверх:
$ vim fi
Нажмите ↑
$ vim file.py
Я'хотел бы установить это на свой новый компьютер, потому что это экономит много времени при ведении большой истории. Проблема в том, что я не могу вспомнить, где это упоминалось, и чтение бесконечных ссылок и руководств по bash, к сожалению, тоже не помогло.
Кто-нибудь знает эту команду?
Возможно, что-то вроде
# ~/.inputrc "\e[A": history-search-backward "\e[B": история-поиск-вперед
или эквивалентно,
# ~/.bashrc if [[ $- == *i* ]] then bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward' fi
(оператор if проверяет наличие интерактивного режима)
Обычно кнопки Up и Down привязаны к функциям Readline previous-history
и next-history
соответственно. Я предпочитаю привязывать PgUp/PgDn к этим функциям, вместо того чтобы вытеснять обычную работу Up/Down.
# ~/.inputrc "\e[5~": история-поиск-назад "\e[6~": история-поиск-вперед
После изменения ~/.inputrc
перезапустите оболочку или используйте Ctrl+X, Ctrl+R, чтобы указать ей перечитать ~/.inputrc
.
Кстати, если вы ищете соответствующую документацию:
Bash использует The GNU Readline Library для подсказки оболочки и истории.
Обновления .inputrc со следующим:
"\C-[OA": history-search-backward
"\C-[[A": history-search-backward
"\C-[OB": history-search-forward
"\C-[[B": history-search-forward
В ohmyzsh используйте это в файле .zshrc:
bindkey '^[OA' history-search-backward
bindkey '^[OB' history-search-forward
Чтобы перезагрузить, source ~/.zshrc
или перезапустите терминал.
Источник: https://superuser.com/a/418299/71680
Если установить включить-клавиатурыв вашем
~/.inputrc как какой-то ст (suckless простой Терминал) пользователи могут, имейте в виду, что стрелки находятся в режиме клавиатуры. В Ubuntu поставляется с этим полезным /usr/доли/док/Баш/inputrc.стрелки
:
# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library.
#
# Arrow keys in keypad mode
#
"\C-[OD" backward-char
"\C-[OC" forward-char
"\C-[OA" previous-history
"\C-[OB" next-history
#
# Arrow keys in ANSI mode
#
"\C-[[D" backward-char
"\C-[[C" forward-char
"\C-[[A" previous-history
"\C-[[B" next-history
#
# Arrow keys in 8 bit keypad mode
#
"\C-M-OD" backward-char
"\C-M-OC" forward-char
"\C-M-OA" previous-history
"\C-M-OB" next-history
#
# Arrow keys in 8 bit ANSI mode
#
"\C-M-[D" backward-char
"\C-M-[C" forward-char
"\C-M-[A" previous-history
"\C-M-[B" next-history
Поэтому я'м не уверен, если вы'll необходимо, но это, возможно, не помешает иметь в своем ~/.inputrc
:
# Arrow keys in keypad mode
"\C-[OA": history-search-backward
"\C-[OB": history-search-forward
"\C-[OC": forward-char
"\C-[OD": backward-char
# Arrow keys in ANSI mode
"\C-[[A": history-search-backward
"\C-[[B": history-search-forward
"\C-[[C": forward-char
"\C-[[D": backward-char
Это тоже на ту же тему: Мои клавиши управления курсором не работают, и это в xterm: специальные клавиши
Возможно, вам потребуется включить завершение bash.
Проверьте
/etc/profile
/etc/bash.bashrc
~/.bashrc
посмотреть, является ли какой-либо из вышеперечисленных файлов источником /etc/bash_completion
. т.е.
. /etc/bash_completion
Если /etc/bash___completion
не используется ни в одном из вышеперечисленных файлов, вам необходимо добавить его в один из них.
Если вы хотите, чтобы все пользователи bash на вашей машине имели завершение bash, сделайте источником /etc/bash_completion
из /etc/bash.bashrc
.
Если завершение работы с bash нужно только вам, возьмите источник /etc/bash_completion
из вашего ~/.bashrc
.