So schalten Sie die Kommentare in Spalte 1 in Sublime Text 3 um


0

In Sublime Text 3 wird Edit->Comment->Toggle Comment( command- /auf einem Mac) die aktuelle Auswahl (oder aktuelle Zeile) auskommentiert oder, abhängig von ihrem aktuellen Status, auskommentiert. Dazu werden am Anfang der aktuellen Zeile ein Leerzeichen und das / die Kommentaranfangszeichen eingefügt. In der Spalte, in der die aktuelle Zeile beginnt, wird das führende Leerzeichen beibehalten. Zum Beispiel die vierte Zeile auskommentieren:

#***************************************************************************
sub invoke
{
    my($self) = @_;

würde dazu führen:

#***************************************************************************
sub invoke
{
    # my($self) = @_;

Ich würde es wirklich lieben, wenn es das Kommentarzeichen linksbündig ausrichten würde:

#***************************************************************************
sub invoke
{
#   my($self) = @_;

Gibt es eine Möglichkeit, dies zu tun? Vielen Dank!

Antworten:


2

Warnung:

Dazu müssen Sie mit einer der Kerndateien von Sublime herumspielen. Fahren Sie nicht fort, wenn Sie sich damit unwohl fühlen.


Davon abgesehen sind die Änderungen, die Sie vornehmen, nicht so drastisch und können leicht rückgängig gemacht werden. Mach dir keine Sorgen, ich werde es einfach machen.

Als Erstes müssen Sie Package Control installieren, sofern Sie dies noch nicht getan haben. Dann installieren PackageResourceViewer. Öffnen Sie die Befehlspalette, geben Sie ein prv, um die PackageResourceViewer:Optionen aufzurufen, und wählen Sie PackageResourceViewer: Open Resource. Scrollen Sie ein wenig nach unten, wählen Sie Default, scrollen Sie dann ein wenig weiter und wählen Sie comment.py, um die Datei in Sublime zu öffnen. Sie können jetzt drücken Esc, um die Befehlspalette zu schließen. Die ersten beiden Funktionsdefinitionen sehen folgendermaßen aus:

import sublime, sublime_plugin

def advance_to_first_non_white_space_on_line(view, pt):
    while True:
        c = view.substr(pt)
        if c == " " or c == "\t":
            pt += 1
        else:
            break

    return pt

def has_non_white_space_on_line(view, pt):
    while True:
        c = view.substr(pt)
        if c == " " or c == "\t":
            pt += 1
        else:
            return c != "\n"

Kommentieren Sie zunächst alle Zeilen mit advance_to_first_non_white_space_on_line()Ausnahme der Schlusserklärung aus return:

def advance_to_first_non_white_space_on_line(view, pt):
    # while True:
    #     c = view.substr(pt)
    #     if c == " " or c == "\t":
    #         pt += 1
    #     else:
    #         break

    return pt

Weiter nach has_non_white_space_on_line(), kommentieren Sie alle die folgenden Zeilen:

def has_non_white_space_on_line(view, pt):
    # while True:
    #     c = view.substr(pt)
    #     if c == " " or c == "\t":
    #         pt += 1
    #     else:
    #         return c != "\n"

Erstellen Sie anschließend nach der returnAnweisung eine neue Zeile , rücken Sie 4 Leerzeichen ein und fügen Sie Folgendes ein:

return view.substr(pt) != "\n"

das Ganze so aussehen zu lassen:

def has_non_white_space_on_line(view, pt):
    # while True:
    #     c = view.substr(pt)
    #     if c == " " or c == "\t":
    #         pt += 1
    #     else:
    #         return c != "\n"
    return view.substr(pt) != "\n"

Und das ist es! Speichern Sie die Datei und versuchen Sie zum Spaß, einige Zeilen darin zu #kommentieren. In Spalte 1 werden alle Kommentarzeichen angezeigt.

Dies wird natürlich das Verhalten für alle Sprachen ändern , nicht nur für Python. Seien Sie also darauf vorbereitet. Um die Änderungen rückgängig zu machen, ersetzen Sie einfach die beiden Funktionsdefinitionen durch die im ersten obigen Codeblock. Oh, um wieder zur Datei zu gelangen, müssen Sie PackageResourceViewer nicht durchlaufen. Wählen Sie stattdessen Preferences -> Browse Packages...(oder Sublime Text -> Preferences -> Browse Packages...unter OS X), um den PackagesOrdner im Dateimanager Ihres Betriebssystems (Windows Explorer, Finder, Nautilus usw.) zu öffnen . In Packages/Defaultfinden Sie comment.py, wie Sie es geändert haben. Wenn Sie zu den vorherigen Einstellungen zurückkehren möchten, löschen Sie einfach diese Datei, und Sie sind fertig (das Original wird an einer anderen Stelle gespeichert, wird jedoch überschrieben, wenn eine Datei mit demselben Namen in vorhanden ist Packages).

Wenn Sie wirklich abenteuerlustig sind, können Sie die Datei klonen, umbenennen und so ändern, dass sie nur mit bestimmten Sprachen so eingerückt wird, aber das geht über den Rahmen dieser Antwort hinaus. Fragen Sie bei Stack Overflow, ob Sie wissen möchten, wie das geht.


Vielen Dank! Ich bin neu bei Sublime - gibt es eine Möglichkeit, Kernfunktionen wie diese zu überschreiben?
Joe Casadonte

@ JoeCasadonte Nein, das ist wirklich der einfachste Weg, es zu tun. Ich nehme an, ich könnte ein konfigurierbares Plugin schreiben, um dies zu tun, aber es wäre eine nicht triviale Menge an Arbeit. Wenn Sie dies wirklich nicht tun möchten, lassen Sie es mich wissen und ich werde sehen, was ich tun kann. Die hier beschriebenen Schritte stellen jedoch die beste Möglichkeit dar, das aktuelle Verhalten zu überschreiben, ohne etwas zu beschädigen. Denken Sie daran, dass die ursprüngliche Datei noch vorhanden ist sicher und solide (im Gegensatz zu ST2), so dass Sie Ihre neue löschen können, wann Packages/Default/comment.pyimmer Sie möchten. Wenn die Anweisungen irgendwie unklar sind, lassen Sie es mich bitte wissen.
MattDMo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.