Как открыть окно командной строки из Sublime в windows7

Я создал функцию в VIM с именем OpenCMD(), которая используется для открытой командной строки или терминала в VIM (и cd в текущем пути к файлу)

func! OpenCMD()
    if has('win32')
        let com = '!cmd /c start cd '. expand('%:p:h')
    else
        let com = '!/usr/bin/gnome-terminal --working-directory=' . expand('%:p:h')
    endif
    silent execute com
endfunc
nmap cmd :call OpenCMD()

Теперь я хочу открыть командную строку и cd в текущем пути к файлу в Sublime (sublime 3 beta). Функция такая же, как и OpenCMD().

И я искал вопрос в потоке стека: Sublime Text 2 - Открыть приглашение CMD в текущем каталоге или каталоге проекта (Windows)

Я сделал так, как ответил первый парень (Create cmd, cmd.py и Context.sublime-menu). Но он не может работать, операция cmd всегда отключена.

cmd_in_sublime3

Есть ли способ получить это? Спасибо заранее!

Ответ 1

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

Только один шаг (для меня) должен быть изменен: имя файла должно быть в верхнем регистре. Используйте CMD вместо CMD.


Мои шаги (Win7):

  • Откройте папку %APPDATA%\Sublime Text 3\Packages или просто нажмите Настройки Браузерные пакеты.. в бета-версии sublime-text-3
  • Создайте папку с именем CMD (Верхний). Путь CMD должен быть %APPDATA%\Sublime Text 3\Packages\CMD.
  • Откройте папку CMD и создайте файл с именем cmd.py (строчный), вставьте контекст, как показано ниже:
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)
  • Создайте файл (снова), названный Context.sublime-menu. Добавьте контекст как показано ниже:
[
     { "command": "cmd" }
]
  • Функция Cmd будет работать в контекстном меню (щелкните правой кнопкой мыши). Например: Open_cmd_in_Sublime

Из-за причины, если вы хотите открыть командную строку по команде (например, с помощью cmd), вы можете добавить следующий контекст в Default (Windows).sublime-keymap.

{ "keys": ["c", "m", "d"], "command": "cmd"}

Вы можете открыть его из Предпочтения Ключевые привязки - Пользователь

Ответ 2

Большое спасибо @Марсо! Но, я думаю, мы можем немного улучшить плагин... (i "m on st3 beta, window 8)

import os
import sublime_plugin

class CmdCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        os.system("cd " + self.view.file_name() + " & start cmd")

Ответ 3

Для Windows я заменяю команду:

command= "cmd /K cd "+current_directory