Альтернативы использованию стрелок при доступе к истории команд vi

#vim #command #vi

#vim #команда #vi

Вопрос:

В vi / vim при выполнении команд или поиске они добавляются в список предыдущих команд. И, как и в shell, их можно получить с помощью клавиш со стрелками вверх или вниз. Это очень неудобно, есть ли какой-либо другой способ просмотра истории без использования клавиш со стрелками?

Комментарии:

1. Для тех, кто хочет перенести это в SU, пожалуйста, прочитайте вопросы Vim: SO или SU . В настоящее время у SO 4965 вопросов Vim по сравнению с 939 на SU. По моему личному мнению, здесь самое место спросить о Vim.

2. Я опубликовал это в своем комментарии ?!

Ответ №1:

ДА. В обычном режиме q: открывается окно vim с историей команд. Вы можете работать в нем, как в любом другом буфере vim. Enter выполняет команду. q/ и q? сделайте то же самое для поиска.

Кроме того, во время ввода команды вы можете нажать Ctrl-F, чтобы открыть окно командной строки и продолжить редактирование команды там.

Комментарии:

1. также я не знал, что q/ и q? где параметры

2. «Эй, приятель, иди сюда, здесь парень, который только что нашел святой грааль!»

Ответ №2:

Вы можете использовать ctrl-n и ctrl-p в командной строке для просмотра истории и перехода между матчами с подстановочными знаками. См :help c_CTRL-N . .

Комментарии:

1. Ах, это именно то, что я искал. Спасибо.

2. Это отлично подходит для последних команд. Если вам нужны только команды, начинающиеся с определенной строки, это будет работать не так хорошо. Если вы введете, :vs а затем нажмете стрелки вверх и вниз, он будет переходить между предыдущими командами, которые начинались с :vs , в то время ctrl-n как / ctrl-p будет перемещаться только по ближайшей истории

Ответ №3:

Иногда я нажимаю q: , и это приводит меня к буферу командной строки с самыми последними командами. Вы можете перемещаться по нему с помощью h, j, k, l и нажатия Enter для нужной команды.

Ответ №4:

Для достижения этой цели вы можете создать сопоставления в режиме командной строки. Вы могли бы, например, использовать <Ctrl-j> и <Ctrl-p> в качестве альтернативы стрелкам вниз и вверх:

 cnoremap <C-j> <Down>
cnoremap <C-k> <Up>