【问题标题】:Is there a shortcut to make a block comment in Xcode?是否有在 Xcode 中进行块注释的快捷方式?
【发布时间】:2012-10-24 02:51:17
【问题描述】:

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

【问题讨论】:

    标签: xcode comments


    【解决方案1】:

    尝试命令 + /

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

    【讨论】:

    • @Nizam 再次按下Command + Shift + 7,即Command + /
    • 这对我有用。谢谢
    【解决方案2】:

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

    最简单的安装方法是使用惊人的Alcatraz plugin manager for Xcode

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

    【讨论】:

    • 这在 Xcode 6.3(版本 6.3.1 (6D1002))以后不起作用。没有插件工作。
    • @AbhishekBedi 请参阅stackoverflow.com/questions/30361228/… 了解新 Xcode 版本的一般插件故障排除。
    【解决方案3】:

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

    1.) 在您的 xCode .m 文件中输入以下内容,只要是空白区域,您输入的位置无关紧要。

    /*
    */
    

    2.) 突出显示两行代码,然后拖放到“code sn-p library panel”区域(它位于 Utilities 面板的底部)。如果操作正确,将显示一个浅蓝色加号。

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

    【讨论】:

      【解决方案4】:

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

      我经常使用代码折叠,所以我想要这个功能的原因是我可以很容易地折叠一段带注释的代码......代码用通常的方式注释了 // wont fold。

      我不熟悉使用 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,选择一些文本,右键单击,上下文菜单,你给这个脚本的名称应该显示在底部附近

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

      希望对你有帮助

      【讨论】:

        【解决方案5】:

        Cmd + Shift + 7 将注释选中的行。

        【讨论】:

        • 可能意味着Cmd + /。似乎至少German keyboard layout7 键上有/,但在美国布局上/ 是在它自己的键上没有移位。
        • 我在挪威语键盘布局上的7 键上也有/,但它仍然不起作用.. 这个快捷方式只是打开帮助菜单
        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          更新:Xcode 8 更新

          现在使用 xcode 8 你可以做到:

          + + /

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

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

          1. 打开 Automator
          2. 选择服务
          3. 搜索Run Shell Script并双击

          在 textarea 中添加下面的小程序

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

          1. 将脚本另存为Block Comment

          添加键盘快捷键

          打开System Preference > Keyboard > Shortcuts,点击+添加新的快捷方式,并右击相同的名称,即Block Comment你在第四步给了applescript。添加您的键盘快捷键并点击添加按钮。

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

          【讨论】:

          • @Baig 奇怪的是,当我在 Automator 'Run Shell Script' 输出窗口中测试它时,它工作正常。也许,我的快捷键组合已经被使用了,这可能会阻止它?但是,上下文菜单功能也不起作用?这让我很烦......
          • 如果您有兴趣在块注释中仅包装行的选定部分,您可以采用上述解决方案,使用以下文本作为 Shell 脚本:sed -e '1 s|^|/* |' -e '$ s|$| */|'。而且,以防万一,它至少在 Xcode 12.4 中有效。
          【解决方案8】:

          在 Macbooks 中,您可以使用 shift + cmd + 7 来注释之前突出显示的块

          【讨论】:

            【解决方案9】:

            更新 Xcode 12 / macOS Big Sur:

            目前,BlockComment for Xcode 的 Mac App Store 版本未显示在 Xcode > Preferences > Key Bindings 下。这个问题一直是resolved,可以用GitHub version代替。

            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 - 服务菜单访问该服务,或者右键单击要评论的选定代码块,或者在系统偏好设置下为其提供快捷方式。

            【讨论】:

              【解决方案10】:

              现在使用 xCode 8,您可以:

              + + /

              自动生成文档注释。

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

              【讨论】:

              • 使用 Swift 并按、选项、命令、/ 时,这对我不起作用。我做错了什么?我只得到\\\ Description 而不是带有@params 等的文档块
              • 因为你的函数没有提供任何参数
              【解决方案11】:

              @尼古拉·米利切维奇

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

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

              谢谢

              更新:

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

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

              【讨论】:

                【解决方案12】:

                如果您正在寻找一种将自动生成的评论从 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 中的答案相同:

                【讨论】:

                  【解决方案13】:

                  我稍微修改了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
                  

                  希望这会对某人有所帮助。

                  【讨论】:

                  • 非常有用。谢谢
                  【解决方案14】:

                  似乎已经有很多人回答了这个问题。

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

                  希望这会有所帮助。

                  【讨论】:

                  • 老兄,你最好删除你的答案。它没有任何价值,只会吸引更多的反对者。 ;)
                  【解决方案15】:

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

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

                  【讨论】:

                    【解决方案16】:

                    在 xcode 11.1 swift 5.0 中

                    选择您要添加块注释的代码,然后按 + + /

                    【讨论】:

                      【解决方案17】:

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

                      充分发挥 Apple 的“不同凡响”...

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

                      【讨论】:

                        【解决方案18】:

                        看起来在 macOS Monterey 上 Xcode 块注释切换键组合已更改为 命令⌘ + '

                        编辑:Xcode 13.2 已返回到之前的组合键。 命令⌘ + + 7

                        【讨论】:

                        • 带德语键盘:command + ß
                        • @Michael 你为我节省了几个小时。谢谢。为我工作。
                        • 使用西班牙语键盘:command + ! (命令 + shift + 1)。
                        猜你喜欢
                        • 1970-01-01
                        • 2022-09-26
                        • 1970-01-01
                        • 2022-09-27
                        • 2011-01-01
                        • 2018-01-07
                        • 2011-01-14
                        • 2022-07-15
                        • 2021-09-10
                        相关资源
                        最近更新 更多