Czy istnieje skrót do tworzenia komentarza blokowego w Xcode?


153

Piszę kod C zgodny z ANSI i dlatego nie mogę użyć //komentarza line ( ). Używam Xcode. W Sublime Text i Eclipse, i myślę, że w większości innych IDE, istnieją oddzielne skróty klawiaturowe dla komentarzy do linii i komentarzy blokowych ( /**/). Jednak nie widzę tego w Xcode - w rzeczywistości nie widzę nawet opcji menu, aby dodać komentarz blokowy. Czy po prostu nie jest obsługiwany w Xcode? Jeśli tak, to z pewnością wydawałoby się to kiepską decyzją.

Odpowiedzi:


232

Wypróbuj command+ /. Mi to pasuje.

Po prostu zaznacz blok kodu, który chcesz skomentować, i naciśnij te dwa klawisze.


13
@Nizam Po prostu wciśnij Command+ Shift+ 7, czyli Command+ /, ponownie.
muenchdo

41

AKTUALIZACJA:

Ponieważ byłem leniwy i nie wdrożyłem w pełni mojego rozwiązania, przeszukałem i znalazłem BlockComment for Xcode , niedawno wydaną wtyczkę ( czerwiec 2017 ). Nie przejmuj się moim rozwiązaniem, ta wtyczka działa pięknie i bardzo ją polecam.

ORYGINALNA ODPOWIEDŹ:

Żadne z powyższych nie działało dla mnie na Xcode 7 i 8 , więc:

  1. Utworzono usługę Automator przy użyciu AppleScript
  2. Upewnij się, że opcja „Wyjście zastępuje zaznaczony tekst” jest zaznaczona
  3. Wpisz następujący kod:

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

wprowadź opis obrazu tutaj

Teraz możesz uzyskać dostęp do tej usługi przez Xcode - menu Usługi lub klikając prawym przyciskiem myszy wybrany blok kodu, który chcesz skomentować, lub nadając mu skrót w Preferencjach systemowych.



23

Jest teraz wtyczka Xcode, która umożliwia to: CComment .

Najłatwiejszym sposobem zainstalowania tego jest użycie niesamowitego menedżera wtyczek Alcatraz dla Xcode .

EDYCJA Apple niestety (i niesłusznie IMHO) wycofało stary model wtyczki z Xcode 8. Nowy system wtyczek jest dość ograniczony, ale powinien pozwolić na ponowne opracowanie takiej wtyczki. Każdy zainteresowany obejrzeniem sesji WWDC 2016 414 . Prosimy również o przesyłanie radarów do API dla wtyczek, które chcesz napisać lub zobaczyć.


2
To nie działa od Xcode 6.3 (wersja 6.3.1 (6D1002)) i nowszych. Żadna wtyczka nie działa.
Abhishek Bedi

@AbhishekBedi Zobacz stackoverflow.com/questions/30361228/…, aby uzyskać ogólne informacje na temat rozwiązywania problemów z wtyczkami dla nowych wersji Xcode.
fzwo

12

AKTUALIZACJA: Aktualizacja Xcode 8

Teraz dzięki xcode 8 możesz:

+ +/

Uwaga: poniższa metoda nie będzie działać w wersji xcode => 8

Bardzo proste kroki, aby dodać funkcję komentarza blokowego do dowolnego edytora systemu Mac OS X.

  1. Otwórz Automatora
  2. Wybierz usługi
  3. Wyszukaj Run Shell Script i kliknij go dwukrotnie

Dodaj poniższy skrypt jabłkowy w obszarze tekstowym

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

skrypt Apple do komentowania blokowego

  1. Zapisz skrypt jako Block Comment

Dodaj skrót klawiaturowy

Otwórz Preferencje systemowe> Klawiatura> Skróty , dodaj nowy skrót, klikając +i w prawo tę samą nazwę, tj. Block CommentTaką, jaką nadałeś skryptowi jabłkowemu w 4 kroku. Dodaj skrót klawiaturowy i kliknij przycisk Dodaj .

Nowy skrót klawiaturowy

Teraz powinieneś być w stanie użyć komentarza blokowego w Xcode lub dowolnym innym edytorze, zaznaczyć tekst, użyć klawisza skrótu, aby zablokować komentarz w dowolnym wierszu kodu lub kliknąć prawym przyciskiem myszy, menu kontekstowe i nazwa, którą nadałeś temu skryptowi, powinny być wyświetlane obok dół.


@Baig Dziwne jest to, że kiedy testuję go w oknie wyjściowym Automatora „Uruchom skrypt powłoki”, działa dobrze. Może moja kombinacja klawiszy skrótu jest już używana, a to może ją blokować? Ale funkcjonalność menu kontekstowego też nie działa? To mnie wkurza ...
Charles Robertson

7

Zmodyfikowałem trochę kod Nikoli Milicevic, aby usunąć blok komentarzy, jeśli kod jest już skomentowany:

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

Mam nadzieję, że to komuś pomoże.wprowadź opis obrazu tutaj


7

W XCode 10 możesz użyć opcji + polecenie + ukośnik odwrotny, aby napisać piękny komentarz dla swojej funkcji lub klasy, jak poniżej:

wprowadź opis obrazu tutaj


6

Możesz bardzo łatwo przypisać to sobie samemu, oto wyjaśnienie krok po kroku.

1.) W Twoim pliku xCode .m wpisz następujący, nie ma znaczenia, gdzie wpiszesz, o ile jest to pusty obszar.

/*
*/

2.) Podświetl te dwa wiersze kodu, a następnie przeciągnij i upuść w obszarze „Panel biblioteki fragmentów kodu” (znajduje się w dolnej części panelu Narzędzia). Jeśli zrobisz to dobrze, pojawi się jasnoniebieski znak plus.

wprowadź opis obrazu tutaj

3.) Po zwolnieniu przycisku myszy wyskoczy nowe okno z prośbą o dodanie nazwy, skrótu itp .; jak pokazano. Jak widać dodałem swój skrót do //. Więc za każdym razem, gdy chcę komentarz blokowy, wpisuję //. Mam nadzieję że to pomoże

wprowadź opis obrazu tutaj


1

Udało mi się to dobrze działać za pomocą zadania automatu i użyłem skrótu, aby powiązać go z kombinacją klawiszy ctrl + opcja + polecenie + b. wszystko, co muszę zrobić, to zaznaczyć kod, który chcę skomentować blok w xcode i nacisnąć powyższe klawisze, a zaznaczony tekst zostanie zakomentowany za pomocą / * ... * /.

Używam zawijania kodu dość często, więc chciałem mieć tę funkcjonalność, ponieważ mogłem łatwo złożyć blok komentowanego kodu ... kod opatrzony komentarzem w zwykły sposób, używając // nie fold.

Nie jestem zaznajomiony z używaniem automatu Mac, ale po prostu postępowałem zgodnie z instrukcją w poniższym filmie wwdc

w wideo WWDC 2012 Sesja 402 - Efektywna praca z Xcode (od około 6 minut) znajduje się opis korzystania z automatu Mac OSX w celu dodania usługi do manipulowania zaznaczonym tekstem. Przykład pokazany na wideo polega na usunięciu duplikatów w zaznaczeniu tekstu za pomocą poleceń powłoki sort i uniq. Korzystając z tego podejścia, robisz to samo, ale wprowadzasz następujące polecenie zamiast tego, co robi w filmie

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

(zwróć uwagę, że w poprzednim wierszu powinny znajdować się 2 gwiazdki, które z jakiegoś powodu nie są wyświetlane .... pojawiają się na poniższym zrzucie ekranu, więc skopiuj to jako prawidłowe polecenie do wprowadzenia)

powinieneś w końcu uruchomić taki skrypt powłoki

zrzut ekranu

spowoduje to, dla dowolnego zaznaczonego tekstu, umieszczenie ograniczników komentarza przed i po.

kiedy go zapiszesz, powinieneś otrzymać opcje nadania mu nazwy (nazwałem to blokowym komentarzem), a także przypisania skrótu klawiaturowego

wtedy powinieneś być w stanie otworzyć xcode, wybrać tekst, kliknąć prawym przyciskiem myszy, menu kontekstowe, a nazwa, którą nadałeś temu skryptowi, powinna pojawić się na dole

po prostu kliknij nazwę, a skrypt uruchomi się i zablokuje komentarz do wybranego kodu lub użyj przypisanego skrótu klawiaturowego.

mam nadzieję że to pomoże


0

Przed menu pomocy w xcode znajduje się symbol z opcją Edytuj skrypt użytkownika. Po wybraniu opcji Un / Comment w sekcji komentarzy zmień my $ cCmt = "//"; do mojego $ cCmt = "#"; lub cokolwiek, z czym współpracuje twoje IDE. Następnie, wybierając linie i polecenie + / (to jest mój domyślny xcode), możesz skomentować i odkomentować wybrane linie.


0

@Nikola Milicevic

Oto zrzut ekranu przedstawiający problem z wcięciami. Jest to bardzo drobne, ale dziwne, że wydaje się działać tak dobrze w Twoim przykładowym obrazie.

Dodam również zrzut ekranu mojej konfiguracji Automatora ...

Dzięki

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Aktualizacja:

Jeśli nieznacznie zmienię skrypt na:

wprowadź opis obrazu tutaj

A potem zaznaczam pełne linie w XCode, otrzymuję pożądany wynik:

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj


0

Jeśli szukasz sposobu na przekonwertowanie automatycznie wygenerowanego komentarza z Add Documentationakcji (dostępnego pod cmd- shift- /), może się okazać przydatny:

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;
}

Odpocznij tak samo jak w odpowiedzi @Charles Robertson:

Automator

Usługi


0

W xcode 11.1 swift 5.0

wybierz kod, do którego chcesz dodać komentarz blokowy, a następnie naciśnij + +/

wprowadź opis obrazu tutaj


-1

Cmd+ Shift+ 7skomentuje wybrane linie.


Prawdopodobnie oznaczało Cmd+ /. Wygląda na to, że co najmniej niemiecki układ klawiatury ma /na 7klawiszu, ale w układzie amerykańskim /jest na własnym klawiszu bez shift.
Jake Cobb

Mam również /nad 7klawiszem w norweskim układzie klawiatury, ale nadal nie działa .. ten skrót po prostu otwiera menu Pomoc
Sti


-11

Wygląda na to, że wiele osób już odpowiada na to pytanie.

w Swift 3.0, komentarz jednowierszowy oznacza umieszczenie podwójnych ukośników z przodu: "//"; multiline jest umieszczana jako „/ * .... * /”.

Mam nadzieję że to pomoże.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.