Ответ 1
Введите первые буквы предыдущей команды и нажмите <Up> стрелка (или Ctrl + p).
:set li<up>
:set lines=75
Не забудьте проверить параметр истории и установить его на достаточно большое значение
:set history=1000
Я хотел бы иметь следующий поиск в Vim тоже
(reverse-i-search)`':
Введите слово из предыдущей команды, и вы получите полную команду.
Я знаю инструмент хронологической истории в Vim
q:
Однако это не так полезно, как обратный поиск.
Как вы можете иметь аналогичный обратный поиск в Vim, как в терминале?
Введите первые буквы предыдущей команды и нажмите <Up> стрелка (или Ctrl + p).
:set li<up>
:set lines=75
Не забудьте проверить параметр истории и установить его на достаточно большое значение
:set history=1000
Введите q:
в нормальном режиме, чтобы открыть окно команд. Вы можете искать/редактировать здесь, используя обычные команды vim. Вы начинаете в нормальном режиме. Нажмите Enter
, чтобы выполнить команду.
Этот подход позволяет выполнять поиск по всей команде, а не только по началу строки.
Вот документы для История командной строки Vim, также см. эту часть документов на История командной строки Vim, которая охватывает ключевые привязки во время истории. Похоже, вы можете сказать :foo
, а затем нажать стрелку вверх, чтобы найти последнюю команду, которая началась с foo.
Я тоже искал это (наконец, подумав, почему он не был встроен в течение некоторого времени), и решил, что я не удержался от взлома реализации, поэтому здесь вы идете: https://github.com/goldfeld/ctrlr.vim
Он должен работать так же, как и оболочка - ну есть еще пара основных недостающих вещей (например, снова нажать ^ R, чтобы перейти к следующему совпадению), но все, что я использую, находится в этом первом выпуске, и я планирую добавить остальное в ближайшие недели, когда я получаю время.