-close 不work。。。
Opened this issue · 7 comments
pinggit commented
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close python3 %
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close pwd
这么用有问题吗?
skywind3000 commented
可以用的啊,我刚又试过,-close 就是运行完自动关闭终端啊,速度太快你没看清吧,你运行个 sleep 5 试试
pinggit commented
sleep 5 是可以的
但是pwd就不行。。
这是应该的?
skywind3000 commented
当然,pwd 的输出一闪而过。
pinggit commented
我明白了。。你意思是说这个发完命令自动close的feature 必须得命令结束的比较慢才work?如果命令马上结束就不能自动关terminal。有什么办法在所有情况下自动关呢?很多情形下我只是发命令去生成一些文件 并不需要关心终端上出什么输出,所以自动关掉会非常有用Sent from my iPhoneOn Mar 22, 2024, at 11:29, Linwei ***@***.***> wrote:
当然,pwd 的输出一闪而过。
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: ***@***.***>
skywind3000 commented
根本不是,和快慢没关系,快慢只关系到你看得到么。
你的 work 是啥意思?根本就没有运行?还是只是一闪而过没看到?
(提问时能不能多给点信息,不要惜字如金光写个 work 让我去猜,信息你都不肯多给点,让我怎么给你回答呢?)
另外你的第一条命令有问题:
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close python3 %
你已经通过 -cwd=xxx
改变了 python 执行时的路径了,而 %
是基于 vim 当前路径给出的相对路径,那么如果 vim 当前路径不是文件所在位置的话,你这么写就会出错,另外你忘记加引号了,正确的写法是全部使用 $(VIM_xxx)
变量:
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close python3 "$(VIM_FILENAME)"
或者:
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close python3 "$(VIM_FILEPATH)"
pinggit commented
谢谢关于执行命令的方法的纠正。很精确,我理解了。原来我总是要先cd到当前目录下再执行,用你这个方法不需要了。
”你的 work 是啥意思?根本就没有运行?还是只是一闪而过没看到?”
…-close的意思是:
1. -mode=term 打开内置terminal
2. Asynrun在终端上执行命令
3. 命令结束,输出结果在终端
4. -close会自动把打开的终端关上。
对吧?
但是我发现1-3都正常,但#4没执行。打开的terminal还在。我每次都要去手工关掉。
如果命令是sleep 5, -close会关掉终端。正常。
如果命令是pwd这种,命令执行完,终端一直在,不会关掉。
我漏掉了什么设置了吗还是理解有误?
On Fri, Mar 22, 2024 at 4:15 PM Linwei ***@***.***> wrote:
根本不是,和快慢没关系,快慢只关系到你看得到么。
你的 work 是啥意思?根本就没有运行?还是只是一闪而过没看到?
另外你的第一条命令有问题:
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close python3 %
你已经通过 -cwd=xxx 改变了 python 执行时的路径了,而 % 是基于 vim 当前路径给出的相对路径,那么如果 vim
当前路径不是文件所在位置的话,你这么写就会出错,另外你忘记加引号了,正确的写法是全部使用 $(VIM_xxx) 变量:
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close python3 "$(VIM_FILENAME)"
或者:
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=20 -close python3 "$(VIM_FILEPATH)"
—
Reply to this email directly, view it on GitHub
<#283 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAPRSHHBU2ZCLJDIV6AZYPDYZSGM7AVCNFSM6AAAAABFCKQX2KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJVHAZTONRRGM>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
pinggit commented
-close的意思是:
- -mode=term 打开内置terminal
- Asynrun在终端上执行命令
- 命令结束,输出结果在终端
- -close会自动把打开的终端关上。
对吧?
但是我发现1-3都正常,但#4没执行。打开的terminal还在。我每次都要去手工关掉。
如果命令是sleep 5, -close会关掉终端。正常。
如果命令是pwd这种,命令执行完,终端一直在,不会关掉。
我漏掉了什么设置了吗还是理解有误?
按照我的理解,目前的解决方法就是任何要执行的命令后面加个sleep,就达到期望值了 (terminal自动关掉)。
AsyncRun -save=1 -focus=0 -cwd=$(VIM_FILEDIR) -mode=term -rows=10 -close python3 "$(VIM_FILENAME)" ;sleep 5
不知道有没有更好的解决方法?