如何在Visual Studio 2017中将Ctrl + C更改为复制Word,而不是整行

达里尔

这个问题类似于在Visual Studio中禁用单行复制,不同之处在于,如果没有选择任何内容,我想将其更改为仅复制光标所在的单词。如果是空格,请确保我不在乎复制行,但是99%的人正试图复制一个单词,而不是行吗?这可能吗?

谢尔盖·弗拉索夫(Sergey Vlasov)

要复制插入符号所在的单词,可以为以下Visual Commander(由我开发)命令(语言C#)分配快捷方式

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        this.DTE = DTE;
        EnvDTE.TextSelection ts = TryGetFocusedDocumentSelection();
        if (ts != null && ts.IsEmpty)
            CopyWord(ts);
        else if (IsCommandAvailable("Edit.Copy"))
            DTE.ExecuteCommand("Edit.Copy");
    }

    private void CopyWord(EnvDTE.TextSelection ts)
    {
        EnvDTE.EditPoint left = ts.ActivePoint.CreateEditPoint();
        left.WordLeft();

        EnvDTE.EditPoint right = ts.ActivePoint.CreateEditPoint();
        right.WordRight();

        System.Windows.Clipboard.SetText(left.GetText(right));
    }

    private EnvDTE.TextSelection TryGetFocusedDocumentSelection()
    {
        try
        {
            return DTE.ActiveWindow.Document.Selection as EnvDTE.TextSelection;
        }
        catch(System.Exception)
        {
        }
        return null;
    }

    private bool IsCommandAvailable(string commandName)
    {
        EnvDTE80.Commands2 commands = DTE.Commands as EnvDTE80.Commands2;
        if (commands == null)
            return false;
        EnvDTE.Command command = commands.Item(commandName, 0);
        if (command == null)
            return false;
        return command.IsAvailable;
    }

    private EnvDTE80.DTE2 DTE;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2017中将包添加到python

如何在Visual Studio代码中更改注释的颜色?

如何在Visual Studio Code或VSCode中更改集成终端

如何在Visual Studio Code中更改UI语言?

如何在Visual Studio Code中更改缩进?

如何在Visual Studio中复制错误消息

如何在Visual Studio 2015中更改语言版本

如何在Visual Studio中将构建配置更改为Release?

如何在Visual Studio Online中复制任务组?

如何在Visual Studio Code中更改标尺的颜色

如何在Visual Studio 2017中更改查找结果格式?

如何在Visual Studio 2017中更改调试端口?

如何在Visual Studio 2017中将调试器附加到Azure Web应用程序?

如何在Microsoft Visual Studio Community 2017中将.py编译为.exe?

如何在Visual Studio 2017中将Function App添加到资源组项目中?

如何在Visual Studio 2017中创建Visual c ++ MFC控制台项目

如何在Visual Studio 2017中更改断点的位置

如何在Visual Studio 2017中为C ++安装Npgsql

如何在Microsoft Visual Studio 2017中检查C ++版本

如何在Visual Studio中更改项目目标

如何在Visual Studio中更改“许可给”?

如何在Visual Studio 2013中存储未提交的更改

如何在Visual Studio Code中更改Markdownlint设置

如何在Visual Studio 2013中更改“向后导航”?

如何在Visual Studio Code中更改代码格式

如何在CentOS 7中将Ctrl + C永久更改为Ctrl + K?

如何在Visual Studio中更改单个文件的语法

如何在 Visual Studio 2017 的默认模板中更改路由?

如何在 Visual Studio for C++ 中更改工作目录