web-dev-qa-db-fra.com

Sublime Text 2 - Ouvrir l'invite CMD dans le répertoire courant ou de projet (Windows)

J'ai trouvé la commande Sublime suivante très utile car elle ouvre une fenêtre Explorer à l'emplacement du fichier actuel:

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

Ce que j'aimerais, c'est une commande similaire qui ouvrira une fenêtre cmd à la place. Idéalement dans le dossier du projet racine, mais le répertoire de fichiers actuel conviendrait également.

J'ai lu la question suivante, mais je n'arrive pas à comprendre comment l'utiliser dans un sublime plugin/commande: fichier BAT pour ouvrir CMD dans le répertoire actuel

34
captainclam
  1. Cliquez sur le menu preference> Browser Packages dans Sublime Text 2.
  2. Créez un dossier Cmd dans le répertoire ouvert à l'étape 1.
  3. Créez un fichier python nommé cmd.py avec le code suivant dans le dossier Cmd créé à l'étape 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. Créez un fichier nommé Context.sublime-menu avec le code suivant dans le dossier Cmd créé à l'étape 2.
[
     { "command": "cmd" }
]
  1. Redémarrez Sublime Text.

Vous pouvez maintenant ouvrir l'invite Cmd dans le répertoire actuel dans le menu contextuel du clic droit.

59
TomCaps

Le package Shell Turtlestein a également une commande pour cela.
Avec ce package installé, vous pouvez taper CTRL+SHIFT+ALT+C
(ou CMD+SHIFT+ALT+C sur mac) pour ouvrir cmd/terminal dans le dossier du fichier actuel.

18
Cruinh

Pour développer la réponse de TomCaps, vous pouvez également ouvrir l'invite de commande dans le dossier du projet racine (comme cela a été demandé dans la question), en modifiant l'étape 3 en:

  1. Créez un fichier python nommé cmd.py avec le code suivant dans le dossier cmd créé à l'étape 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)
    
4
Kevin Blake

Je cherchais la même chose, sauf sur Mac OS X. J'ai aussi essayé le

Mais j'ai fini par utiliser le

pour les raisons suivantes:

  • L'objectif principal de Shell Turtulestein est un autre
  • Sublime Terminal me permet d'utiliser iTerm au lieu du terminal intégré
2
duongel

Une méthode non python.

  1. Accédez à Menu> Preferences> Browser Packages.
  2. Ouvrez le répertoire user.
  3. Créez un nouveau fichier cmdRunFromDIR.sublime-build et ouvrez dans Sublime Text.
  4. Collez ce qui suit ...

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

    Ce qui précède ouvrira le dossier actuel, mais si vous voulez le répertoire du projet, il y a tout un hôte de différentes méthodes ici. Remarque: Que le & après START passera alors le $file_path variable qui peut être remplacé par l'un de ceux ci-dessous. Je n'ai pu voir aucune documentation à ce sujet. C'était juste des essais et des erreurs en mon nom et c'est logique si vous y réfléchissez. Donc, si vous essayez de passer "cmd": ["C:\\\\Windows\\System32\\cmd.exe", "/C START & $file_path"] to obtiendra un ERROR si le chemin contient des espaces.

    $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. Pour le raccourci clavier, accédez à Menu> Preferences> Key Bindings et collez le code suivant. Ce raccourci est CTRL+C, D.

        { "keys": ["alt+c,alt+d"], "command": "build", "args": { "file": "{packages}/User/cmdRunFromDIR.sublime-build" } }
    
  6. Ajouter , à la fin de cette ligne si ce n'est pas la dernière ligne de ce fichier.

  7. Il n'est pas nécessaire de redémarrer Sublime Text.

  8. Vous y accédez également via Menu> Tools> Build System> cmdRunFromDIR.
    Une fois cela fait CTRL+B exécutera également la commande.


Liens utiles: Voir le 1er lien ci-dessous pour savoir comment exécuter .bat fichiers directement depuis Sublime Text. Très peu de modification du code ci-dessus.

Build System - Sublime Text

Dans Sublime Text 3, comment avoir des raccourcis pour "Build and Run" et "Build only" séparément comme c'était le cas dans Sublime Text 2

Comment ajouter un raccourci pour n'importe quelle commande dans un texte sublime

Build Systems - Configuration

1
Stephen Sherry