在VisualStudio 2010中是否有类似Eclipse的单词自动补全快捷键?

8
我最近从Java开发和Eclipse IDE转换到C# .NET和Visual Studio 2010。我真正想念的是Alt + / Eclipse快捷键,用于单词完成。我并不是在说IntelliSense自动完成。我的意思是,我希望文本编辑器能够完成已经存在于文档中但不会在IntelliSense中显示的单词,例如字符串文字。
在Notepad++中,它是Ctrl + Enter快捷键。 在Eclipse中,它是前面提到的Alt + /
VS2010能否做到同样的效果?如果不能,有没有人能够指向一个可以插入到我的VS2010中的好的VB宏?
谢谢。
编辑
请注意,代码补全(即大多数IDE /聪明编辑器通过Ctrl + Space执行的操作)与简单的单词补全(我正在寻找的内容)之间存在区别。单词补全不尝试分析当前上下文,或猜测您可能需要的类型/方法。它所做的一切就是尝试通过查找当前文档中已出现的类似单词来完成您开始输入的单词。
4个回答

3
我创建了一个简单的VS宏:
Public Sub CompletePreviousWord()        

    Dim doc As EnvDTE.Document = DTE.ActiveDocument
    Dim selection As TextSelection = doc.Selection        

    ' word to left is what we want to find        
    selection.WordLeft(True, 1)
    Dim findWord As String = selection.Text

    ' get search text from the beginning of the document
    Dim ep As EditPoint = selection.ActivePoint.CreateEditPoint()
    ep.StartOfDocument()
    Dim searchText As String = ep.GetText(selection.ActivePoint)

    Dim match = Regex.Match(searchText, "[^a-zA-Z0-9_]?(" + findWord + "[a-zA-Z0-9_]*)", _
        RegexOptions.IgnoreCase Or RegexOptions.RightToLeft)        

    If match.Success Then
        ' replace the whole world - for case sensitive and to allow undo (by doing only one operation)            
        selection.Insert(match.Groups.Item(1).Value)
    Else            
        selection.WordRight(False, 1)
    End If

End Sub

我把它绑定到alt-space,这就满足了我的需求。

Shlomi


2

VS2010能做同样的事情吗?

默认情况下不能。

如果默认情况下不能,有没有人能指导我一个不错的VB宏,可以插入到我的VS2010中来实现这个功能?

不知道是否存在这样的宏。但这可能是一个不错的项目去完成。


3
是的,我肯定会使用这样的插件。如果Word/Outlook也有这样的插件会更好,因为当我在写电子邮件时,总是按Ctrl+Space键,如果单词没有自动完成,我会感到非常沮丧 :) - Insomniac
我真的不能将这个标记为被接受的答案。如果我这样想,你并没有真正帮助到我。 - Peter Perháč

1
在Visual Studio Code (VSC)中,有一个扩展名为“Another Word Completion”的扩展,由getogrand提供。我知道你的问题是关于Visual Studio的,但对于其他在这里搜索的人来说,这可能很有趣。是的,很难搜索到这个,因为“代码完成”这个词更常见。

-1

3
请查看我最后一次编辑。我不是在寻找代码自动完成,这在任何集成开发环境中都是必须具备的功能。我要寻找的是一种简单的方法来实现单词的自动补全(我指的是任何单词,而不仅限于方法/字段/属性/类型名称。甚至包括文档或注释中的单词)。 - Peter Perháč

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接