Schreiben ein einfaches Plugin für Sublime Text 2

Mit dem Thema:


Sublime Text 2 FAQSublime Text 2 FAQ

Ein Beispiel für den real, aus der Ingenieurpraxis. Übersetzen ausgewählten Text in einer Anzahl von Dezimal in Hexadezimal-Schreibweise. Die Funktion sollte aus dem Hauptmenü und dem Kontext, sowie durch eine Kombination von Tasten Strg + Umschalt + H. verfügbar sein Execution Ergebnis: Die aufgezeichneten Zahl in Hexham Zahlen und Großbuchstaben verwenden, ohne führende Zeichen wie «0x». Wenn der ausgewählte Text ist keine Zahl - schwöre es mit einer Statusleiste. Ich mache Sie darauf, dass das Beispiel beabsichtigt, die maximale vereinfacht, so dass für Details nicht das Wesen der Einfachheit erstellen Plug-Ins für Sublime verloren.

Das Schreiben eines Plugins

Wir drücken Extras -> New Plugin ... und ein leeres zu sehen. Ändern Sie den Namen der Klasse und schreiben Funktionalität im Ablauf. Ich habe die folgenden:

 importieren erhaben, sublime_plugin

 Klasse DecToHexCommand (sublime_plugin.TextCommand):
  MAX_STR_LEN = 10
  def run (self, bearbeiten):
  v = self.view

  #, Um den Wert des ersten ausgewählten Block holen
  dez = v.substr (V.SEL () [0])

  # Ersetzen Sie die Dezimal oder Hexadezimal-Fehlermeldung angezeigt		
  wenn dec.isdigit ():
  v.replace (edit, V.SEL () [0], hex (int (DEC)) [2:]. obere ())
  sonst:
  # Geerntete lange Linien, die nicht passen in der Statusleiste 
  if len (Dezember)> self.MAX_STR_LEN:
  logmsg = Dezember [0: self.MAX_STR_LEN] + "..."
  sonst:
  logmsg = Dezember
  sublime.status_message ( "\" "+ logmsg +" \ "ist nicht eine Dezimalzahl!")	

Speichern zu bieten , wo Editor namens dec_to_hex.py

Hinzufügen von Menüpunkten. Verschreibt der Tastenkombination.

Lassen Sie uns mit "Hot-Keys" beginnen.

Schlagen Sie die Menü - Einstellungen -> Key Bindings-Benutzer. Öffnet die Konfigurationsdatei im JSON-Format. Die Chancen stehen leer. Zusätzlich zu seiner Linie.

  { "Keys": [ "Strg + Shift + h"], "Befehl": "dec_to_hex"}

Speichern. Alles. Prinzip ist bereits möglich, zu verwenden. Wenn Sie es nicht wert arbeiten dass das Sehen bei dieser Gelegenheit ist es in konsolki (Ctrl + `) geschrieben.

So fügen Sie ein Element in das Kontextmenü Context.sublime-Menü Datei zu erstellen , wie folgt:

 [ 
  { 
  "Befehl": "dec_to_hex"
  } 
 ] 

Ich denke, dass, wie im vorherigen Fall, alles ohne Kommentar klar.

Halten Sie in das Verzeichnis, in dem Sie den Stecker gespeichert.

dh % USERPROFILE% \ AppData \ Roaming \ Sublime Text 2 \ Packages \ User, für Windows - Benutzer. Es erstellen Main.sublime-Männer u - Datei. Ich fühlte, dass dieses Element, um alle im Menü Bearbeiten auf angemessen sein wird, so Main.sublime-Menü Datei, schrieb folgendes:

 [ 
  { 
  "Id": "bearbeiten", 
  "Kinder": 
  [ 
  { "Befehl": "dec_to_hex"} 
  ] 
  } 
 ]

Prüfen. In den Haupt- und Kontextmenü - Einträge mit dem Namen Dezember To Hex erscheinen

Referenzen:

www.sublimetext.com/docs/api-reference - das Plugin die API der Referenz

www.sublimetext.com/download - Herunterladen

www.sublimetext.com/dev - die Baut die Dev. Ich dev Version verwenden, haben die Fehler noch nicht gefangen.

net.tutsplus.com/tutorials/python-tutorials/how-to-create-a-sublime-text-2-plugin/ - Ein Artikel zum gleichen Thema in Englisch