skywind3000 / asyncrun.vim

:rocket: Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !!
https://www.vim.org/scripts/script.php?script_id=5431
MIT License
1.86k stars 111 forks source link

unix pipe support #174

Closed pinggit closed 4 years ago

pinggit commented 4 years ago
AsyncRun -mode=term -pos=bottom -rows=15 -cols=40 -focus=0 ls -lt | grep abc

目前不可以,请问如何做到?

skywind3000 commented 4 years ago

不要加管道,要用管道的话,先写到一个文件里面,再调用。

skywind3000 commented 4 years ago

vim 里面

:term ls -lt | grep abc

也没法用。

pinggit commented 4 years ago

感觉不能做到很奇怪。。同样是运行一个命令而已,只不过一个命令里面有管道,一个里面没有。有管道的命令为何不能运行呢?

skywind3000 commented 4 years ago

这你要问 vim 去,我只是帮忙传参而已。

pinggit commented 4 years ago

我搞不太懂。。 在vim里我可以这样: :!ls -lt | grep python

但是换了asyncrun: :AsyncRun -mode=term -pos=bottom -rows=15 -cols=40 -focus=0 ls -lt | grep -i markdown ls: cannot access '|': No such file or directory ls: cannot access 'grep': No such file or directory ls: cannot access 'markdown': No such file or directory

我理解你的意思是,用了mode term, 是vim不支持向term里发的命令中含有管道 | 那么其他mode有可以支持管道的吗?

奇怪的是目前我的环境里只有mode term work了。其他的mode全都不work,这可能是我开的另外那个问题。。

On Thu, Feb 6, 2020 at 12:11 AM Linwei notifications@github.com wrote:

这你要问 vim 去,我只是帮忙传参而已。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/skywind3000/asyncrun.vim/issues/174?email_source=notifications&email_token=AAPRSHBXIUZGID4FRWO4CZDRBOLW7A5CNFSM4KQO2RN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEK56Q5Q#issuecomment-582740086, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAPRSHH4FRCKY55ZX34KMVLRBOLW7ANCNFSM4KQO2RNQ .

skywind3000 commented 4 years ago

我说的是 vim 的 :term 命令,你可以试试,一样不支持管道,传参是一个很精细的活,需要注意很多地方,复杂命令你可以写到临时脚本里再调用即可。

其他模式怎么可能没效果,你打开了 quickfix 窗口没有?设置下:

let g:asyncrun_open = 6
pinggit commented 4 years ago

打开quickfix之后在quickfix里work了。谢谢!

pinggit commented 4 years ago

送上我的星。