Vim – отображает последнюю команду оболочки на ключ

Есть ли способ сопоставить лидер-r, чтобы повторить последнюю команду, отправленную в bash?

Например, при работе с файлами C я хотел бы скомпилировать и запустить программу из vim без ввода:! Make или gcc.

Я знаю, что могу привязать определенную команду к ключу, но он не будет работать для других типов файлов.

2 Solutions collect form web for “Vim – отображает последнюю команду оболочки на ключ”

Изменить: ответ Ingo Karkat намного лучше. … Я бы удалил этот пост, если он не был принят (это значит, что я не могу).

Вот одно решение. Он ищет только последние 100 команд, очевидно, вы можете изменить это число (индексирование истории начинается с -1, что является последней введенной вами командой, поэтому чем меньше число, тем дальше поиск).

fun! LastCommand() let l:i = -1 while l:i > -100 let l:cmd = histget("cmd", l:i) if strpart(l:cmd, 0, 1) == "!" let l:i = 1 execute l:cmd break endif let l:i -= 1 endwhile if l:i < 1 | echoerr "No command found" | endif endfun nnoremap <Leader>r :call LastCommand()<CR> 

The :!! команда повторяет последнее :!{cmd} . Это даже доступно в почтенном ol vi .

  • Настройка шрифта программирования в RHEL 5 + gvim
  • Vim - Есть ли способ получить немедленную визуальную обратную связь во время вставки в режиме визуального блока?
  • Как отключить колокола / визуальные звонки в vim?
  • использовать результат поиска взамен инструкции с заменой vim
  • Сколько снарядов я глубоко?
  • Справка по отображению команды Vim
  • Настройка редактора в mutt: vim с параметрами?
  • Как определить переменную оболочки равной версии Vim, установленной на данный момент?
  • Настройка Vim с сервером клиентов и буфером обмена
  • vim: команда для удаления точки с запятой, если это последний символ строки
  • Открытие файлов в архивах от vim
  • Linux и Unix - лучшая ОС в мире.