49 votes

Est-il possible de chaîner des commandes de reliure de clé dans sublime text 2?

Il y a des moments dans Sublime Text, quand je veux révéler le fichier en cours dans la barre latérale, puis naviguer dans la structure de dossiers.

Ceci peut être réalisé en utilisant les commandes reveal_in_side_bar et focus_side_bar mais ils doivent être tenus en deux combinaisons de touches je dois donc faire 2 combinaisons de touches pour atteindre mon objectif quand idéalement, j'aimerais juste (je suis paresseux).

Est-il possible de lier plusieurs commandes à une seule combinaison de touches? par exemple, quelque chose comme ceci:

{
  "keys": ["alt+shift+l"], 
  "commands": ["reveal_in_side_bar", "focus_side_bar"]
},

Solution

Basé sur @artem-ivanyk et @d_rail réponses

1) Outils → Nouveau Plugin

import sublime, sublime_plugin

class RevealInSideBarAndFocusCommand(sublime_plugin.WindowCommand):
    def run(self):
        self.window.run_command("reveal_in_side_bar")
        self.window.run_command("focus_side_bar")

Enregistrer sous RevealInSideBarAndFocus.py

2) Sublime Text 2 → Préférences → Raccourcis Clavier De L'Utilisateur

La lie de raccourci:

{ "keys": ["alt+shift+l"], "command": "reveal_in_side_bar_and_focus" }

35voto

PatatjeNL Points 183

Bien que la question est d'un an, cela peut aider les gens qui sont toujours à la recherche d'une réponse.

Récemment, un nouveau paquet a été développé par jisaacks, appelés Chain of command. Il a pour tâche principale de faire exactement ce que vous demandez, pour enchaîner plusieurs commandes à la fois.

Le package peut être trouvé ici: https://github.com/jisaacks/ChainOfCommand

Un exemple de travail peut être trouvé ci-dessous.

Disons que vous avez voulu une clé de liaison pour dupliquer le fichier en cours. Vous pouvez définir cette clé de liaison:

{
  "keys": ["super+shift+option+d"], 
  "command": "chain", 
  "args": {
    "commands": [
      ["select_all"],
      ["copy"],
      ["new_file"],
      ["paste"],
      ["save"]
    ]
  }
}

Cela permettrait de sélectionner tout le texte, le copier, créer un nouveau fichier, collez le texte, puis d'ouvrir le dialogue enregistrer le fichier.

Source: https://sublime.wbond.net/packages/Chain%20of%20Command.

30voto

d_rail Points 2074

Mise à jour de la réponse de @Artem Ivanyk. Je ne sais pas ce qui a changé dans Sublime, mais cette solution n'a pas fonctionné pour moi, mais cela a fonctionné:

 import sublime, sublime_plugin

class RevealInSideBarAndFocusCommand(sublime_plugin.WindowCommand):
    def run(self):
        self.window.run_command("reveal_in_side_bar")
        self.window.run_command("focus_side_bar")
 

.

 { "keys": ["ctrl+shift+8"], "command": "reveal_in_side_bar_and_focus" }
 

Btw, j'utilise Build 2220

26voto

Artem Ivanyk Points 191

Suis tombé sur le même problème. Lorsque vous essayez d'enregistrer des macros, qui consistait à "Sauver" de commande, la console qui se sont présentés à moi "Inconnu macros commande enregistrer"message. Travaillé mon chemin autour de l'élémentaire plugin.

1) Outils → Nouveau Plugin

import sublime, sublime_plugin

class MyChainedActionsCommand():
    def run(self):
        self.view.run_command("reveal_in_side_bar")
        self.view.run_command("focus_side_bar")

Vous devez utiliser des majuscules dos de chameau cas de la notation pour le nom de la classe. ST2 expose cette classe pour le nom de la commande avec la Commande"" suffixe supprimée et le reste convertis en minuscules-caractère de soulignement. I. e. dans cet exemple, MyChainedActionsCommand a pu être exécuté dans sublime de la console taper: view.run_command("my_chained_actions")

2) Sublime Text 2 → Préférences → Raccourcis Clavier De L'Utilisateur

La lie de raccourci:

{ "keys": ["alt+shift+l"], "command": "my_chained_actions" }

Tenir compte des virgules.

8voto

mirandacelso Points 71

Jetez un coup d'oeil à cette idée .

J'ai essayé de mettre cela en œuvre depuis longtemps et je l'ai trouvé par accident.

N'oubliez pas de lire la "documentation" fournie. J'ai continué à essayer de faire ce travail, jusqu'à ce que je réalise que je ne passais pas la clé "context".

4voto

BoundinCode Points 6562

Vous pouvez créer une macro pour le faire. Pour Sublime Text, les macros sont essentiellement juste enchaîné les commandes. Ensuite, vous créez un raccourci clavier pour cette macro. Vous pouvez créer une macro à l'aide de Tools > Record Macro, puis l'exécution de vos commandes (méfiez-vous que les macros d'enregistrer les frappes de touches, de sorte que vous aurez envie d'utiliser les commandes de la barre de menu pour ne pas provoquer des conflits), alors Stop Recording, alors Save Macro. Après l'enregistrement de la macro, vous pouvez l'ouvrir en arrière dans Sublime Text pour s'assurer qu'il a enregistré seulement ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X