解决方法:使用批处理文件。本解决方法以C语言程序为例,编译器是gcc,我下载了MINGW直接解压到C盘根目录下,并设置了相应的PATH。其它编程语言可以按照这个思路适当修改批处理文件。
新建两个批处理文件,一个名为runp.bat,内容如下:
@echo off
%1
pause
exit一个为callrunp.bat,内容如下:
@echo off
start runp.bat %1
然后在sunlime text 2中新建一个配置文件C.sublime-build,内容如下:
{
"cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}.exe"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c",
"variants":
[
{
"name": "Run",
"cmd": ["callrunp.bat", "${file_base_name}.exe"],
"working_dir": "${file_path}"
}
]
}上半部分是从sublime text 2的C++编译配置文件中抄来的,只是把编译器改成了gcc,可编译的文件名改成了source.c。后半部分就是关键,使用callrunp.bat执行生成的可执行文件,可以打开一个命令行窗口,就可以输入数据了。

解决方案 »

  1.   

    需要将两个bat文件放在系统能找到的地方么?我试了试..不行啊..
      

  2.   

    3楼写批处理的办法太复杂了。
    只要在Sublime Text 2\Data\Packages\User文件夹里,复制一份ST自带的C++.sublime-build,并修改为:
    {
    "cmd": ["D:\\Program Files\\MinGW\\bin\\gcc", "${file}", "-o", "${file_path}/${file_base_name}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",

    "variants":
    [
    {
    "name": "Run",
    "shell": true,
    "cmd": ["start", "${file_path}/${file_base_name}"]
    }
    ]
    }
      

  3.   

    俺用的也是GCC编译器。想试试TinyCC呢。
      

  4.   

    关键是最后两行:
    "shell": true,
    "cmd": ["start", "${file_path}/${file_base_name}"]
      

  5.   

    请教楼上,如果是在Linux下面用ST,这个方法可以吗?如果不行,该怎么做?
      

  6.   

    这是我在用的最新版的:
    {
        "cmd": ["D:\\Program Files\\tcc\\tcc.exe", "${file}"],
        "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
        "working_dir": "${file_path}",
        "selector": "source.c",    "variants":
        [
            {
                "name": "Run",
                "shell": true,
                "cmd": ["start", "cmd", "/c", "${file_base_name} & echo. & pause"]
            }
        ]
    }
      

  7.   

    #13的配置在win7下能正确运行。并且只要你的sublime安装了convert to utf8插件,就可以很好的支持中文GBK编码,即使在cmd下输入数据也可以。至于linux下,可能需要另外的命令行解释器,比如bush,我没弄过。
      

  8.   

    还是一闪而过,而且最后的那个“按任意键退出”的提示会显示在ST里面,不过可以试试把/c改成/q
      

  9.   

    看错了,你的是对的,不过我试了一下,没有echo.也一样可以暂停,非常感谢
      

  10.   

    echo.就是增加一个空行而已。
    关于GBK编码的一个小问题:convertToUTF8插件有点小毛病。写完程序,当第一次按下ctrl+b编译(源文件是自动保存的),再按下crtl+shift+b运行程序,如果程序输出里有中文,则cmd中会出现乱码。然后再按下crtl+b第二次编译,再运行则不会出现乱码,中文能正确显示。正心烦呢,我考虑是convertToUTF8插件的问题。
      

  11.   


    他的这个只有在脚本运行无错误的时候,也就是没有异常出来,就可以pause住,但是脚本出错了,cmd窗口还是会一闪而过,如果改成 "cmd": ["start", "cmd", "/c", "${file_base_name} || echo. && pause"],就可查看错误,但是运行正常又会一闪而过。有什么方法可以两者兼得?LZ的简单bat其实可以的·····
      

  12.   


    也可以改为"cmd": ["start","cmd", "/k", "${file_base_name} || echo. && pause && exit"]
      

  13.   


    汗! 今天才知道在windows的批处理里面 & 与 &&是不一样的,我sb了·····
      

  14.   

    没有必要用插件,我也遇到过GBK乱码的问题,其实可以增加一个encoding参数,这是我用来编译和运行java程序的配置,可以参考一下
    {
    "cmd": ["javac","-encoding","UTF-8","-d",".","$file"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",
    "encoding":"GBK",

    "variants":
        [
            {
                "name": "Run",
                "shell": true,
                "cmd" :  ["start","cmd","/c", "java ${file_base_name}&pause"],
                "working_dir": "${file_path}",
                "encoding":"GBK"
            }
        ]
    }
      

  15.   

    hehe, convertToUTF8插件问题也解决了。
    后来我又给sublime text装了暗色主题,配合monokai配色,对我来说sublime就是完美的了。
    一开始,sublime text最吸引我的就是monokai配色,偶很肤浅的说。
      

  16.   


    请问楼主,在sublime text里,是否遇到过带有package名称的java类不能直接用快捷键运行的情况呢?
      

  17.   


    请问楼主,在sublime text里,是否遇到过带有package名称的java类不能直接用快捷键运行的情况呢?
    你是不是指运行的时候必须用这种形式的命令:java xx.yyy?
    没啥好办法,除非再做一个运行命令,至少我只能想到这么多
      

  18.   


    如果你有这方面的需要,请参考:用批处理实现在Editplus中直接运行有package包名称的Java类
      

  19.   


    ---------------------
    一直不明白,请教一下  source.c 是什么含义... 在 sublime 官网 也没看到 介绍  buildSystem 的资料
      

  20.   

    source.c 就是源文件是C的代码。
    source.java 就是源文件是Java代码。
      

  21.   

    http://blog.csdn.net/lhshu2008/article/details/17582949
    这是我整理的解决办法。
      

  22.   

    不好意思,最关键的一步,也就是用记事本打开新建的build文件之后该写什么?
      

  23.   


    其实最近我上课不用Sublime Text了,都是英文界面,学生完全不愿意费心看,而且需要配置的地方也比较多,很多学生面对这种需要自己动脑动手的事情都不愿意下点功夫,所以我最近用的是EverEdit,国人开发的一个编辑器,中文的,支持代码高亮、自动完成什么的常用功能,很牛,不如ST,不过比Editplus好,而且也可以自定义工具,和Editplus方式几乎一样,很容易上手,我建议你也可以试试。
    不过即使换成EverEdit也不行,我的学生依然懒得用点心思,讲了一个学期,居然还有用DreamWeaver写代码的。所以我打算下次直接用NetBeans了,几乎不用配置,还是集成环境,还是中文,还有向导
      

  24.   

    不好意思,最关键的一步,也就是用记事本打开新建的build文件之后该写什么?
     C.sublime-build文件用记事本打开后,填入以下内容:
     {
    "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++", "variants":
    [
    {
    "name": "Run",
    "cmd": ["cmd", "/c", "g++", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "cmd", "/c", "${file_path}/${file_base_name}"]
    },
    {
    "name": "RunInCommand",
    "cmd": ["cmd", "/c", "g++", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "${file_path}/${file_base_name} & pause"]
    }
    ]
    }就是以上这些内容,我在博客里写的内容是用csdn的代码片写的,有时候打开页面这个代码片打不开,可以刷新下就可以看到了。您试一下吧。有问题可以再给我留言!
      

  25.   

    不好意思,最关键的一步,也就是用记事本打开新建的build文件之后该写什么?
    我那个代码片地址是:https://code.csdn.net/snippets/128900
      

  26.   

    由于windows下面用的是GBK字符编码,ST2对GBK支持很不好,而是支持unicode,所以需要在运行命令里面加上 encoding:gbk。你可以参考一下21楼的配置
      

  27.   

    请问如何解决输出中的中文有乱码情况Windows中文版使用的是GBK编码,而ST用的是UTF编码,你可以在配置文件里面加上"encoding":"GBK",这样就要求输出时使用GBk编码,21楼的配置更详细些,你可以参考一下