从外部程序vim反复读取输入

时间:2014-10-14 08:50:30

标签: vim

我经常做类似

的事情

!r git diff .

我已将此输入的刷新简化为:

:call feedkeys('ggdG:r! git diff .')

但仍需要至少:: <UP> <UP> <CR> <CR> <CR> gg重复并向上移动到第一行进行检查。

如何以较少的步骤刷新内容?在刷新之前记住第一行的奖励积分。

我知道git特定命令有fugitive,但我想将其概括为运行任何shell命令。

2 个答案:

答案 0 :(得分:3)

这种映射怎么样:

nnoremap <F10> :%d<bar>r! YOURCMD<cr>gg

然后你可以按<F10>清除当前缓冲区并读取YOURCMD的输出,最后将光标移动到第一行。

E.g。将进程信息加载到vim:

nnoremap <F10> :%d<bar>r! ps -ef<cr>gg

答案 1 :(得分:3)

史蒂夫·洛什的Clam是一种通用而简单的方法来做你所做的事情:

  • 将外部命令的输出显示到新的垂直窗口

    :Clam git diff .
    
  • 刷新

    \r
    
  • 转到第一行

    gg