Есть ли ярлык для комментирования блока в Xcode?


154

Я пишу ANSI-совместимый код C, и, следовательно, я не могу использовать //комментарий line ( ). Я использую Xcode. В Sublime Text и Eclipse, и, как мне кажется, в большинстве других IDE, есть отдельные сочетания клавиш для комментариев к строкам и комментариев к блокам ( /**/). Однако я не вижу этого в XCode - фактически, я даже не вижу опции меню, чтобы добавить комментарий блока. Это просто не поддерживается в Xcode? Это, конечно, кажется неудачным решением, если так.

Ответы:


233

Попробуйте 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 и нажатием, option, command, /. Что я сделал не так? Я просто получаю, \\\ Descriptionа не блок документов с @params и т. Д.
Джонни

Это потому, что ваша функция не предоставляет никаких параметров
Beninho85

23

Теперь есть плагин Xcode, который позволяет это: CComment .

Самый простой способ установить это - использовать замечательный менеджер плагинов Alcatraz для Xcode .

РЕДАКТИРОВАТЬ Apple, к сожалению (и ошибочно, ИМХО), удалила старую модель плагинов с Xcode 8. Новая система плагинов довольно ограничена, но должна снова позволить такую ​​разработку плагинов. Для тех, кто заинтересован в этом, смотрите сессию WWDC 2016 414 . Также, пожалуйста, подайте радары для 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. Открыть Automator
  2. Выберите Услуги
  3. Найдите скрипт Run Shell и дважды щелкните по нему

Добавьте ниже яблочный скрипт в текстовой области

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

Apple скрипт для блочного комментария

  1. Сохранить скрипт как Block Comment

Добавить сочетание клавиш

Откройте « Системные настройки»> «Клавиатура»> «Горячие клавиши» , добавьте новый ярлык, щелкнув +правой кнопкой мыши то же имя, то есть то же, Block Commentчто вы дали для appleScript на 4-м шаге. Добавьте комбинацию клавиш и нажмите кнопку « Добавить» .

Новое сочетание клавиш

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


@Baig Странно то, что когда я тестирую его в окне вывода «Run Shell Script» Automator, он работает нормально. Может быть, моя комбинация клавиш уже используется, и это может ее блокировать? Но функциональность контекстного меню тоже не работает? Это меня беспокоит ...
Чарльз Робертсон

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 вы можете использовать option + command + backslash, чтобы написать красивый комментарий для вашей функции или класса, как показано ниже:

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


6

Вы можете назначить это самостоятельно очень легко, здесь пошаговое объяснение.

1.) В вашем файле xCode .m введите следующее, не имеет значения, где вы печатаете, если это пустая область.

/*
*/

2.) Выделите две строки кода, затем перетащите их в область «Панель библиотеки фрагментов кода» (она находится в нижней части панели «Утилиты»). Если вы все сделаете правильно, появится голубой знак плюс.

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

3.) После того, как вы отпустите кнопку мыши, появится новое окно с предложением добавить имя, ярлык и т. Д .; как показано. Как видите, я добавил свой ярлык в //. Поэтому каждый раз, когда я хочу получить комментарий к блоку, я буду набирать //. Надеюсь это поможет

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


1

Мне удалось получить это работает хорошо с помощью задачи Automator и использовал ярлык, чтобы связать его с сочетанием клавиш Ctrl + Option + Command + B. все, что мне нужно сделать, это выделить код, который я хочу, чтобы блок прокомментировал в xcode, и нажать вышеуказанные клавиши, и выделенный текст закомментирован с помощью блока / * ... * /.

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

Я не знаком с использованием Mac Automator, но я просто следовал инструкциям в следующем видео wwdc

в видео-сессии «WWDC 2012» 402 - «Эффективная работа с XCode» (примерно через 6 минут) есть описание того, как использовать Mac OSX Automator для добавления службы для управления выделенным текстом. Пример, показанный в видео, заключается в удалении дубликатов в выделенном тексте с помощью команд оболочки sort и uniq. Используя этот подход, вы делаете то же самое, но вы вводите следующую команду вместо того, что он делает в видео

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

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

вы должны запустить скрипт оболочки, как это

Скриншот

это, для любого данного выделенного текста, поместит разделители комментариев до и после.

когда вы сохраняете его, вы должны получить опции для его имени (я назвал это blockcomment), а также назначить сочетание клавиш

тогда вы сможете открыть xcode, выделить текст, щелкнуть правой кнопкой мыши, контекстное меню, и имя, которое вы дали этому сценарию, должно отображаться в нижней части

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

надеюсь это поможет


0

В меню xcode есть символ перед меню справки, в котором есть скрипт редактирования пользователя. На Un / Выбор комментариев в разделе комментариев change my $ cCmt = "//"; на мой $ cCmt = "#"; или с чем работает ваша IDE. Затем, выбрав строки и команду + / (это мой код по умолчанию), вы можете комментировать и раскомментировать выбранные строки.


0

@ Николай Миличевич

Вот скриншот проблемы с отступами. Это очень незначительно, но странно, что в вашем примере это выглядит так хорошо.

Я также добавляю скриншот моей настройки Automator ...

Спасибо

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

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

Обновить:

Если я немного изменю сценарий на:

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

И затем выберите полные строки в 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 Robertson:

Automator

Сервисы


0

В xcode 11.1 swift 5.0

выберите код, который вы хотите добавить в комментарий, и нажмите + +/

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


-1

Cmd+ Shift+ 7прокомментирует выбранные строки.


Вероятно, имел в виду Cmd+ /. Кажется , что по крайней мере немецкая раскладка клавиатуры имеет /на 7ключе, но на макете США /находится на своем собственном ключе без сдвига.
Джейк Кобб

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

-1

в Macbooks вы можете использовать shift+ cmd+, 7чтобы прокомментировать ранее выделенный блок


-11

Похоже, что уже многие люди отвечают на этот вопрос.

в Swift 3.0 однострочный комментарий ставит двойные косые черты вперед: "//"; мультилинии ставится "/ * .... * /".

Надеюсь это поможет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.