[求助] 关于 Vim 中 Vim Shell 配置的一些问题
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 16:36:51
0
1
598

原题链接 :转自匠艺社区CodingStyle

在自己的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

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回复(1)
小葫芦

第二个问题:

下面窗口第47行有答案


补充:你可以试试这个 https://github.com/thinca/vim-quickrun
可以自动识别你的文件类型调用相应的解释器,
前提是不要在Windows 下写 #!shebang
5/22/2016


QuickRun 补图

嗯,刚刚试了,js 也可以 q 快速运行, Java 可以自动 javac Class.java 然后 java Class
都不需要自己写文件名,其他文件类型也可以自己定义

我自己改了一点点设置

    let g:quickrun_config = {}
    let g:quickrun_config._ = {
            \ 'outputter/buffer/split': ''
            \ }

    autocmd FileType quickrun resize 10
    map <Leader>q :QuickRun<CR>

5/24/2016


shebang 是指脚本文件第一行

    #!/bin/bash

这个样子的内容,比如我第一张截图 #!/usr/bin/env python,在Linux 下 shell 会调用这个程序,并将脚本文件作为第一个参数。#!/usr/bin/env python,在Linux 下 shell 会调用这个程序,并将脚本文件作为第一个参数。
QuickRun 完美兼容 shebang
第一张截图那样的代码,QuickRun 会尝试运行 /usr/bin/env python /path/to/file.pyQuickRun 完美兼容 shebang
第一张截图那样的代码,QuickRun 会尝试运行 /usr/bin/env python /path/to/file.py

然而 Windows 没有env,也不认反斜杠路径分隔符


当然Windows 本身也不存在shebang 的概念#!shebang
PS: 你可以在Windows 下看看 PythonScripts 目录下的 *.py, 这些文件都有加入 #!shebang总之在Windows 下写脚本不需要加上#!shebang

PS: 你可以在Windows 下看看 PythonScripts 目录下的 *.py, 这些文件都有加入 #!shebang

5/24/2016🎜
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板