175

我正在编写 ANSI 兼容的 C 代码,因此我不能使用 ( //) 行注​​释。我正在使用 Xcode。/**/在 Sublime Text 和 Eclipse 中,以及我认为大多数其他 IDE 中,行注释和块注释 ( )都有单独的键盘快捷键。但是,我在 Xcode 中看不到这一点——事实上,我什至看不到添加块注释的菜单选项。Xcode 根本不支持它吗?如果是这样,那肯定是一个蹩脚的决定。

4

19 回答 19

259

试试command+ /

因此,您只需突出显示要注释掉的代码块并按下这两个键。

于 2013-04-16T14:10:59.783 回答
45

更新 Xcode 12 / macOS 大苏尔:

目前,Xcode 的 Mac App Store 版本的BlockComment没有显示在 Xcode > Preferences > Key Bindings 下。此问题已解决,可以使用GitHub 版本代替。

2017 年 6 月更新:

由于我很懒,并且没有完全实现我的解决方案,我四处搜索并找到了 BlockComment for Xcode,这是一个最近发布的插件(2017 年 6 月)。不要打扰我的解决方案,这个插件工作得很好,我强烈推荐它。

原始答案:

以上都不适用于Xcode 78,所以我:

  1. 使用AppleScript创建Automator服务

  2. 确保选中“输出替换所选文本”

  3. 输入以下代码:

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

在此处输入图像描述

现在,您可以通过 Xcode - Services 菜单访问该服务,或者右键单击要评论的选定代码块,或者在 System Preferences 下为其提供快捷方式。

于 2016-08-15T13:40:40.373 回答
39

现在使用 xCode 8,您可以:

⌥</kbd> + ⌘</kbd> + /

自动生成文档注释。

来源:https ://twitter.com/felix_schwarz/status/774166330161233920

于 2016-09-30T15:30:13.883 回答
22

现在有一个 Xcode 插件允许这样做:CComment

安装它的最简单方法是使用令人惊叹的Alcatraz 插件管理器 for Xcode

编辑Apple 遗憾地(并且错误地,恕我直言)用 Xcode 8 淘汰了旧的插件模型。新的插件系统非常有限,但应该允许再次开发这样的插件。对于任何对此感兴趣的人,请观看WWDC 2016 session 414。此外,请为您想编写或查看的插件提交 API雷达文件。

于 2014-04-17T07:53:39.030 回答
14

更新:Xcode 8 更新

现在使用 xcode 8,您可以执行以下操作:

⌥</kbd> + ⌘</kbd> + /

注意:以下方法不适用于 xcode 版本 => 8

将块注释功能添加到 mac OS X 的任何编辑器的非常简单的步骤

  1. 打开自动机
  2. 选择服务
  3. 搜索Run Shell Script并双击它

在 textarea 中添加以下小程序

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

用于块注释的苹果脚本

  1. 将脚本另存为Block Comment

添加键盘快捷键

打开System Preference > Keyboard > Shortcuts,通过单击+并右键添加新的快捷方式,即Block Comment与您在第 4 步中为 applescript 提供的名称相同。添加您的键盘快捷键,然后单击添加按钮。

新的键盘快捷键

现在您应该能够在 Xcode 或任何其他编辑器中使用块注释,选择一些文本,使用快捷键来阻止注释任何代码行或右键单击,上下文菜单和您给该脚本的名称应该显示在附近底部。

于 2016-07-14T08:07:20.750 回答
13

看起来在 macOS Monterey 上,Xcode 块注释切换键组合已更改为 command ⌘</kbd> + '

编辑:Xcode 13.2 已返回到之前的组合键。 command ⌘</kbd> + ⇧</kbd> + 7

于 2021-10-27T07:04:59.850 回答
10

我稍微修改了Nikola Milicevic的代码,所以如果代码已经被注释,它也会删除注释块:

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

希望这会对某人有所帮助。在此处输入图像描述

于 2017-03-23T07:38:18.780 回答
9

在 XCode 10(及更高版本)中使用Option+ Command+ Slash(即 ⌥ + ⌘ + /)

为您的函数或类写一个漂亮的评论,如下所示:

文档注释的 XCode 截图

于 2019-06-21T10:13:11.940 回答
7

你可以很容易地自己分配这个,这里是一步一步的解释。

1.) 在您的 xCode .m 文件中键入以下内容,只要它是一个空白区域,您在哪里键入都没有关系。

/*
*/

2.)突出显示两行代码,然后拖放到“代码片段库面板”区域(它位于实用程序面板的底部)。如果操作正确,将显示一个浅蓝色加号。

在此处输入图像描述

3.) 松开鼠标按钮后,会弹出一个新窗口,要求您添加名称、快捷方式等;如图所示。如您所见,我将快捷方式添加到 //。所以每次我想要一个块注释时,我都会输入//。希望这可以帮助

在此处输入图像描述

于 2014-12-10T17:28:18.203 回答
1

我设法通过一个自动化任务使它正常工作,并使用快捷方式将其绑定到组合键 ctrl+option+command+b。我所要做的就是突出显示我想要在 xcode 中注释块的代码,然后按上面的键,然后使用 /* ... */ 将选定的文本块注释掉。

我使用代码折叠相当多,所以我想要这个功能的原因是我可以轻松折叠一段注释代码......代码使用//不会折叠以通常的方式注释。

我不熟悉使用 mac automator,但我只是按照以下 wwdc 视频中的 instrux

在 WWDC 2012 视频 Session 402 - Working Efficiently with Xcode(大约 6 分钟后)中描述了如何使用 Mac OSX Automator 添加服务来操作选定的文本。视频中显示的示例是使用 shell 命令 sort 和 uniq 删除所选文本中的重复项。使用这种方法你做同样的事情,但你输入以下命令而不是他在视频中所做的

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

(请注意,上一行中有 2 个星号,由于某种原因没有显示......它们确实显示在下面的屏幕截图中,因此将其复制为正确的输入命令)

你最终应该像这样运行一个shell脚本

截屏

对于任何给定的选定文本,这将在前后放置注释分隔符。

当你保存它时,你应该可以选择命名它(我称之为块注释)并分配一个键盘快捷键

然后你应该能够打开xcode,选择一些文本,右键单击,上下文菜单,你给这个脚本的名字应该显示在底部附近

只需单击名称,脚本将运行并阻止注释所选代码或使用您分配的键盘快捷键。

希望这可以帮助

于 2015-03-18T00:20:50.027 回答
1

如果您的键盘布局要求您同时按下 shift 键(即德语键盘上的 cmd + shift + 7),则快捷方式将不起作用并打开帮助菜单。

苹果公司的“Think Different”在最大程度上......

如果您转到 Xcode > Preferences > Key Bindings,您可以定义自己的快捷方式使其工作:

在 Xcode 中更改注释选择键映射

于 2021-02-06T00:22:19.790 回答
0

Cmd++Shift7注释选定的行。

于 2015-06-08T02:19:31.673 回答
0

xcode 上的帮助菜单前有一个符号,其中包含编辑用户脚本。在评论部分下的 Un/Comment Selection 上更改我的 $cCmt = "//"; 到我的 $cCmt = "#"; 或者任何你的 IDE 可以使用的东西。然后通过选择行和命令 + / (这是我的 xcode 默认值),您可以注释和取消注释选定的行。

于 2015-06-25T19:58:17.950 回答
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 回答中的相同:

自动机

服务

于 2017-03-02T11:59:18.363 回答
0

根据 Baig 的回复,我创建了一个快捷方式来评论和取消评论某行的一部分。这适用于 Xcode 13.2.1 和 MacOS 12.0。

  1. 打开自动机
  2. 选择Quick Action
  3. 搜索Run AppleScript
  4. textWorkflow receives current下拉列表中选择
  5. 查看Output replaces selected text
  6. 添加此脚本
on run {input, parameters}
    set s to (input as string)
    if s contains "/*" then
        return text 3 thru -3 of s
    else
        return "/*" & s & "*/"
    end if
end run
  1. 点击播放并另存为Block Comment
  2. 在设置 -> 键盘 -> 快捷方式上,选择App Shortcuts并点击+
  3. 使用脚本标题作为Menu Title(即“块评论”)
  4. 选择所需的快捷方式(我做了 command+option+shift+/)
  5. 在 Xcode 上选择要评论的文本并按下快捷键
  6. /*要取消注释,请从to中选择文本*/并按快捷键
于 2022-01-22T18:11:49.503 回答
0

@尼古拉·米利切维奇

这是缩进问题的屏幕截图。这是非常小的,但奇怪的是,在您的示例视觉中,它似乎工作得很好。

我还添加了我的 Automator 设置的屏幕截图...

谢谢

在此处输入图像描述

在此处输入图像描述

更新:

如果我将脚本稍微更改为:

在此处输入图像描述

然后在 XCode 中选择整行,我得到了想要的结果:

在此处输入图像描述

在此处输入图像描述

于 2016-12-17T14:28:25.473 回答
-1

在 Macbooks 中,您可以使用shift++cmd7评论以前突出显示的块

于 2016-08-03T16:29:58.293 回答
-2

在 xcode 11.1 快速 5.0

选择要添加块注释的代码,然后按 ⌥</kbd> + ⌘</kbd> + /

在此处输入图像描述

于 2020-03-14T15:56:18.093 回答
-12

好像已经有很多人回答这个问题了。

在 Swift 3.0 中,单行注释是在前面加上双斜杠:“//”;多行放置“/* .... */”。

希望这可以帮助。

于 2017-04-06T09:00:52.933 回答