在编程时,我经常意识到我需要在已经键入的代码之前添加一些东西。例如,我键入变量的名称:
input[0]然后我意识到我的数组是string类型的,我需要转换它。因此,我移动到单词的开头(使用Ctrl-向左箭头键)并开始键入
Convert.To|input[0]使用管道来显示光标的位置。我从智能感知中得到了一些建议,包括我正在寻找的ToInt32()方法。但只要我用Tab或Space键确认这个建议,我就会得到以下结果:
Convert.ToInt32(|)[0]因此,从光标位置到词尾的文本被替换为suggestion,这绝对不是我想要的。
这个问题并不是VS2012所特有的,可能是由于我安装了一些扩展,但我试图追查它的起源并没有得到任何结果。我安装了以下扩展: ReSharper,PowerCommands,生产力电动工具。
发布于 2013-04-01 23:34:43
如果要在标识符之前输入不相关的表达式,请在开始键入新表达式之前添加一个空格。这将阻止完成替换现有的标识符。
例如,如果|标记了插入符号,则以下方案可以避免您面临的问题。
Convert.To| input此代码完成功能旨在防止插入不正确的标识符。如果Visual Studio的行为与我所知道的其他IDE类似,那么在您的原始示例中使用代码完成功能将导致插入ToInt32input,而这永远不会有效。
如果您对这个特性感兴趣,我已经在我的博客文章Code Completion filtering, selection, and replacement algorithms中将其描述为Extend ( Visual Studio的默认)和No-extend ( NetBeans、Eclipse和其他的默认)模式。
发布于 2015-08-04 22:04:35
两年后的答案。但对某些人来说,它可能仍然有用。
在VS2015 (可能也适用于VS2012)中对我有帮助的是将空格字符添加到智能感知设置中的“成员列表提交字符”列表中。
在此之后,光标后面的字符不会被自动完成删除。
https://stackoverflow.com/questions/15745934
复制相似问题