Sublime Text 2 — открыть приглашение CMD в текущем каталоге или каталоге проекта (Windows)

Я нашел следующую команду Sublime действительно полезной, поскольку она открывает окно проводника в местоположении текущего файла:

{ "keys": ["ctrl+alt+o"], "command": "open_dir", "args": {"dir": "$file_path", "file": "$file_name"} },

Что бы я хотел, так это аналогичную команду, которая вместо этого откроет окно cmd. В идеале в корневой папке проекта, но также подойдет и текущий каталог файлов.

Прочитал следующий вопрос, но не могу понять, как использовать его в возвышенном плагине/команде: BAT-файл для открытия CMD в текущем каталоге


person captainclam    schedule 24.08.2012    source источник
comment
Я обновил подробные шаги. пожалуйста, попробуйте и примите ответ, если он работает. :)   -  person TomCaps    schedule 12.10.2012


Ответы (5)


  1. Щелкните меню preference > Browser Packages в Sublime Text 2.
  2. Создайте папку Cmd в каталоге, открытом на шаге 1.
  3. Создайте файл Python с именем cmd.py со следующим кодом в папке Cmd, созданной на шаге 2.
import os, sublime_plugin
class CmdCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        file_name=self.view.file_name()
        path=file_name.split("\\")
        current_driver=path[0]
        path.pop()
        current_directory="\\".join(path)
        command= "cd "+current_directory+" & "+current_driver+" & start cmd"
        os.system(command)
  1. Создайте файл с именем Context.sublime-menu со следующим кодом в папке Cmd, созданной на шаге 2.
[
     { "command": "cmd" }
]
  1. Перезапустите Sublime Text.

Теперь вы можете открыть приглашение Cmd в текущем каталоге в контекстном меню, вызываемом правой кнопкой мыши.

person TomCaps    schedule 29.08.2012
comment
это выглядит хорошо, спасибо, приятель. Я протестирую это на своей машине с Windows и дам вам знать, как это работает. - person captainclam; 30.08.2012
comment
Я также хотел бы иметь возможность заставить это работать. Куда идет этот фрагмент кода? И капитанкальм, ты заставил это работать? - person Dale Anderson; 26.09.2012
comment
извините за задержку ответа. да, я почти уверен, что это сработало для меня (больше не в Windows, поэтому сейчас не могу проверить) - person captainclam; 12.10.2012
comment
где бы я посмотрел, чтобы убедиться, что этот процесс был успешным? Я новичок в возвышенном и не знаю, где искать, чтобы проверить это? щелкните правой кнопкой мыши контекстное меню в какой части пользовательского интерфейса? - person Maslow; 29.01.2013
comment
вы также должны добавить импорт для двух используемых вами пакетов: import os, sublime_plugin в начале файла. как только это сделано, это работает для меня. Благодарность - person javigzz; 21.05.2013
comment
Спасибо @TomCaps. Инструкция довольно подробная. Если вы щелкните правой кнопкой мыши область редактора в любом файле, вы сможете увидеть пункт меню Cmd. - person Batandwa; 05.07.2013
comment
Спасибо, но это не работает для меня. Получение этой ошибки в журнале после перезапуска ST. У меня бета ST3. - person FredyC; 15.09.2013
comment
Можно ли получить его как окно внутри Sublime Text 2? То есть вам не нужно открывать CMD и выходить за пределы ST2 для выполнения CMD-команд? - person Kebman; 07.05.2014
comment
В Sublime Text 3, следуя приведенным выше инструкциям, элемент Cmd помещается в контекстное меню, но он всегда отключен. - person Phrogz; 09.10.2014
comment
@Phrogz имя пакета cmd должно быть в верхнем регистре: CMD - person caub; 03.02.2015
comment
@Phrogz: я переименовал папку в Cmd с верхней буквой C, и если это исправлено. - person BenC; 19.05.2016
comment
Терминал, кажется, мигает один раз, прежде чем сохраняется. Я предполагаю, что это потому, что python использует os.system для запуска терминала для запуска терминала, а затем закрывает первый. Есть ли способ просто оставить один открытым с самого начала? - person Unknow0059; 06.09.2020

В пакете Shell Turtlestein также есть команда для этого.
Установив этот пакет, вы можете введите CTRL+SHIFT+ALT+C
(или CMD+ SHIFT+ALT+C на Mac), чтобы открыть cmd/терминал в папке текущего файла.

person Cruinh    schedule 09.01.2013
comment
Я бы также рекомендовал этот плагин для возвышенного текста - person Dipesh KC; 02.03.2014

Просто чтобы расширить ответ TomCaps, вы также можете открыть командную строку в корневой папке проекта (как было запрошено в вопросе), изменив шаг 3 на:

  1. Создайте файл Python с именем cmd.py со следующим кодом в папке cmd, созданной на шаге 2.

    import os, sublime, sublime_plugin
    class CmdCommand(sublime_plugin.TextCommand):
        def run(self, edit):
            file_name=sublime.active_window().project_file_name()
            path=file_name.split("\\")
            current_driver=path[0]
            path.pop()
            current_directory="\\".join(path)
            command= "cd "+current_directory+" & "+current_driver+" & start cmd"
            os.system(command)
    
person Kevin Blake    schedule 12.02.2015

Я искал то же самое, за исключением Mac OS X. Я также пробовал

Но в итоге я использовал

по следующим причинам:

  • Основная цель Shell Turtulestein заключается в другом.
  • Sublime Terminal позволяет мне использовать iTerm вместо встроенного терминала
person duongel    schedule 27.05.2015

Непитоновский метод.

  1. Go to Menu > Preferences > Browser Packages.
  2. Откройте каталог user.
  3. Создайте новый файл cmdRunFromDIR.sublime-build и откройте его в Sublime Text.
  4. Вставьте следующее...

    {
    "cmd": ["C:\\\\Windows\\System32\\cmd.exe", "/C START &"],
    "working_dir": "$file_path"
    }
    

    Приведенное выше откроет текущую папку, но если вам нужен каталог проекта, то здесь есть целый ряд различных методов. Примечание. & после START затем перейдет к $file_path variable, который можно изменить на любой из приведенных ниже. Я не мог видеть никакой документации для этого. Это был просто метод проб и ошибок от моего имени, и это имеет смысл, если подумать. Итак, если вы попытаетесь передать "cmd": ["C:\\\\Windows\\System32\\cmd.exe", "/C START & $file_path"], вы получите ERROR, если в пути есть пробелы.

    $file_path  The directory of the current file, e.g., C:\Files.
    $file   The full path to the current file, e.g., C:\Files\Chapter1.txt.
    $file_name  The name portion of the current file, e.g., Chapter1.txt.
    $file_extension The extension portion of the current file, e.g., txt.
    $file_base_name The name-only portion of the current file, e.g., Document.
    $folder The path to the first folder opened in the current project.
    $project    The full path to the current project file.
    $project_path   The directory of the current project file.
    $project_name   The name portion of the current project file.
    $project_extension  The extension portion of the current project file.
    $project_base_name  The name-only portion of the current project file.
    $packages   The full path to the Packages folder.
    
  5. Для сочетания клавиш перейдите к Menu > Preferences > Key Bindings и вставьте следующий код. Это ярлык CTRL+C,D.

        { "keys": ["alt+c,alt+d"], "command": "build", "args": { "file": "{packages}/User/cmdRunFromDIR.sublime-build" } }
    
  6. Добавьте , в конце этой строки, если это не последняя строка в этом файле.

  7. Нет необходимости перезапускать Sublime Text.

  8. Вы также можете получить доступ к этому через Menu > Tools > Build System > cmdRunFromDIR.
    Как только это будет сделано, CTRL+B также запустит команду.


Полезные ссылки: см. 1-ю ссылку ниже, чтобы узнать, как запускать .bat файлов непосредственно из Sublime Text. Очень небольшая модификация приведенного выше кода.

Система сборки - Sublime Text 3

Заголовок В Sublime Text 3, как иметь ярлыки для «Сборка и запуск» и «Сборка только» отдельно, как это было в Sublime Text 2

Как добавить ярлык для любой команды в Sublime Text

Системы сборки – Конфигурация

person Ste    schedule 15.05.2019