我正在编写 ANSI 兼容的 C 代码,因此我不能使用 ( //
) 行注释。我正在使用 Xcode。/**/
在 Sublime Text 和 Eclipse 中,以及我认为大多数其他 IDE 中,行注释和块注释 ( )都有单独的键盘快捷键。但是,我在 Xcode 中看不到这一点——事实上,我什至看不到添加块注释的菜单选项。Xcode 根本不支持它吗?如果是这样,那肯定是一个蹩脚的决定。
19 回答
试试command+ /。
因此,您只需突出显示要注释掉的代码块并按下这两个键。
更新 Xcode 12 / macOS 大苏尔:
目前,Xcode 的 Mac App Store 版本的BlockComment没有显示在 Xcode > Preferences > Key Bindings 下。此问题已解决,可以使用GitHub 版本代替。
2017 年 6 月更新:
由于我很懒,并且没有完全实现我的解决方案,我四处搜索并找到了 BlockComment for Xcode,这是一个最近发布的插件(2017 年 6 月)。不要打扰我的解决方案,这个插件工作得很好,我强烈推荐它。
原始答案:
以上都不适用于Xcode 7和8,所以我:
使用AppleScript创建Automator服务
确保选中“输出替换所选文本”
输入以下代码:
on run {input, parameters} return "/*\n" & (input as string) & "*/" end run
现在,您可以通过 Xcode - Services 菜单访问该服务,或者右键单击要评论的选定代码块,或者在 System Preferences 下为其提供快捷方式。
现在使用 xCode 8,您可以:
⌥</kbd> + ⌘</kbd> + /
自动生成文档注释。
来源:https ://twitter.com/felix_schwarz/status/774166330161233920
现在有一个 Xcode 插件允许这样做:CComment。
安装它的最简单方法是使用令人惊叹的Alcatraz 插件管理器 for Xcode。
编辑Apple 遗憾地(并且错误地,恕我直言)用 Xcode 8 淘汰了旧的插件模型。新的插件系统非常有限,但应该允许再次开发这样的插件。对于任何对此感兴趣的人,请观看WWDC 2016 session 414。此外,请为您想编写或查看的插件提交 API雷达文件。
更新:Xcode 8 更新
现在使用 xcode 8,您可以执行以下操作:
⌥</kbd> + ⌘</kbd> + /
注意:以下方法不适用于 xcode 版本 => 8
将块注释功能添加到 mac OS X 的任何编辑器的非常简单的步骤
- 打开自动机
- 选择服务
- 搜索Run Shell Script并双击它
在 textarea 中添加以下小程序
awk 'BEGIN{print "/*"}{print $0}END{print "*/"}'
- 将脚本另存为
Block Comment
添加键盘快捷键
打开System Preference > Keyboard > Shortcuts,通过单击+
并右键添加新的快捷方式,即Block Comment
与您在第 4 步中为 applescript 提供的名称相同。添加您的键盘快捷键,然后单击添加按钮。
现在您应该能够在 Xcode 或任何其他编辑器中使用块注释,选择一些文本,使用快捷键来阻止注释任何代码行或右键单击,上下文菜单和您给该脚本的名称应该显示在附近底部。
看起来在 macOS Monterey 上,Xcode 块注释切换键组合已更改为 command ⌘</kbd> + '
编辑:Xcode 13.2 已返回到之前的组合键。 command ⌘</kbd> + ⇧</kbd> + 7
我稍微修改了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
你可以很容易地自己分配这个,这里是一步一步的解释。
1.) 在您的 xCode .m 文件中键入以下内容,只要它是一个空白区域,您在哪里键入都没有关系。
/*
*/
2.)突出显示两行代码,然后拖放到“代码片段库面板”区域(它位于实用程序面板的底部)。如果操作正确,将显示一个浅蓝色加号。
3.) 松开鼠标按钮后,会弹出一个新窗口,要求您添加名称、快捷方式等;如图所示。如您所见,我将快捷方式添加到 //。所以每次我想要一个块注释时,我都会输入//。希望这可以帮助
我设法通过一个自动化任务使它正常工作,并使用快捷方式将其绑定到组合键 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,选择一些文本,右键单击,上下文菜单,你给这个脚本的名字应该显示在底部附近
只需单击名称,脚本将运行并阻止注释所选代码或使用您分配的键盘快捷键。
希望这可以帮助
Cmd++Shift将7注释选定的行。
xcode 上的帮助菜单前有一个符号,其中包含编辑用户脚本。在评论部分下的 Un/Comment Selection 上更改我的 $cCmt = "//"; 到我的 $cCmt = "#"; 或者任何你的 IDE 可以使用的东西。然后通过选择行和命令 + / (这是我的 xcode 默认值),您可以注释和取消注释选定的行。
如果您正在寻找一种将自动生成的评论从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 回答中的相同:
根据 Baig 的回复,我创建了一个快捷方式来评论和取消评论某行的一部分。这适用于 Xcode 13.2.1 和 MacOS 12.0。
- 打开自动机
- 选择
Quick Action
- 搜索
Run AppleScript
text
在Workflow receives current
下拉列表中选择- 查看
Output replaces selected text
- 添加此脚本
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
- 点击播放并另存为
Block Comment
- 在设置 -> 键盘 -> 快捷方式上,选择
App Shortcuts
并点击+
- 使用脚本标题作为
Menu Title
(即“块评论”) - 选择所需的快捷方式(我做了 command+option+shift+/)
- 在 Xcode 上选择要评论的文本并按下快捷键
/*
要取消注释,请从to中选择文本*/
并按快捷键
在 Macbooks 中,您可以使用shift++cmd来7评论以前突出显示的块
好像已经有很多人回答这个问题了。
在 Swift 3.0 中,单行注释是在前面加上双斜杠:“//”;多行放置“/* .... */”。
希望这可以帮助。