【发布时间】:2020-11-02 19:48:58
【问题描述】:
使用 Visual Studio 2019 社区 (v16.6.1)。编辑C/C++/C#代码时,选择多行代码:
int countLines = 0;
if (!editingDocument)
countLines = GetDocumentLines();
现在触发Edit.ToggleBlockComment (Ctrl+Shift+/) 或Edit.ToggleLineComment (Ctrl+K, Ctrl+/)。在这两种情况下,都应用了“C 风格”cmets:
/*int countLines = 0;
if (!editingDocument)
countLines = GetDocumentLines();*/
这没关系,但我实际上想要 C++ 风格,单行 cmets:
// int countLines = 0;
// if (!editingDocument)
// countLines = GetDocumentLines();
这可能吗?理想的情况是Edit.ToggleBlockComment 使用“C 风格”,Edit.ToggleLineComment 使用“C++ 风格”。
更新
感谢其中一个 cmets,我可以确认当所选块内至少有一个注释时,VS 足够聪明,可以对整个块使用 C++ 单行 cmets。虽然这不能回答问题,但目前它是一个有用的解决方法。
【问题讨论】:
-
对我来说,
Ctrl+Shift+/、Ctrl+K+/和Ctrl+K+C都执行行 cmets,除非只选择其中一行的一部分。 -
有趣的问题。我认为我自己在选项中没有遇到任何这样的设置。它与单个语言服务实现相关联,因此您需要从您感兴趣的所有语言中请求此功能(以防它确实不存在)。
-
不知道 C# 但是,在 C/C++ 代码中,如果选中的块已经有一个
//注释,那么整个块都会被注释-在每行的开头加上//。也许有帮助。 -
@AdrianMole:啊哈,很棒的收获!没看出来。可以确认,如果选择里面至少有一个注释,VS 就足够聪明,可以对整个块使用 C++ 单行 cmets。现在这是一个足够好的解决方法,谢谢!已将其添加为问题的更新。
-
对我来说,Ctrl+K+/切换单行cmets,Ctrl+K+C加一层单行cmets,Ctrl+K+U去掉一层单行cmets。不确定为什么这对您不起作用?
标签: c# c++ c visual-studio-2019