Visual studio 如何计算Visual Studio 2017中选定(或找到)的字符和行数?

Visual studio 如何计算Visual Studio 2017中选定(或找到)的字符和行数?,visual-studio,Visual Studio,我正在开发一个嵌入式+桌面组合应用程序。嵌入式平台上的内存限制使得了解将发送和接收的项目的大小和数量变得非常重要。在一个系统上进行大小或元素计数更改时,我需要将这些更改与另一个系统协调 为了获得这些信息,我当前在VisualStudio中选择并复制感兴趣的元素,并将它们粘贴到一个外部文本编辑器中,该编辑器可以为我提供字符数和行数 我想找到一种方法,在Visual Studio 2017中查看相同的选定行数和选定字符数 到目前为止,我找到的唯一方法是在一个选择中执行查找和替换,它会报告替换的计数。

我正在开发一个嵌入式+桌面组合应用程序。嵌入式平台上的内存限制使得了解将发送和接收的项目的大小和数量变得非常重要。在一个系统上进行大小或元素计数更改时,我需要将这些更改与另一个系统协调

为了获得这些信息,我当前在VisualStudio中选择并复制感兴趣的元素,并将它们粘贴到一个外部文本编辑器中,该编辑器可以为我提供字符数和行数

我想找到一种方法,在Visual Studio 2017中查看相同的选定行数和选定字符数

到目前为止,我找到的唯一方法是在一个选择中执行查找和替换,它会报告替换的计数。如果我使用正则表达式进行匹配,我可以得到匹配的所有字符的计数,因此通过两次传递,我可以得到替换的字符和行的计数-但是我必须按住Ctrl-Z键才能消除损坏,这似乎是个坏主意。一定有更好的办法

除了使用“查找并替换”然后取消损坏之外,是否有其他方法可以获得已找到或选定元素的计数

实际上,我见过的所有其他编辑器都允许在一个选择中进行查找,并告诉您匹配的计数,但我没有找到任何方法使Visual Studio显示匹配的计数,即使找到的所有元素都有颜色标记。我得把所有的东西都换了才能数到

我看到,这一功能的周期性功能请求可以追溯到好几年前,但到目前为止,由于缺乏投票,它们已经被关闭。我发现VS2010的宏可以做到这一点,但我没有发现任何证据表明VS2017中存在宏。我没有找到任何提供所选行数和所选字符数的marketplace扩展


请注意,我不想计算文件、项目或解决方案中的代码行数。我只想在VisualStudioIDE中动态地计算选择中的字符和行数。我搜索了,但没有找到任何与此问题重复的问题。

您可以使用以下命令C语言和我的扩展名来计算选定的字符和行数:

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        EnvDTE.TextSelection ts = DTE.ActiveDocument.Selection as EnvDTE.TextSelection;
        System.Windows.MessageBox.Show("Lines=" + (1 + ts.BottomLine - ts.TopLine) + " Characters=" + ts.Text.Length);
    }
}

顺便说一句,VisualCommander还可以运行VS2010宏。

VSCode显示状态栏中当前选定的字符数,例如143个选定字符。

这看起来太棒了!VisualCommander可以对查找结果执行类似的操作吗?我指的是多个非连续高亮显示的已找到元素,这些元素不是当前的TextSelection。@Craig.Feied No,但您可以通过编程方式运行搜索,实际上,它是:所有选定内容-行计数-1。这是因为选择“所有内容”也会选择换行符,\n换行符位于除最后一行之外的每一行中,这就是为什么要将其减去1。