我使用gvim来存储我将执行的命令的配方,具体取决于输出.目前,我在gvim中选择文本并将命令粘贴到终端控制台中,但我敢打赌,我可以通过视觉选择的范围将其传递到命令行中以便执行.
DrA*_*rAl 18
(如果您的意思是OS命令行,请参阅下文).
对于部分行(即没有行尾字符),您可以执行以下操作:
" Visually select lines, then:
y:<C-R>"<ENTER>
Run Code Online (Sandbox Code Playgroud)
哪里<C-R>意味着按Ctrl+ R.该y"猛拉"所选择的文本,则:进入命令模式,<C-R>"拉动的内容"(最后抽出的文本)登记到命令行和<ENTER>(显然)运行命令.
如果你想做直线的东西,它会有点复杂(因为命令行不喜欢^M命令中的s).我会在你的vimrc中推荐这样的东西:
function! RunCommands()
exe getline('.')
endfunction
command -range RunCommands <line1>,<line2>call RunCommands()
vmap ,r :RunCommands<CR>
Run Code Online (Sandbox Code Playgroud)
选择行(重启vim后),然后按,r.
您可能会发现有用的另一种方法是复制所需的行,点击q:打开命令行窗口并将所需的行粘贴到那里,然后将光标移动到所需的行上并按下ENTER.这样做的好处是可以在按下之前编辑命令ENTER.它一次只能运行一个命令.
使用我上面列出的功能,而不是:
exe getline('.')
Run Code Online (Sandbox Code Playgroud)
使用
call system(getline('.'))
Run Code Online (Sandbox Code Playgroud)
或者,如果你想看到结果:
echo system(getline('.'))
Run Code Online (Sandbox Code Playgroud)
要么
echomsg system(getline('.'))
Run Code Online (Sandbox Code Playgroud)
:help :echo
:help :echomsg
:help :messages
:help :vmap
:help :command-range
:help :command
:help :function
:help c_CTRL-R
:help :exe
:help getline()
:help system()
Run Code Online (Sandbox Code Playgroud)