如何在visual studio 2010中创建一个带有名称的书签

时间:2011-03-29 08:32:57

标签: visual-studio-2010

在VS 2010中创建书签时,会给出一些默认名称“Bookmark#”。然后我必须重命名它。 我想要的是选择一个文本,当我创建一个新书签时,这个书签的名字将是我选择的文字。

如何?

4 个答案:

答案 0 :(得分:8)

如果您已打开“书签”窗口,则可以右键单击书签并选择“重命名”。然后,开始输入,您的书签将被重命名。

如果您需要打开书签窗口,可以使用默认命令Ctrl + W,B,或者您可以转到查看 - >其他Windows - >书签窗口。

编辑:在VS 2015中,书签Windows命令为Ctrl + K,Ctrl + W。

答案 1 :(得分:2)

您可以尝试使用代码快捷方式而不是书签。如果您添加评论,例如:

// place in my code I want to come back to

然后光标在此行上按Ctrl + K然后按Ctrl + h它将添加一个代码快捷方式,你会注意到边缘的快捷方式图标。

接下来,按Ctrl + \ + T以显示任务列表,然后从下拉列表中选择快捷方式。描述文本将是您添加快捷方式的行的内容,在本例中为注释文本。如果您只是在一行代码上添加快捷方式,则描述将是该行代码的内容。

双击快捷方式,转到代码中的该位置。

答案 2 :(得分:0)

您可以尝试使用此Visual Studio扩展程序:NamedBookmarks

答案 3 :(得分:0)

您可以安装Visual Commander扩展,创建新命令并使用此代码:

public class M:VisualCommanderExt.ICommand
{
    private static readonly char[] SpecialChars = new char[] { '+','^','%','~','(',')','[',']' };

    public void Run(EnvDTE80.DTE2 DTE,Microsoft.VisualStudio.Shell.Package package)
    {
        TextSelection selection = DTE.ActiveDocument.Selection as TextSelection;
        string caption = selection.Text;

        if(caption == "")
        {
            // get current line content
            selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText);
            selection.EndOfLine(true);
            selection = DTE.ActiveDocument.Selection as TextSelection;
            caption = selection.Text;
        }


        Window currentWindow = DTE.ActiveWindow;
        selection.SetBookmark();

        DTE.ExecuteCommand("View.BookmarkWindow");
        Window bookmarkWindow = null;
        foreach(Window window in DTE.Windows)
        {
            if(window.Caption == "Bookmarks")
            {
                bookmarkWindow = window;
                break;
            }
        }

        bookmarkWindow.Activate();
        DTE.ExecuteCommand("OtherContextMenus.BookmarkWindow.Rename");

        foreach(char c in caption)
        {

            if(System.Array.Exists(SpecialChars,element => element == c))
                SendKeys.SendWait("{" + c.ToString() + "}");
            else
                SendKeys.SendWait(c.ToString());
        }

        SendKeys.SendWait("{ENTER}");

    }
}