У меня есть сопоставление, в котором я могу выбрать текст и ввести (leader)av, чтобы подтвердить мой визуальный выбор с помощью Ack.vim:
" Visual ack, used to ack for highlighted text
function! s:VAck()
let old = @"
norm! gvy
let @z = substitute(escape(@", '\'), '\n', '\\n', 'g')
let @" = old
endfunction
" Ack for visual selection
vnoremap <Leader>av :<C-u>call <SID>VAck()<CR>:exe "Ack! ".@z.""<CR>
Тем не менее, мне часто нужно повторно подтвердить последнюю вещь, которую я искал, поэтому я набираю :up, чтобы искать ее в обратном направлении по истории команд. Проблема в том, что этот метод не заполняет историю!
Мой вопрос: как я могу сделать одно из следующего:
- Вставьте запись в историю командной строки, используя Vimscript -или-
- Сделать команду, которую он создает, фактически выполняться как команда с двоеточием, чтобы история заполнялась автоматически?
Я полностью осведомлен о командах :copen
и :colder
для открытия и перехода к старому списку быстрых исправлений (который Ack.vim заполняется), но я хотел бы знать, как решить описанную выше проблему, потому что я хочу повторно подтвердить ту же самую вещь, когда я знаю, что части моего исходного кода изменились.