首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Visual Studio2012中的智能感知不替换光标上的文本?

如何让Visual Studio2012中的智能感知不替换光标上的文本?
EN

Stack Overflow用户
提问于 2013-04-01 23:06:43
回答 2查看 188关注 0票数 1

在编程时,我经常意识到我需要在已经键入的代码之前添加一些东西。例如,我键入变量的名称:

代码语言:javascript
复制
input[0]

然后我意识到我的数组是string类型的,我需要转换它。因此,我移动到单词的开头(使用Ctrl-向左箭头键)并开始键入

代码语言:javascript
复制
Convert.To|input[0]

使用管道来显示光标的位置。我从智能感知中得到了一些建议,包括我正在寻找的ToInt32()方法。但只要我用Tab或Space键确认这个建议,我就会得到以下结果:

代码语言:javascript
复制
Convert.ToInt32(|)[0]

因此,从光标位置到词尾的文本被替换为suggestion,这绝对不是我想要的。

这个问题并不是VS2012所特有的,可能是由于我安装了一些扩展,但我试图追查它的起源并没有得到任何结果。我安装了以下扩展: ReSharper,PowerCommands,生产力电动工具。

EN

回答 2

Stack Overflow用户

发布于 2013-04-01 23:34:43

如果要在标识符之前输入不相关的表达式,请在开始键入新表达式之前添加一个空格。这将阻止完成替换现有的标识符。

例如,如果|标记了插入符号,则以下方案可以避免您面临的问题。

代码语言:javascript
复制
Convert.To| input

此代码完成功能旨在防止插入不正确的标识符。如果Visual Studio的行为与我所知道的其他IDE类似,那么在您的原始示例中使用代码完成功能将导致插入ToInt32input,而这永远不会有效。

如果您对这个特性感兴趣,我已经在我的博客文章Code Completion filtering, selection, and replacement algorithms中将其描述为Extend ( Visual Studio的默认)和No-extend ( NetBeans、Eclipse和其他的默认)模式。

票数 1
EN

Stack Overflow用户

发布于 2015-08-04 22:04:35

两年后的答案。但对某些人来说,它可能仍然有用。

在VS2015 (可能也适用于VS2012)中对我有帮助的是将空格字符添加到智能感知设置中的“成员列表提交字符”列表中。

在此之后,光标后面的字符不会被自动完成删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15745934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档