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

Schreiben Sie ein einfaches Plug-In für Sublime Text 2

Nach Thema:


Sublime Text 2 FAQSublime Text 2 FAQ

Ein Beispiel ist real, aus der Ingenieurspraxis. Übersetzung der ausgewählten Zahl im Text von dezimal nach hexadezimal. Auf die Funktion sollte sowohl über das Haupt- und Kontextmenü als auch über die Tastenkombination Strg + Umschalt + H zugegriffen werden können. Ergebnis der Ausführung: Die Zahl in hex wird mit Großbuchstaben und Buchstaben ohne führende Zeichen wie "0x" geschrieben. Wenn der ausgewählte Text keine Nummer ist, schwören wir darauf mit der Statusleiste. Ich möchte Sie darauf aufmerksam machen, dass das Beispiel so weit wie möglich vereinfacht werden soll, damit die Details nicht verloren gehen: die Einfachheit der Erstellung von Plug-ins für Sublime.

Ein Plugin schreiben

Klicken Sie auf Extras -> Neues Plugin ... und sehen Sie sich das Werkstück an. Ändern Sie den Namen der Klasse und schreiben Sie das Funktional 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 Hexadezimal oder geben Sie eine Fehlermeldung aus		
  if dec.isdigit ():
  v.replace (bearbeiten, v.sel () [0], hex (int (dez)) [2:] .ober ())
  sonst:
  # Beschneide 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, wo der Editor mit dem Namen dec_to_hex.py anbieten wird.

Hinzufügen von Menüpunkten Wir schreiben eine Tastaturkombination vor.

Beginnen wir mit den "Hot Keys".

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

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

Wir sparen. Das ist alles. Prinzip kann bereits verwendet werden. Wenn es nicht funktioniert, sollten Sie sehen, was darüber in der Konsole geschrieben wird (Strg + `).

Um ein Element zum Kontextmenü hinzuzufügen, erstellen Sie eine Context-Menü- Datei mit folgendem 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 wurde.

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 besten geeignet wäre, daher schrieb ich in der Datei Mainclimate-menu folgendes:

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

Überprüfung. Im Haupt- und Kontextmenü sollten Einträge mit dem Namen Dec To Hex 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 noch keine Fehler gefunden.

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