在 Xcode 有没有一个快捷方式来发表封锁评论?

我正在编写与 ANSI 兼容的 C 代码,因此不能使用代码行(//)注释。我在用 Xcode。在 SublimText 和 Eclipse 中,以及我认为大多数其他 IDE 中,行注释和块注释(/**/)都有单独的键盘快捷键。然而,我在 Xcode 中没有看到这一点——事实上,我甚至没有看到添加块注释的菜单选项。难道 Xcode 就是不支持这种做法吗?如果是这样的话,这显然是一个蹩脚的决定。

210535 次浏览

试试 指挥官 + /

所以,您只需突出显示要注释掉的代码块,然后按下这两个键。

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

最简单的安装方法是使用令人惊讶的 恶魔岛 Xcode 插件管理器

很遗憾(恕我直言,这是错误的) ,苹果公司已经用 Xcode 8淘汰了旧的插件模式。新的插件系统是相当有限的,但应允许再次开发这样的插件。如果有人对此感兴趣,请观看 WWDC 2016年会议414。此外,请 档案雷达的 API 插件,你想写或看到的。

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

1)在你的 xCode 里。M 文件类型如下,不管你在哪里输入,只要它是一个空白区域。

/*
*/

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

enter image description here

3)放开鼠标按钮后,会弹出一个新窗口,要求您添加名称、快捷方式等; 如图所示。正如您所看到的,我将我的快捷方式添加到//。因此,每次我想要一个块注释,我将键入//。希望这个能帮上忙

enter image description here

我设法通过一个自动化任务使这个工作得到良好,并使用快捷键绑定到键组合 ctrl + 选项 + 命令 + b 所有我必须做的是突出显示的代码,我想块注释在 xcode 中,按下上述键和选定的文本块注释了使用/* ... */。

我使用代码折叠的公平位,所以我想这个功能的原因是,这样我可以很容易地折叠下来一块注释代码... 代码注释通常的方式使用//习惯折叠。

我不熟悉使用 mac 自动机,但我只是遵循指令在下面的 wwdc 视频

在 WWDC 2012视频402-使用 Xcode 高效工作(从大约6分钟开始)中有一个关于如何使用 Mac OSX Automator 添加服务来操作选定的文本的描述。视频中显示的示例是使用 shell 命令 sort 和 uniq 删除所选文本中的重复内容。使用这种方法,您也可以做同样的事情,但是您输入以下命令,而不是他在视频中所做的事情

Awk’BEGIN { print“/“}{ print $0} END { print”/”}’

(注意,在前一行中有两个星号,由于某种原因没有显示... ..。它们确实显示在下面的屏幕截图中,所以请复制它作为要输入的正确命令)

您最终应该运行这样的 shell 脚本

screenshot

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

当你保存它的时候,你应该可以选择为它命名(我称之为块评论) ,并且分配一个快捷键

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

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

希望这能帮上忙

Cmd + 换挡 + 7将注释选定的行。

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

更新: Xcode 8更新

现在使用 xcode 8,您可以:

Something + Something + /

注意: 下面的方法在 xcode version = > 8中不起作用

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

  1. 打开 自动售货机
  2. 选择 服务
  3. 搜索 运行 Shell 脚本并双击它

在 textarea 中添加以下应用程序脚本

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

apple script for block comment

  1. 将脚本保存为 Block Comment

加个快捷键

打开 系统设定 > 键盘 > 快捷键,通过单击 +并右键相同的名称,即 Block Comment,添加新的快捷方式,就像您在第4步中给应用程序脚本的那样。添加 快捷键并单击 按钮。

New keyboard shortcut

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

在 Macbooks 中,可以使用 换班 + Cmd + 7来注释之前突出显示的块

更新 Xcode 12/macOS Big Sur:

目前,Mac App Store 版本的 Xcode 的块注释没有显示在 Xcode > Preferences > Key Bindings 下。这个问题一直是 解决了GitHub 版本可以用来代替。

2017年6月更新:

由于我很懒,而且没有完全实现我的解决方案,所以我四处搜索并找到了 Xcode 的块注释,一个最近发布的插件(二零一七年六月)。不要为我的解决方案而烦恼,这个插件工作得很好,我强烈推荐它。

原答案:

Xcode 78上,以上这些都不适合我,所以我:

  1. 使用 < strong > AppleScript 创建 自动售货机服务

  2. 确保“ Output replace select text”被 < strong > 勾选

  3. 输入以下代码:

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

enter image description here

现在您可以通过 Xcode-Services 菜单访问该服务,或者右键单击您想要注释的选定代码块,或者在系统首选项下给它一个快捷方式。

现在,使用 xCode 8,您可以:

Something + Something + /

自动生成文档评论。

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

@ Nikola Milicevic

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

我还添加了我的自动化设置的屏幕截图..。

谢谢

enter image description here

enter image description here

更新:

如果我把脚本稍微改成:

enter image description here

然后在 XCode 中选择完整的行,就会得到预期的结果:

enter image description here

enter image description here

如果你正在寻找一种从 Add Documentation操作(可以在 Cmd-换班-/下获得)转换自动生成的注释的方法,你可能会发现它也很有用:

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

Services

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

希望这能帮到别人。enter image description here

在 XCode 10(及以上)中使用 选择 + 命令 + 斯莱士(即 something + something +/)

为你的函数或类写一个漂亮的注释,如下:

XCode screenshot of doc comment

在 xcode 11.1 Swift 5.0

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

enter image description here

如果你的键盘布局需要你同时按 Shift 键(例如,在德语键盘上按 cmd + shift + 7) ,快捷键将不起作用,而是打开帮助菜单。

苹果的“与众不同”最大限度地..。

如果你点击 Xcode > Preferences > Key Bindings:

Changing comment selection key map in Xcode

看起来在蒙特雷的 macOS 操作系统上,Xcode 块注释切换键组合已经改为 命令 something + < kbd >’

编辑: Xcode 13.2已经返回到之前的密钥组合。 命令 something + Something + < kbd > 7

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

  1. 打开自动机
  2. 选择 Quick Action
  3. 搜索 Run AppleScript
  4. Workflow receives current下拉列表中选择 text
  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. 要取消注释,请选择从 /**/的文本并按快捷键

更新 Xcode 14

  1. 打开 Xcode 首选项菜单。
  2. 转到“键绑定”并在过滤器区域输入“注释”。

enter image description here

  1. 选择“结构 > 评论”行并输入快捷方式。

更新: Xcode 14

在西班牙语键盘现在工作按 cmd + '

在德语键盘上,这是通过按 cmd + ß来完成的。