我使用gvim来存储我将执行的命令的配方,具体取决于输出。目前,我在gvim中选择文本并将命令粘贴到终端控制台中,但我敢打赌,我可以通过视觉选择的范围将其传递到命令行中进行执行。
答案 0 :(得分:17)
(如果您的意思是OS命令行,请参阅下文)。
对于部分行(即没有行尾字符),您可以执行以下操作:
" Visually select lines, then:
y:<C-R>"<ENTER>
其中<C-R>
表示按 Ctrl + R 。 y
'选中'所选文本,:
进入命令模式,<C-R>"
将"
(最后一个被拉动的文本)寄存器的内容拉到命令行上,{ {1}}(显然)运行命令。
如果你想做直线的东西,它会有点复杂(因为命令行不喜欢命令中的<ENTER>
)。我会在你的vimrc中推荐这样的东西:
^M
选择行(重启vim后)并按function! RunCommands()
exe getline('.')
endfunction
command -range RunCommands <line1>,<line2>call RunCommands()
vmap ,r :RunCommands<CR>
。
另一种有用的方法是复制所需的行,点击,r
打开命令行窗口并将所需的行粘贴到那里,然后将光标移到所需的行上并按下输入。这样做的好处是可以在按 ENTER 之前编辑命令。它一次只能运行一个命令。
使用我上面列出的功能,而不是:
q:
使用
exe getline('.')
或者,如果你想看到结果:
call system(getline('.'))
或
echo system(getline('.'))
echomsg system(getline('.'))
答案 1 :(得分:2)
如果您使用的是vim GUI,则可以执行set guioptions+=a
。这样,gvim中可视模式下的任何突出显示的文本都会粘贴到剪贴板。