5

Я недавно переключился с Notepad++ на Sublime Text 2, и это удивительно. Есть одна вещь, которую я ценю, и это компилирование моих файлов из той же среды. Возвышенный текст имеет консоль и командные поддоны, но ни одна из них не может выполнять обычные команды Windows.

Так, например, я бы просто хотел запустить javac program.java и java program из консоли из Sublime Text.

Возможна ли такая вещь еще? Если да, то как это сделать?

4 ответа4

2

Если вы в основном хотите компилировать и запускать Java-программы, то вам нужна система сборки (см. Полную ссылку здесь). В меню « Preferences выберите « Browse Packages... и перейдите в папку « Packages/Java » и откройте JavaC.sublime-build :

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

Это предполагает, что javac находится в PATH используемом Sublime, вам может потребоваться изменить его в соответствии с настройками вашей системы. Вы можете запустить эту систему сборки, сначала сохранив файл .java , затем выбрав Tools -> Build System -> JavaC или Tools -> Build System -> Automatic , а затем нажав Ctrl B ( B на 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"}
        }
    ]

}

Затем вы можете использовать комбинацию клавиш Ctrl Shift B (ift Shift B на Mac), чтобы выполнить вариант Run системы сборки. "working_dir": "${project_path:${file_path}}" выполняет сборку из каталога, содержащего ваш .sublime-project , если у вас его нет, по умолчанию используется каталог, содержащий исходный код .java . "shell": true запускает "cmd" через оболочку, будь то cmd.exe , bash или что угодно. В противном случае он просто выводится через консоль Sublime. Словарь "env" позволяет вам добавлять пары Key: value переменных среды, которые вы можете установить только для сеанса сборки. Это может быть в разделе "Variants" или основной, в зависимости от ваших потребностей.

Для получения дополнительной информации просмотрите две ссылки, которые я предоставил в начале - вместе они содержат массу информации и некоторые полезные примеры систем сборки. Вы также можете просматривать подпапки каталога Packages и проверять любые .sublime-build которые вы найдете для идей - их имена перечислены в разделе Tools -> Build System (т. Е. Система сборки "Python" находится в Packages/Python/Python.sublime-build).


В ответ на ваш оригинальный вопрос, Sublime просто не предназначен для поддержки полноценного эмулятора терминала. Хотя вы можете запускать произвольные команды, используя subprocess.Popen() Python'а, я предпочитаю использовать фантастический плагин SublimeREPL (доступный через Package Control) вместе с IPython. Существует множество зависимостей, но easy_install ipython[all] должен позаботиться о большей части этого за вас, как при установке через менеджер пакетов, такой как MacPorts , yum , apt-get и т.д. Для Windows предустановленные двоичные файлы доступны от Christoph Репозиторий Gohlke's Python Extension Pack для Windows, который содержит ссылки на все обязательные и необязательные зависимости. Убедитесь, что вы используете установку Python.org Python.

После того, как Python и IPython установлены в вашей системе и в PATH Sublime, а SublimeREPL установлен, перейдите в Tools -> SublimeREPL -> Python -> Python - IPython и вы должны начать работу на мгновение. Чтобы выполнить команду оболочки, просто добавьте к ней префикс ! - например:

In [1]: !ls

будет перечислять содержимое текущего рабочего каталога, в то время как

In [2]: files = !ls

назначит эти имена переменной. Имейте в виду, однако, что команды, как !cd .. фактически не меняет текущий рабочий каталог, вам нужно запустить:

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

сделать это. Здесь очень полезна документация по функциям файлов и каталогов модуля os (измените 2 в URL на 3 если вы используете Python 3), что поднимает еще одну сильную сторону этой системы: у вас может быть несколько версий Python в вашей системе, и не должны зависеть от урезанной версии 2.6, поставляемой с Sublime Text 2. Сохраните следующее в 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 с различными опциями, рабочими каталогами, что у вас есть.

Надеюсь, что-то из этого вам пригодится, пожалуйста, дайте мне знать, как это работает для вас.

2

Кнопка "Показать консоль" показывает консоль Python, встроенную в Sublime Text, а не в обычный терминал ОС. Если вы хотите открыть терминал в папке, содержащей отредактированный файл, вы можете попробовать пакет Sublime Terminal .

РЕДАКТИРОВАТЬ: @Darren: если это так, то посмотрите в Интернете, как выполнять команды терминала из оболочки Python, Google имеет много ссылок на них.

0

Теперь это возможно. Вы можете скомпилировать и запустить свой код полностью на ST, и это очень быстро / просто. Недавно появился пакет ST под названием Javatar, который может это сделать. https://javatar.readthedocs.org

0

Попробуйте Glue, это терминал внутри вкладки Sublime text. Вы можете запускать все консольные команды, запускать программы и т.д. Из командной строки, результат отображается в окне.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .