2009-04-12 2 views
48

Я хотел бы иметь следующий запрос в Vim слишкомКак вы просматриваете историю команд vim?

(reverse-i-search)`': 

Введите слово предыдущей команды, и вы получите полную команду.

Я знаю, что хронологический инструмент истории в Vim

q: 

Однако это не то, что полезно в качестве обратного поиска.

Как вы можете найти аналогичный обратный поиск в Vim, как в терминале?

+0

@Masi: почему это не так полезно? вы все равно можете искать в этой истории, чтобы сделать ее более мощной. – sumek

+0

реализация для обратного i-поиска имитации на самом деле довольно проста, посмотрите мой ответ ниже. –

ответ

62

Введите первые буквы вашей предыдущей команды и нажмите < Вверх > стрелка (или Ctrl + p).

:set li<up> 
:set lines=75 

Не забудьте проверить вариант истории и установить его на достаточно большом

:set history=1000 
+0

Если у вас есть Visor на Mac, попробуйте: вместо этого установите строки = 48. По какой-то причине окно слишком сильно расширяется с помощью 75 строк. –

+0

75 - это просто цель, но спасибо за Visor. Я не знал об этом, хотя мне он никогда не нужен. Но мне нравится это! –

+0

Я использую не терминал Vim, а MacVim. –

11

Вот документы для Vim's commandline history, также см. Эту часть документов на Vim's commandline history, которая охватывает привязки клавиш во время истории. Похоже, вы можете сказать :foo, а затем нажать стрелку вверх, чтобы найти последнюю команду, которая началась с foo.

58

Тип q: в обычном режиме, чтобы открыть окно команд. Вы можете искать/редактировать здесь, используя обычные команды vim. Вы начинаете в нормальном режиме. Нажмите Enter, чтобы выполнить команду.

Этот подход позволяет выполнять поиск по всей команде, а не только по началу строки.

+3

Теперь я знаю, почему я иногда получаю историю команд вместо выхода из буфера или самого vim. – sargas

5

Я искал это, а также (в конце концов после того, как интересно, почему он не был построен в течение некоторого времени), и решил, что я не мог сопротивляться нагнетанием реализации, так что здесь вы идете: https://github.com/goldfeld/ctrlr.vim

It должен работать так же, как и оболочка - ну есть еще пара основных недостающих вещей (например, снова нажать^R, чтобы перейти к следующему совпадению), но все, что я использую, находится в этом первом выпуске, и я планирую добавить остальные в наступающие недели, когда я получаю время.

Смежные вопросы