无法在外部以Vim的可视模式运行多个命令

时间:2009-05-20 20:31:52

标签: vim

我在README文件中有以下命令:

./Setup ...
./Setup ...
./Setup ...

我想通过直观地选择代码并运行它们来运行它们。

我运行不成功

: '<,'> !

Luc在回答中的评论后的当前代码

我在.vimrc中的代码,我还没有设法开始工作:

vmap <silent> <leader>v y:exe '!'.join(split(@", "\n"),';')<cr>

我正在尝试为

制作键盘组合
v yy

如何让上述命令工作,以便您可以直接在Vim中运行文件命令?

2 个答案:

答案 0 :(得分:5)

  • 首先选择您的文字,
  • 然后使用y
  • 复制它
  • 最后,你可以执行:

    :exe'!'。join(split(@“,”\ n“),';')

答案 1 :(得分:1)

这可能过于简单了,但为什么不这样做:

:e README
:%!bash

这会通过bash过滤当前文件,将每一行作为命令执行。当前缓冲区由运行文件中所有命令的输出替换。

首先将:w RESULTS保存为另一个文件可能会有所帮助,因此您不会意外覆盖原始文件:

:e README
:w RESULTS
:%!bash

您曾说过想要通过视觉选择来实现这一目标,这样做也可以。选择要执行的内容后,键入:'<,'>将自动添加到当前命令之前。 '<是当前选择开头的标记,而'>是当前选择结尾处的标记。您可以像上面那样只运行您选择的命令:

:'<,'>!bash

这将仅使用执行这些命令的输出替换所选命令。