[求助] 关于 Vim 中 Vim Shell 配置的一些问题

Vim · gavin_weiming · Created at · Last by gavin_weiming Replied at · 2234 hits
644

在自己的Vim上好不容易安装上了Vim Shell,但是现在还是遇到了一些配置上的问题。特地来此请教大家,先谢过了!

可参考文档:vimshell.txt on Github

终止终端运行时快捷键有的时候会失灵

参考文档中说到了,<C-c>是终止正在运行的脚本的快捷键,这个快捷键会触发一个函数,这个函数会发送一个中断请求。但是,貌似这个快捷键只有在两种情况下有效:
- 在Vim Shell处于等待用户输入的时候,按下<C-c>的效果相当于回车,Vim Shell会新建一行;
- 在使用time内置命令的时候。例如在Vim Shell中输入time python test.py,在等待的时候按下<C-c>,脚本立即结束;
但是,在其他的情况下就没有作用了,例如在Vim Shell中输入exe python test.py的时候,或者在Vim Command中输入VimShellInteractive python test.py的时候,这个快捷键都是没用的。这是为什么?

如何将正在编辑的文本的路径与全名发送到Vim Shell

问题很简单,但是我无法解决。现在,我可以在Vim Command中输入VimShellInteractive python test.py来执行我正在编辑的test.py脚本。但是如果我想实现一键运行python脚本的快捷键,我应该如何配置vimrc呢?主要问题在于,我怎么才能把我正在编辑的文件的完整路径和文件名传给VimShell。

谢谢!
Weiming 20/5/2016


「软件匠艺社区」旨在传播匠艺精神,通过分享好的「工作方式」和「习惯」以帮助程序员更加快乐高效地编程。
共收到 7 条回复
1
hkliya · #1 ·

先回答第二个问题,然后该洗洗睡了,明天再帮你看第一个。
在 vimrc 中加入map <F9> :VimShellInteractive python % 试试。
不过建议绑定到 leader 键上,功能键按起来还是不太方便吧。

644

#1楼 @hkliya 我试过了这个方法,但是不行,因为VimShellInteractive python %会将%作为字符传给Vim Shell,在Vim Shell里面相当于执行了python %,然后就会有报错C:/Python/python.exe: can't open file '%'。这也说明了同样是在Vim Command处输入的语句,!python %VimShellInteractive python %中的%被区别对待了。所以我很蛋疼~

1
hkliya · #3 ·

#2楼 @gavin_weiming 如果只是想一键运行当前 python 文件,不用 VimShell 也可以啊。

644

#3楼 @hkliya 这么说也是。但是有的时候还是想直接利用Vim Shell运行,方便一些,不用切换窗口,也可以少数几行代码。

644

我把这个问题转载到了Segmentfault之后,第二个问题有了解答。可以利用ecsape(expand('%:p'), '\')的方式来实现。详情请看这里

377
asj · #6 ·

试试 quickrun

644

#6楼 @asj 谢谢你的建议,我已经开始使用quickrun了,挺不错。但是我觉得我的主要问题还是出在操作系统是windows这个上面,打算换个系统了。哈哈

需要 Sign In 后回复方可回复, 如果你还没有账号你可以 Sign Up 一个帐号。