2009-05-20 53 views
0

我有一个README文件,下面的命令:无法运行Vim的视觉模式,许多命令外部

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

我想通过肉眼选择的代码,然后运行它们来运行它们。

我运行不成功

: '<,'> ! 

当前代码后,吕克在他的答复意见

我在.vimrc里的代码,我没有设法去上班:

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

我正在尝试使键盘组合为

v yy 

你怎么能得到上面的命令工作,这样你可以在Vim中直接运行文件的命令?

回答

1

这可能是过于简单化的东西,但为什么不只是做:

 
:e README 
:%!bash 

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

这可能有助于做一个:w RESULTS首先将它保存为其他文件,这样你就不会意外覆盖原:

 
:e README 
:w RESULTS 
:%!bash 

你曾说过你想与视觉的选择要做到这一点,这也会起作用在您选择要执行的内容后,请键入:'<,'>将自动预置为当前命令。 '<是当前选择开始的标记,而'>是当前选择结束时的标记。你可以只运行只是那些已选择就像上面的命令:

 
:'<,'>!bash 

这将取代只是执行这些命令的输出选择的命令。

5
  • 首先选择你的文字,
  • 然后将其与y复制,
  • 最后,你可以执行:

    : '!'。exe文件加入(分(@ “” \ N“), ';')

+0

你的命令有效!谢谢。我想知道是否有更短的方法来做同样的事情。我很难记住这个命令。 – 2009-05-21 12:09:03

+1

你可以定义一个映射: - >:vnoremap whatevercombo y:exe'!'join(split(@“,”\ n“),';') 2009-05-21 13:18:53