Чи є ярлик, щоб зробити блоковий коментар у Xcode?


153

Я пишу код, сумісний з ANSI, і тому я не можу використовувати коментар у рядку ( //). Я використовую Xcode. У Sublime Text і Eclipse, і я думаю, що в більшості інших IDE є окремі комбінації клавіш для коментарів до рядків та блокування коментарів ( /**/). Однак я не бачу цього в Xcode - насправді я навіть не бачу опції меню, щоб додати коментар до блоку. Це просто не підтримується в Xcode? Це, звичайно, здавалося б кульгавим рішенням, якщо так.

Відповіді:


232

Спробуйте command+ /. Це працює для мене.

Отже, ви просто виділите блок коду, який ви хочете прокоментувати, і натисніть ці дві клавіші.


13
@Nizam Просто натисніть Command+ Shift+ 7, тобто Command+ /, ще раз.
muenchdo

41

ОНОВЛЕННЯ:

Оскільки я лінивий і не повністю застосував своє рішення, я обшукав і знайшов BlockComment для Xcode , нещодавно випущеного плагіна ( червень 2017 року ). Не турбуйтеся з моїм рішенням, цей плагін працює чудово, і я його настійно рекомендую.

ОРИГІНАЛЬНИЙ ВІДПОВІДЬ:

Нічого з перерахованого вище не працювало для мене на Xcode 7 і 8 , тому я:

  1. Створений сервіс Automator за допомогою AppleScript
  2. Переконайтеся, що прапорець "Виведення замінює вибраний текст"
  3. Введіть наступний код:

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

введіть тут опис зображення

Тепер ви можете отримати доступ до цієї послуги через меню Xcode - Services, або клацнувши правою кнопкою миші на вибраний блок коду, який ви хочете прокоментувати, або надавши ярлик у розділі Налаштування системи.


36

Тепер за допомогою xCode 8 ви можете:

+ +/

для автоматичного створення коментаря до документа.

Джерело: https://twitter.com/felix_schwarz/status/774166330161233920


1
Це не працює для мене, коли це робиться за допомогою Swift та натискання, опція, команда, /. Що я зробив не так? Я просто отримаю, \\\ Descriptionа не doc-блок із @params тощо
Jonnny

Це тому, що у вашій функції не передбачено жодних параметрів
Beninho85

23

Зараз існує плагін Xcode, який дозволяє це: CComment .

Найпростіший спосіб встановити це - використовувати дивовижний менеджер плагінів Alcatraz для Xcode .

EDIT Apple, на жаль (і неправильно, IMHO) відмовився від старої моделі плагінів з Xcode 8. Нова система плагінів досить обмежена, але повинна дозволити знову розробити такий плагін. Для всіх, хто зацікавлений у цьому, дивіться сесію 414 WWDC . Крім того, подайте радари для API для плагінів, які ви хочете написати або переглянути.


2
Це не працює від Xcode 6.3 (версія 6.3.1 (6D1002)) і далі. Жоден плагін не працює.
Абхішек Беді

@AbhishekBedi Див stackoverflow.com/questions/30361228 / ... для спільного пошуку несправностей плагінів для нових версій Xcode.
fzwo

12

ОНОВЛЕННЯ: Оновлення Xcode 8

Тепер з xcode 8 ви можете:

+ +/

Примітка: Нижче метод не буде працювати у версії xcode => 8

Дуже прості дії, щоб додати функцію Block Comment до будь-якого редактора mac OS X

  1. Відкрийте Автоматизатор
  2. Виберіть Послуги
  3. Шукайте запуск сценарію Shell та двічі клацніть по ньому

Додайте нижче текстовий яблучний текст у текстовій області

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

яблучний сценарій для блокування коментарів

  1. Зберегти сценарій як Block Comment

Додати комбінацію клавіш

Відкрийте Налаштування системи> Клавіатура> Ярлики , додайте новий ярлик, натиснувши +та праворуч те саме ім'я, тобто, Block Commentяк ви вказали для яблучного сценарію на 4-му кроці. Додайте комбінацію клавіш і натисніть кнопку Додати .

Нова комбінація клавіш

Тепер ви повинні мати змогу використовувати блоковий коментар у Xcode чи будь-якому іншому редакторі, виберіть текст, скористайтесь клавішею швидкої клавіші, щоб заблокувати коментар будь-якого рядка коду чи клацання правою кнопкою миші, контекстне меню та ім'я, яке ви надали цьому сценарію, повинно відображатися поруч знизу.


@Baig Дивна річ у тому, що коли я тестую його у вихідному вікні Automator 'Run Shell Script', воно працює добре. Можливо, мій комбінація клавіш швидкого доступу вже використовується, і це може блокувати його? Але функціональність контекстного меню теж не працює? Це мене клопоче ...
Чарльз Робертсон

7

Я трохи змінив код Миколи Мілічевича, щоб він також видалив блок коментарів, якщо код уже коментується:

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

Сподіваюся, що це комусь допоможе.введіть тут опис зображення


7

У XCode 10 ви можете скористатися опцією + команда + зворотний косий рядок, щоб написати гарний коментар до функції або класу, як показано нижче:

введіть тут опис зображення


6

Ви можете призначити це дуже легко, тут йде покрокове пояснення.

1.) У файлі xCode .m введіть наступне, неважливо, куди ви вводите, поки це порожня область.

/*
*/

2.) Виділіть, що два рядки коду потім перетягніть на область «фрагмент бібліотеки фрагментів коду» (це в нижній частині панелі «Утиліти»). Світло-синій знак плюс з’явиться, якщо ви зробите це правильно.

введіть тут опис зображення

3.) Після відпуску кнопки миші з’явиться нове вікно, яке попросить вас додати ім’я, ярлик тощо; як показано. Як бачите, я додав свій ярлик до //. Тому щоразу, коли мені потрібно блокувати коментар, я наберу //. Сподіваюся, це допомагає

введіть тут опис зображення


1

Мені вдалося зробити це добре за допомогою завдання автоматизатора і використали ярлик, щоб прив'язати його до комбінації клавіш ctrl + параметр + команда + b. все, що мені потрібно зробити, - це виділити код, який я хочу, щоб блок коментувався в xcode і натискав вище клавіші, а вибраний текст блокувався, коментуючи за допомогою / * ... * /.

я використовую досить складно з кодом, тому причиною, за якою я хотів цю функціональність, було так, що я міг легко скласти блок коментованого коду ... код коментується звичайним способом, використовуючи // звичайне складання.

Я не знайомий з використанням Mac automator, але я просто дотримувався інструкції в наступному відео WWDC

у відеосеансі WWDC 2012 Сесія 402 - Ефективна робота з Xcode (приблизно через 6 хвилин) є опис того, як за допомогою автоматичного автоматичного оператора Mac OSX додати службу для маніпулювання вибраним текстом. Приклад, показаний на відео, - це видалення дублікатів у виділеному тексті за допомогою команд оболонки сортування та uniq. Використовуючи цей підхід, ви робите те саме, але ви вводите наступну команду замість того, що він робить у відео

awk 'ПОЧАТИ {print "/ "} {print $ 0} END {print " /"} "

(зауважте, у попередньому рядку мають бути дві зірочки, які з якихось причин не відображаються .... вони відображаються на скріншоті нижче, так що скопіюйте їх як правильну команду для введення)

Ви повинні закінчити такий сценарій оболонки

скріншот

це для будь-якого вибраного тексту поставить обмежувачі коментарів до і після.

коли ви зберігаєте його, ви повинні отримати варіанти його імені (я назвав це blockcomment), а також призначити ярлик клавіатури

тоді ви маєте змогу відкрити xcode, вибрати текст, клацнути правою кнопкою миші, контекстне меню та ім'я, яке ви надали цьому сценарію, має відображатися внизу

просто натисніть ім'я, і ​​сценарій запуститься та заблокує коментар до вибраного коду або скористайтеся призначеною вами комбінацією клавіш.

сподіваюся, що це допомагає


0

Перед меню довідки на xcode є символ, який має редагувати сценарій користувача. У розділі Un / Comment Selection у розділі коментарів змінити мій $ cCmt = "//"; до мого $ cCmt = "#"; або все, з чим працює ваш IDE. Потім, вибравши рядки та команду + / (це мій xcode за замовчуванням), ви можете коментувати та коментувати вибрані рядки.


0

@Nikola Milicevic

Ось знімок екрана з відступом. Це дуже незначно, але дивно, що, здається, працює так добре, на ваш приклад наочно.

Я також додаю скріншот моєї настройки Автоматизатора ...

Дякую

введіть тут опис зображення

введіть тут опис зображення

Оновлення:

Якщо я трохи зміню сценарій на:

введіть тут опис зображення

А потім виберіть повні рядки в XCode, я отримаю бажаний результат:

введіть тут опис зображення

введіть тут опис зображення


0

Якщо ви шукаєте спосіб перетворити автогенерований коментар з Add Documentationдії (доступний під cmd- shift- /), вам може бути корисним також:

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

Залиште те саме, що у відповіді @Charles Робертсон:

Автоматизатор

Послуги


0

У xcode 11.1 швидко 5.0

виберіть код, до якого потрібно додати коментар блоку, а потім натисніть + +/

введіть тут опис зображення


-1

Cmd+ Shift+ 7прокоментує вибрані рядки.


Ймовірно, означав Cmd+ /. Здається , що принаймні німецька розкладка клавіатури має /на 7ключі, але на макеті США /знаходиться на своєму власному ключі без зсуву.
Джейк Кобб

У мене /над 7клавішею на норвезькій розкладці клавіатури, а також, але це ще не робота .. цей ярлик просто відкриває довідки-меню
Sti


-11

Здається, вже багато людей відповідають на це питання.

в Swift 3.0 однорядковий коментар - це висунути подвійні нахили вперед: "//"; багаторядковий ставиться "/ * .... * /".

Сподіваюся, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.