Answers:
该:!!
命令重复最后一个:!{cmd}
。它甚至可以在尊贵的vi中使用。
编辑: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>