Gibt es eine Verknüpfung, um einen Blockkommentar in Xcode zu erstellen?

152

Ich schreibe ANSI-kompatiblen C-Code und kann daher den //Kommentar line ( ) nicht verwenden . Ich benutze Xcode. In Sublime Text und Eclipse und den meisten anderen IDEs gibt es separate Tastaturkürzel für Zeilenkommentare und Blockkommentare ( /**/). Ich sehe das jedoch nicht in Xcode - tatsächlich sehe ich nicht einmal eine Menüoption zum Hinzufügen eines Blockkommentars. Wird es in Xcode einfach nicht unterstützt? Das scheint sicherlich eine lahme Entscheidung zu sein, wenn ja.

limp_chimp
quelle
Sind Sie einer Lösung näher gekommen? Außerdem wurde vor über einem Jahr eine identische Frage gestellt (und leider auch nicht beantwortet).
Blaz
Das Einrichten einer Schlüsselbindung / Verknüpfung würde auch anderen Sprachen zugute kommen, da Blockkommentare beispielsweise als visuelle Markierung für alten, aber noch nicht gelöschten Code dienen könnten, während reguläre //Kommentare die "echten" Kommentare bleiben würden. Ansonsten kann man (auf einen Blick) nicht sagen, was was ist.
Blaz
Hallo! Haben Sie die Verknüpfung gefunden? danke
Frade
Immer noch auf der Suche nach so etwas. Eclipse ist klug genug, um es später aufzubauen /* + Return, aber Xcode bringt Sie nur auf die 0-Spalten-Position in der nächsten Zeile.
Craig Otis
Ich kann nicht glauben, dass selbst in Xcode 9, das alle ("", (), {}, []) umschließt, keine Möglichkeit besteht, dasselbe für Blockkommentare zu tun ... Jahr für Jahr bei jeder Veröffentlichung. Wenn 'Code-Schnipsel' ein Token für 'Auswahl' verwenden könnten, wäre das auch großartig ...
bauerMusic

Antworten:

230

Versuchen Sie command+ /. Für mich geht das.

Sie markieren einfach den Codeblock, den Sie auskommentieren möchten, und drücken diese beiden Tasten.

Stefan Vasiljevic
quelle
39
Ich glaube nicht, dass Sie meine Frage gelesen haben, oder Sie hätten gesehen, dass ich ausdrücklich gesagt habe, dass ich den //Kommentar nicht verwenden kann , was der Befehl / die Erzeugung ist.
limp_chimp
1
Was ist die Verknüpfung zum Kommentieren des Blocks?
Nizam
13
@Nizam Drücken Sie einfach erneut Command+ Shift+ 7, dh Command+ /.
Münchdo
4
Unabhängig von der Tatsache, dass diese Antwort nicht auf die spezifische Frage eingeht, steht sie ganz oben in einer Google-Suche nach "Xcode-Kommentarverknüpfung". Es muss also eine gewisse Aktualität geben - ich gebe zu, dass dies nach dem Lesen dieser Frage richtig war antworte also vielleicht ist deine frage etwas verworren. Ich würde Befehl + / in der Tat Kommentare als Block gemäß Ihrem Fragentitel betrachten. In jedem Fall ist dies eine äußerst hilfreiche Lösung - danke.
Nocarrier
10
Dies scheint in Xcode 8.0 nicht mehr zu funktionieren. Wo, oh, wohin ist es Cmd-/gegangen?
Bshirley
41

AKTUALISIEREN:

Da ich faul war und meine Lösung nicht vollständig implementiert habe, habe ich mich umgesehen und BlockComment nach Xcode gefunden , einem kürzlich veröffentlichten Plugin ( Juni 2017 ). Kümmere dich nicht um meine Lösung, dieses Plugin funktioniert wunderbar und ich kann es nur empfehlen.

URSPRÜNGLICHE ANTWORT:

Keiner der oben genannten Punkte hat bei Xcode 7 und 8 für mich funktioniert , also habe ich:

  1. Erstellt Automator - Dienst Apple
  2. Stellen Sie sicher, dass "Ausgabe ersetzt ausgewählten Text" aktiviert ist
  3. Geben Sie den folgenden Code ein:

    on run {input, parameters}
    return "/*\n" & (input as string) & "*/"
    end run

Geben Sie hier die Bildbeschreibung ein

Jetzt können Sie über das Menü Xcode - Dienste auf diesen Dienst zugreifen oder indem Sie mit der rechten Maustaste auf den ausgewählten Codeblock klicken, den Sie kommentieren möchten, oder indem Sie ihm in den Systemeinstellungen eine Verknüpfung geben.

Nikola Milicevic
quelle
1
Du bist ein Genie. Ich habe versucht, alle anderen Antworten in diesem Beitrag zu implementieren, einschließlich der Lösung "Automator -> Shell-Skript ausführen", und keine davon hat funktioniert, außer Ihrer. AppleScript gewinnt den Tag. Ich stimme Ihrer Antwort zu ...
Charles Robertson
Cool. Ich
bin
Ich weiß, dass dies ein bisschen frech ist, aber würden Sie wissen, wie ich die Einrückung beibehalten kann, wenn ich diese Blockkommentare anwende? In XCode zum Beispiel ist der größte Teil meines Codes bis zu einem gewissen Grad eingerückt, und es sieht ordentlicher aus, wenn der Kommentar die Einrückung beibehält. Dies würde das Verhalten des nativen Blockkommentarstils nachahmen. Danke ...
Charles Robertson
Hmm könnten Sie einen Screenshot liefern? Weil es die Einkerbung bewahren sollte. Und für beste Ergebnisse sollten Sie ganze Linien auswählen, wie im Beispiel gezeigt.
Nikola Milicevic
Wie blockiert man das Kommentieren?
Abhishek Bedi
36

Mit xCode 8 können Sie nun Folgendes tun:

+ +/

um automatisch einen Dokumentkommentar zu generieren.

Quelle: https://twitter.com/felix_schwarz/status/774166330161233920

Beninho85
quelle
1
Dies funktioniert bei mir nicht, wenn ich es mit Swift mache und die Option, den Befehl / drücke. Was habe ich falsch gemacht? Ich bekomme nur \\\ Descriptionkeinen Doc-Block mit @params usw.
Jonnny
Es ist, weil Ihre Funktion keine Parameter bereitstellt
Beninho85
23

Es gibt jetzt ein Xcode-Plugin, das dies ermöglicht: CComment .

Der einfachste Weg, dies zu installieren, ist die Verwendung des erstaunlichen Alcatraz-Plugin-Managers für Xcode .

BEARBEITEN Apple hat das alte Plugin-Modell leider (und fälschlicherweise IMHO) mit Xcode 8 eingestellt. Das neue Plugin-System ist recht begrenzt, sollte aber die Entwicklung eines solchen Plugins wieder ermöglichen. Wenn Sie daran interessiert sind, schauen Sie sich die WWDC 2016-Sitzung 414 an . Bitte archivieren Sie auch Radars for API für Plugins, die Sie schreiben oder sehen möchten.

fzwo
quelle
Danke, @BugsBunny - meine Antwort ist viel neuer als die Frage, also denke ich, dass es bis jetzt niemand gesehen hat :)
fzwo
2
Dies funktioniert ab Xcode 6.3 (Version 6.3.1 (6D1002)) nicht mehr. Kein Plugin funktioniert.
Abhishek Bedi
@AbhishekBedi Unter stackoverflow.com/questions/30361228/… finden Sie eine allgemeine Fehlerbehebung für Plugins für neue Xcode-Versionen.
Zwei
12

UPDATE: Xcode 8 Update

Jetzt können Sie mit xcode 8 Folgendes tun:

+ +/

Hinweis: Die folgende Methode funktioniert nicht in der xcode-Version => 8

Sehr einfache Schritte zum Hinzufügen der Blockkommentarfunktion zu jedem Editor von Mac OS X.

  1. Öffnen Sie den Automator
  2. Wählen Sie Dienste
  3. Suchen Sie Run Shell Script und doppelklicken Sie darauf

Fügen Sie das folgende Applescript im Textbereich hinzu

awk 'BEGIN{print "/*"}{print $0}END{print "*/"}'

Apple-Skript für Blockkommentar

  1. Skript speichern unter Block Comment

Fügen Sie eine Tastenkombination hinzu

Öffnen Sie Systemeinstellung> Tastatur> Verknüpfungen , fügen Sie eine neue Verknüpfung hinzu, indem Sie auf +denselben Namen klicken und ihn rechts klicken, dh Block Commentwie Sie ihn im 4. Schritt für Applescript angegeben haben. Fügen Sie Ihre Tastaturkürzel hinzu und klicken Sie auf die Schaltfläche Hinzufügen .

Neue Tastenkombination

Jetzt sollten Sie in der Lage sein, Blockkommentare in Xcode oder einem anderen Editor zu verwenden, Text auszuwählen, mit Ihrer Tastenkombination Kommentare in Codezeilen zu blockieren oder mit der rechten Maustaste zu klicken. Das Kontextmenü und der Name, den Sie diesem Skript gegeben haben, sollten in der Nähe angezeigt werden der Boden.

Baig
quelle
In der Antwort muss nicht "Upvote, wenn es funktioniert" geschrieben werden. Die Leute werden abstimmen, wenn sie es nützlich finden.
Aufgabe
@Baig Dies ist eine wirklich gut dokumentierte Antwort, die ich genau umsetzen konnte. Aber wenn ich einen Text auswähle und meine Tastenkombination Strg + Option + Befehl + b ausführe, passiert nichts. Auch wenn ich das Kontextmenü benutze, passiert nichts? Was für eine Schande, denn ich war mir sicher, dass dies funktionieren würde. Zumindest habe ich gelernt, wie man Automator benutzt. Was für eine coole App!
Charles Robertson
@Baig Muss ich meinen Computer neu starten?
Charles Robertson
@Baig Das Seltsame ist, dass es gut funktioniert, wenn ich es im Automator-Ausgabefenster 'Shell-Skript ausführen' teste. Möglicherweise wird meine Tastenkombination bereits verwendet, und dies blockiert sie möglicherweise? Aber die Kontextmenü-Funktionalität funktioniert auch nicht? Das nervt mich ...
Charles Robertson
Dies funktionierte perfekt in der vorherigen osx-Version. Ich überprüfe es, es funktioniert jetzt nicht.
Baig
7

Ich habe den Code von Nikola Milicevic ein wenig geändert , damit auch der Kommentarblock entfernt wird, wenn der Code bereits kommentiert ist:

on run {input, parameters}
    repeat with anInput in input
        if "/*" is in anInput then
            set input to replaceText("/*", "", input as string)
            set input to replaceText("*/", "", input as string)

            return input
            exit repeat
        end if
    end repeat
    return "/*" & (input as string) & "*/"
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

Hoffe das wird jemandem helfen.Geben Sie hier die Bildbeschreibung ein

A. Buksha
quelle
7

In XCode 10 können Sie Option + Befehl + Backslash verwenden, um einen schönen Kommentar für Ihre Funktion oder Klasse wie folgt zu schreiben:

Geben Sie hier die Bildbeschreibung ein

Paras Gupta
quelle
6

Sie können dies sehr einfach selbst zuweisen. Hier finden Sie eine schrittweise Erklärung.

1.) Geben Sie in Ihren xCode .m-Dateityp Folgendes ein, es spielt keine Rolle, wo Sie eingeben, solange es sich um einen leeren Bereich handelt.

/*
*/

2.) Markieren Sie, dass zwei Codezeilen in den Bereich "Code-Snippet-Bibliothek" gezogen und dort abgelegt werden (im unteren Bereich des Bedienfelds "Dienstprogramme"). Ein hellblaues Pluszeichen wird angezeigt, wenn Sie es richtig machen.

Geben Sie hier die Bildbeschreibung ein

3.) Nachdem Sie die Maustaste losgelassen haben, wird ein neues Fenster geöffnet, in dem Sie aufgefordert werden, einen Namen, eine Verknüpfung usw. hinzuzufügen. wie gezeigt. Wie Sie sehen können, habe ich meine Verknüpfung zu // hinzugefügt. Jedes Mal, wenn ich einen Blockkommentar möchte, gebe ich // ein. Hoffe das hilft

Geben Sie hier die Bildbeschreibung ein

Oh mein
quelle
Sie können dies weiterhin in XCode 10 tun. Der Bereich "Code-Snippet-Bibliothek" wurde gerade verschoben. Suchen Sie nach dem { }Symbol oben rechts im Editorbereich.
Manroe
1

Ich habe es geschafft, dies über eine Automator-Aufgabe zum Laufen zu bringen und habe eine Verknüpfung verwendet, um es an die Tastenkombination Strg + Option + Befehl + b zu binden. Alles, was ich tun muss, ist den Code hervorzuheben, den der Block in xcode kommentieren soll, und die obigen Tasten zu drücken. Der ausgewählte Text wird mit / * ... * / blockkommentiert.

Ich benutze Code, der ein gutes Stück faltet, also war der Grund, warum ich diese Funktionalität wollte, dass ich leicht einen Block kommentierten Codes falten konnte ... Code kommentierte auf die übliche Weise mit // nicht falten.

Ich bin nicht mit der Verwendung von Mac Automator vertraut, aber ich habe einfach den Anweisungen im folgenden wwdc-Video gefolgt

In der WWDC 2012-Videositzung 402 - Effizientes Arbeiten mit Xcode (ab ca. 6 Minuten) wird beschrieben, wie Sie mit dem Mac OSX Automator einen Dienst zum Bearbeiten von ausgewähltem Text hinzufügen. Das im Video gezeigte Beispiel besteht darin, Duplikate in einer Textauswahl mit den Shell-Befehlen sort und uniq zu entfernen. Mit diesem Ansatz machen Sie dasselbe, aber Sie geben den folgenden Befehl ein, anstatt was er im Video tut

awk 'BEGIN {print "/ "} {print $ 0} END {print " /"}'

(Beachten Sie, dass in der vorherigen Zeile 2 Sternchen enthalten sein sollen, die aus irgendeinem Grund nicht angezeigt werden. Sie werden im folgenden Screenshot angezeigt. Kopieren Sie diese als korrekten Befehl, um sie einzugeben.)

Am Ende sollten Sie ein Shell-Skript wie dieses ausführen

Bildschirmfoto

Dadurch werden für jeden ausgewählten Text die Kommentarbegrenzer davor und danach gesetzt.

Wenn Sie es speichern, sollten Sie Optionen erhalten, um es zu benennen (ich nannte es Blockkommentar) und auch eine Tastenkombination zuzuweisen

Dann sollten Sie in der Lage sein, xcode zu öffnen, Text auszuwählen, mit der rechten Maustaste zu klicken, das Kontextmenü und den Namen, den Sie diesem Skript gegeben haben, sollten unten angezeigt werden

Klicken Sie einfach auf den Namen und das Skript wird ausgeführt und blockiert den Kommentar des ausgewählten Codes oder verwenden Sie die von Ihnen zugewiesene Tastenkombination.

hoffe das hilft

lozflan
quelle
Es ist chaotisch, aber ich habe etwas Ähnliches mit Keyboard Maestro und awk gemacht, um Header für Methoden zu erstellen. Swift ist ein bisschen mehr Arbeit, also muss ich es noch angehen.
Lloyd Sargent
0

Vor dem Hilfemenü von xcode befindet sich ein Symbol mit dem Benutzerskript Bearbeiten. Bei Un / Kommentarauswahl im Kommentarbereich ändere mein $ cCmt = "//"; zu meinem $ cCmt = "#"; oder mit was auch immer Ihre IDE funktioniert. Durch Auswahl von Zeilen und Befehl + / (dies ist meine Xcode-Standardeinstellung) können Sie die ausgewählten Zeilen kommentieren und auskommentieren.

Fati
quelle
0

@ Nikola Milicevic

Hier ist der Screenshot des Einrückungsproblems. Dies ist sehr geringfügig, aber es ist seltsam, dass es in Ihrem Beispiel visuell so gut zu funktionieren scheint.

Ich füge auch einen Screenshot meiner Automator-Einrichtung hinzu ...

Vielen Dank

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Aktualisieren:

Wenn ich das Skript leicht ändere auf:

Geben Sie hier die Bildbeschreibung ein

Und dann wählen Sie in XCode vollständige Zeilen aus, ich erhalte das gewünschte Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Charles Robertson
quelle
1
Oh ja. Ich habe nach dem Schließen des Kommentars keine neue Zeile hinzugefügt, es hat mir ohne mehr gefallen. Gut, dass du es herausgefunden hast.
Nikola Milicevic
0

Wenn Sie nach einer Möglichkeit suchen, automatisch generierte Kommentare aus Add DocumentationAktionen zu konvertieren (verfügbar unter cmd- shift- /), ist dies möglicherweise auch hilfreich:

function run(input, parameters) {
  var lines = input[0].split('\n');
  var line1 = lines[0];
  var prefixRe = /^( *)\/\/\/?(.*)/gm;
  var prefix = prefixRe.test(line1) ? line1.replace(prefixRe, "$1") : ""

  var result = prefix + "/*\n";  
  lines.forEach(function(line) {
    result += prefix + line.replace(prefixRe, "$2") + '\n';
  });
  result += '\n' + prefix + ' */';
  return result;
}

Ruhe das gleiche wie in @ Charles Robertson Antwort:

Automator

Dienstleistungen

Daniel Bauke
quelle
0

In xcode 11.1 swift 5.0

Wählen Sie den Code aus, zu dem Sie einen Blockkommentar hinzufügen möchten, und drücken Sie dann + +/

Geben Sie hier die Bildbeschreibung ein

Ashim Dahal
quelle
-1

Cmd+ Shift+ 7kommentiert die ausgewählten Zeilen.

Julio
quelle
Könnten Sie bitte angeben, unter welchen Bedingungen es funktioniert? Für mich nicht ...!
SeF
Vermutlich gemeint Cmd+ /. Es scheint , dass zumindest das deutsche Tastaturlayout das hat /auf dem 7Schlüssel, aber auf dem US - Layout /ist auf seinen eigenen Schlüssel ohne Verschiebung.
Jake Cobb
Ich habe /auch die 7Taste für das norwegische Tastaturlayout, aber es funktioniert immer noch nicht. Diese Verknüpfung öffnet einfach das Hilfemenü
Sti
-1

In Macbooks können Sie mit shift+ cmd+ 7einen zuvor markierten Block kommentieren

Arthur C. Clarke
quelle
-11

Es scheint, als würden bereits viele Leute diese Frage beantworten.

In Swift 3.0 besteht ein einzeiliger Kommentar darin, doppelte Schrägstriche nach vorne zu setzen: "//"; mehrzeilig wird "/ * .... * /" gesetzt.

Hoffe das hilft.

Dil Azat
quelle