Как выполнить команды визуального режима из функции Vim? - PullRequest
4 голосов
/ 23 февраля 2011

У меня есть функция, которая принимает строку команд для выполнения и проверяет, включен ли 'paste', прежде чем она будет запущена. То, что я ищу, сродни следующему:

vmap <silent> <C-K> :<C-U>call InPasteMode("<Plug>ReplaceVisual")<CR>
function! InPasteMode(command)
  let oldpaste = &l:paste
  try
    set paste
    execute "normal" a:command
  finally
    let &l:paste = oldpaste
  endtry
endfunction

но команда "<Plug>ReplaceVisual" должна выполняться в визуальном режиме, а не в нормальном режиме.

Есть ли такая команда, как :normal, которая запускает нажатия клавиш в визуальном режиме?

1 Ответ

9 голосов
/ 23 февраля 2011

gv восстанавливает последний визуальный выбор.Итак, что-то вроде execute "normal gv" . a:command должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...