我最近从Java开发和Eclipse IDE切换到C#.NET和VisualStudio 2010.我真正想念的是用于单词完成的 Alt + / Eclipse快捷方式。我不是在谈论IntelliSense自动完成的东西。我的意思是,我希望文本编辑器能够完成在文档中某处已经存在但不会出现在IntelliSense中的单词,例如字符串文字。
在Notepad ++中,它是 Ctrl + Enter 快捷方式。 在Eclipse中,它是前面提到的 Alt + /
VS2010可以这样做吗?如果不是默认情况下,任何人都可以指向一个体面的VB宏,我可以插入我的VS2010来做这个吗?
谢谢。
修改
请注意 CODE 完成(即大多数IDE /聪明的编辑器通过Ctrl + Space执行的操作)与简单的 WORD 完成(我是什么意思)之间存在差异寻找)。单词完成不会尝试分析当前上下文,或猜测您可能会使用的类型/方法。所有这一切都试图通过查看光标位置并搜索当前文档中已经出现的类似单词来完成您开始键入的工作。
答案 0 :(得分: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中,这对我有用。
施洛米
答案 1 :(得分:2)
VS2010可以这样做吗?
默认为否。
如果不是默认情况下,任何人都可以指向一个体面的VB宏,我可以插入我的VS2010来做这个吗?
不知道存在的任何东西。但这可能是一个很好的项目。
答案 2 :(得分:0)
在Visual Studio Code(VSC)中有一个扩展名,"另一个Word完成"通过getogrand。我知道你的问题是关于Visual Studio的,但这可能是其他搜索此问题的人感兴趣的。
是的,自从"代码完成后很难搜索到这个"术语更常见。
答案 3 :(得分:-1)
VS2010默认具有该功能:
快捷方式:“ALT +右箭头”或“CTRL + SPACEBAR”
工具栏按钮:(因为我是新用户,请在http://i.stack.imgur.com/OyiHY.png手动打开截图图片)
相关命令对象名称:Edit.CompleteWord(请参阅:http://msdn.microsoft.com/en-us/library/xte2hh6a%28v=vs.71%29.aspx)
是的,我正在使用VS2010专业版。