Sublime Text 中的命令行

Sublime Text 中的命令行

我最近从 Notepad++ 切换到了 Sublime Text 2,它太棒了。有一件事我很欣赏,那就是从同一个环境编译我的文件。Sublime text 有一个控制台和一个命令面板,但它们都不能执行常规的 Windows 命令。

例如,我只是想从 Sublime Text 内部的控制台javac program.java运行。java program

这样的事还有可能实现吗?如果可以,该怎么做?

答案1

“显示控制台”按钮显示嵌入到 Sublime Text 中的 Python 控制台,而不是通常的 OS 终端。如果您想在包含编辑文件的文件夹中打开终端,您可以尝试Sublime 终端包裹。

编辑:@Darren:如果是这样,那么请在互联网上查找如何从 python shell 运行终端命令,Google 有很多链接。

答案2

如果你主要想编译和运行 Java 程序,那么构建系统(参见完整参考资料这里)就是您要找的内容。从Preferences菜单中,选择Browse Packages...并导航到Packages/Java文件夹,然后打开JavaC.sublime-build文件:

{
    "cmd": ["javac", "$file"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java"
}

假设Sublimejavac使用的 是PATH,您可能需要编辑它以适合您的系统设置。您可以先保存文件.java,然后选择Tools -> Build System -> JavaCTools -> Build System -> Automatic,然后点击CtrlBB在 Mac 上),然后运行此构建系统。

要运行生成的.class文件,请修改JavaC.sublime-build以下内容:

{
    "cmd": ["javac", "$file"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",
    "working_dir": "${project_path:${file_path}}",

    "variants": [

        { 
            "name": "Run",
            "cmd": ["java", "$file_name"],
            "shell": true,
            "env": {"CLASSPATH": "/path/to/jar/files:/path/to/more/jars"}
        }
    ]

}

然后,您可以使用CtrlShiftBShiftB在 Mac 上)键盘组合来执行Run构建系统的变体。该"working_dir": "${project_path:${file_path}}"行从包含文件的目录执行构建.sublime-project,如果您没有目录,则默认为包含.java源的目录。通过 shell"shell": true运行,无论是、还是您选择的任何内容。否则,它只会通过 Sublime 控制台输出。字典允许您添加您可能只想为构建会话设置的环境变量的 Key:value 对。它可以位于部分或主要部分,具体取决于您的需要。"cmd"cmd.exebash"env""Variants"

有关更多详细信息,请查看我在开头提供的两个链接 - 它们包含大量信息和一些有用的构建系统示例。您还可以浏览Packages目录的子文件夹并查看.sublime-build您找到的任何文件以获取灵感 - 它们的名称列在下面Tools -> Build System(即,“Python”构建系统位于Packages/Python/Python.sublime-build)。


回答你最初的问题,Sublime 的架构不支持功能齐全的终端仿真器。虽然你可以使用 Python 的subprocess.Popen(),我更喜欢使用奇妙的SublimeREPL插件(可通过包控制) 随着IPython有很多依赖项,但easy_install ipython[all]应该可以帮你解决大部分问题,就像通过包管理器安装一样,比如、、、MacPorts等。对于 Windows,可以从 Christoph Gohlke 的yumapt-getWindows 存储库的 Python 扩展包,其中包含所有必需和可选依赖项的链接。请确保您使用的是python.org但是没有安装 Python。

在系统上安装 Python 和 IPython 以及 Sublime 的 和PATHSublimeREPL 后,转到Tools -> SublimeREPL -> Python -> Python - IPython,您应该可以立即启动并运行。要执行 shell 命令,只需在其前面加上!- 例如:

In [1]: !ls

将列出当前工作目录的内容,而

In [2]: files = !ls

会将这些名称分配给变量。但请注意,像这样的命令!cd ..实际上不会更改当前工作目录,您需要运行:

In [3]: import os
In [4]: os.chdir('..')

os执行此操作。模块的文档文件和目录函数在这里非常有用(如果你使用的是 Python 3,请将2URL 中的更改为3) - 这带来了此系统的另一个优点:你可以在系统上安装多个版本的 Python,而不必依赖于 Sublime Text 2 附带的精简版 2.6。将以下内容保存到Packages/User/SublimeREPL/config/Python/Main.sublime-menu并根据你的喜好进行自定义:

[
    {
        "id": "tools",
        "children":
        [{
            "caption": "SublimeREPL",
            "mnemonic": "r",
            "id": "SublimeREPL",
            "children":
            [
                {
                    "caption": "Python",
                    "id": "Python",
                    "children":[
                        {
                            "command": "repl_open",
                            "caption": "Python 3",
                            "id": "repl_python3",
                            "mnemonic": "p",
                            "args": {
                               "type": "subprocess",
                               "encoding": "utf8",
                               "cmd": ["/opt/local/bin/python3", "-i", "-u"],
                               "cwd": "/Users/YourNameHere/Development/python",
                               "syntax": "Packages/Python/Python.tmLanguage",
                               "external_id": "python3",
                               "extend_env": {"PYTHONIOENCODING": "utf-8"}
                            }
                        },
                        {
                            "command": "repl_open",
                            "caption": "IPython 3",
                            "id": "repl_ipython3",
                            "mnemonic": "p",
                            "args": {
                                "type": "subprocess",
                                "encoding": "utf8",
                                "cmd": ["/opt/local/bin/ipython", "-i", "--pylab=osx", "--colors=NoColor"],
                                "cwd": "/Users/YourNameHere/Development/python",
                                "syntax": "Packages/Python/Python.tmLanguage",
                                "external_id": "Ipython",
                                "extend_env": {"PYTHONIOENCODING": "utf-8"}
                             }
                        }
                    ]
                }
            ]
        }]
    }
]

现在,您可以拥有自定义菜单选项,这些选项将SublimeREPL在 Package Control 升级后继续存在,并使用不同的选项、工作目录等运行 REPL。

希望这些内容对您有所帮助,请让我知道它对您有何帮助。

答案3

现在有可能了。您可以完全在 ST 中编译和运行代码,而且非常快速/简单。最近有一个名为 Javatar 的 ST 包可以做到这一点。 https://javatar.readthedocs.org

相关内容