This page has been robot translated, sorry for typos if any. Original content here.

Ein einfaches Plugin für Sublime Text 2 schreiben

Nach Thema:


Sublime Text 2 FAQSublime Text 2 FAQ

Das Beispiel ist real, aus der Ingenieurspraxis. Übersetzung der ausgewählten Nummer im Text vom dezimalen in das hexadezimale Zahlensystem. Die Funktion sollte sowohl über das Haupt- und Kontextmenü als auch über die Tastenkombination Strg + Umschalt + H erreichbar sein. Ausführungsergebnis: Die Zahl in hexadezimal geschriebenen Zahlen und Großbuchstaben ohne führende Zeichen wie "0x". Wenn der ausgewählte Text keine Zahl ist, schwöre es mit der Statusleiste. Ich möchte Sie darauf aufmerksam machen, dass das Beispiel auf das Maximum reduziert werden soll, damit die Details für die Details nicht verloren gehen: die Einfachheit, Plugins für Sublime zu erstellen.

Ein Plugin schreiben

Klicken Sie auf Extras -> Neues Plugin ... und sehen Sie sich das Werkstück an. Wir ändern den Klassennamen und schreiben die Funktionalität in die run-Methode. Ich habe Folgendes bekommen:

 importiere sublime, sublime_plugin

 Klasse DecToHexCommand (sublime_plugin.TextCommand):
  MAX_STR_LEN = 10
  def run (selbst, editieren):
  v = Selbstansicht

  # Ermittelt den Wert des ersten ausgewählten Blocks
  dec = vstr (v.sel () [0])

  # Ersetzen Sie die Dezimalzahl durch eine hexadezimale oder eine Ausgabefehlermeldung		
  if dec.isdigit ():
  v.replace (bearbeiten, v.sel () [0], hex (int (dez)) [2:] .ober ())
  sonst:
  # Schneiden zu lange Zeilen, die nicht in die Statusleiste passen 
  wenn len (dez)> self.MAX_STR_LEN:
  logMsg = dez [0: self.MAX_STR_LEN] + "..."
  sonst:
  logMsg = dez
  sublime.status_message ("\" "+ logMsg +" \ "ist keine Dezimalzahl!")	

Wir speichern dort, wo der Editor mit dem Namen dec_to_hex.py anbieten wird

Menüpunkte hinzufügen Wir registrieren die Tastaturkombination.

Beginnen wir mit den "Hot Keys".

Klicken Sie im Menü auf Einstellungen -> Key Bindings-User . Eine Datei mit Einstellungen im JSON-Format wird geöffnet. Höchstwahrscheinlich leer. Fügen Sie eine Zeile hinzu.

  {"keys": ["Strg + Umschalt + h"], "Befehl": "dec_to_hex"}

Wir sparen. Alles. Das Prinzip kann bereits verwendet werden. Wenn es nicht funktioniert, lohnt es sich, zu sehen, was auf der Konsole geschrieben ist (Strg + `).

Um ein Element zum Kontextmenü hinzuzufügen, erstellen Sie eine Context-Menü- Datei mit dem folgenden Inhalt:

 [ 
  { 
  "Befehl": "dec_to_hex"
  } 
 ] 

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

Wir speichern in demselben Verzeichnis, in dem das Plugin gespeichert ist.

Ie % USERPROFILE% \ AppData \ Roaming \ Sublime Text 2 \ Pakete \ Benutzer , für Windows-Benutzer. An derselben Stelle erstellen wir die Datei Mainlime-men u. Ich dachte, dass dieses Element im Menü "Bearbeiten" am relevantesten wäre. Daher schrieb ich folgendes in die Mainclimate-Menüdatei:

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

Wir überprüfen. Elemente mit dem Namen Dec To Hex sollten im Haupt- und Kontextmenü erscheinen

Referenzen:

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

www.sublimetext.com/download - Herunterladen

www.sublimetext.com/dev - Dev erstellt. Ich benutze die dev-Version, ich habe die Bugs noch nicht gefangen.

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