Windows 如何打开外壳,但仍然可以访问vim

Windows 如何打开外壳,但仍然可以访问vim,windows,shell,powershell,vim,Windows,Shell,Powershell,Vim,我正在Windows7上运行gvim 我使用此映射使用powershell执行当前文件: nnoremap <C-q> :! & '%:p'<cr> nnoremap:!&%:p' 它工作得很好,只是在关闭powershell窗口之前我无法访问vim。有时我希望shell保持打开状态,以便运行其他命令,或者我希望在shell仍然打开的情况下访问vim,以便检查生成错误的行 理想情况下(不知道这是否可行),我希望让一个已经打开的shell执行该命令。所以我总是打

我正在Windows7上运行gvim

我使用此映射使用powershell执行当前文件:

nnoremap <C-q> :! & '%:p'<cr>
nnoremap:!&%:p'
它工作得很好,只是在关闭powershell窗口之前我无法访问vim。有时我希望shell保持打开状态,以便运行其他命令,或者我希望在shell仍然打开的情况下访问vim,以便检查生成错误的行

理想情况下(不知道这是否可行),我希望让一个已经打开的shell执行该命令。所以我总是打开vim和一个shell(在单独的监视器上),我可以在同一个shell中执行脚本


如何实现这一点?

Windows上的GVIM有一个特殊的
:!启动
命令,异步执行外部命令;i、 Vim不会等待它的返回。只需更换
使用它。请参阅
:帮助:!有关详细信息,请启动


在Unix上,这样的特殊设置是不必要的;您只需附加
&
(shell功能)即可异步执行命令。

是否使用其他窗口?我知道这有点基本,但是…你是说手动切换到已经打开的shell并运行脚本?我可以这样做,但是我需要复制/输入每次编写的脚本的路径。它超级方便,有一个只执行当前文件的热键!特别是当我在不同的位置使用不同的脚本打开多个缓冲区时。这似乎正是我想要的,但我认为我做得不对。我尝试编辑映射到此:
nnoremap:!启动&'%:p'
但是当我运行它时,我得到了
E371:Command not found
我看到了它;Vim似乎使用不同的方式来启动命令。试试看!启动powershell.exe&'%:p'
;这里似乎没有使用
'shell'
的值。这很有效!在命令运行后,我仍然无法访问shell,我必须在脚本中暂停,否则它将立即关闭,但我想我对此无能为力。这可能是一个powershell问题,而不是vim问题,但我想知道是否有办法始终包含暂停(无需在我正在运行的实际脚本中放入暂停语句)。noexit开关不工作:
nnoremap:!start powershell&'%:p'-noexit
我知道了!
nnoremap:!start powershell.exe-noexit-command“&%:p'
这会在命令运行后使shell保持打开状态,这正是我想要的。非常感谢您的帮助。