На этот вопрос уже есть ответ:
Это нормально при использовании терминалов, когда нажатие вверх и вниз циклически переключает предыдущие введенные команды в хронологическом порядке.
Я узнал на сайте, как добавить к этому поведению автозаполнение того, что я набираю под курсором, на основе ранее введенных команд при нажатии вверх и вниз.
Например, предположим, что я набрал следующие команды в следующем порядке:
ls Videos
ls Vids
lsomething
ls Videos / Funny / Old
vi file
ls Music
Если я ничего не набирал, нажатие вверх и вниз будет циклически перемещаться по всем строкам, как обычно. Но если я набрал ls
, нажатие вверх и вниз циклически перебирает все команды, где первые 2 символа - ls
(строки 1,2,3,4,6 выше). Однако ввод ls
(с пробелом после) позволит только циклически перемещаться вверх и вниз по строкам 1, 2, 4, 6. Аналогично, ls Vid
позволяет стрелкам перемещаться по строкам 1, 2, 4, но ls Videos
только позволяет циклически перемещаться между строками 1 и 4.
Довольно полезно заполнить значения, специфичные для команды, которые вам нужно вводить снова и снова, без необходимости повторять каждую отдельную несвязанную команду, которую вы вводили между ними.Например, я пытаюсь проверить влияние значений env
, таких как locale, на вещи:
env [many different values] [command]
[insert many different commands here]
env [slightly different values from before] [command]
[doing other stuff]
Мне нужно было бы только несколько раз нажать вверх после ввода env
для переключения между значениями, которые я пробовал.
Прошу прощения, если это немного сложно описать. Я не знаю, как это называется. Раньше у моих терминалов было такое поведение, но, похоже, они его потеряли, и я не могу найти сайт, на котором узнал об этом. Я думаю, это как-то связано с редактированием ~ / .bashrc
.
Для получения поведения, Вы после, добавляете, эти строки к Вашему ~/.inputrc
(создайте файл, если это не существует):
"\e[A": history-search-backward
"\e[B": history-search-forward
Затем откройте новый терминал, и он будет работать как ожидалось. Этим поведением управляют настройки в /etc/inputrc
и ~/.inputrc
. Можно читать больше о них в Readline Command Names
раздел man bash
:
non-incremental-forward-search-history (M-n)
Search forward through the history using a non-incremental
search for a string supplied by the user.
history-search-forward
Search forward through the history for the string of characters
between the start of the current line and the point. This is a
non-incremental search.