C# Visual Studio 2015 - 自动跳转到括号内

3
这是我在stackoverflow上的第一个问题,以下是问题描述:
我在使用Visual Studio 2015时遇到了一个非常烦人的问题/特性。每当我使用自动完成(tab-tab)创建if语句、for循环、while循环等时,当我到达结束括号所在行并尝试插入一个新行(简单地按下Enter键),光标会立即跳转到括号内部,而不是创建一个新行。
我已经四处查找了如何禁用这个“特性”,因为它非常烦人。但是我没有在任何地方找到有关它的信息,所以现在我向大家提出这个问题。
谢谢!
以下是问题产生的步骤:
1.在C#项目中的任何位置,创建一个新的if语句(也可以使用while循环、for循环等)。 2.导航到结束括号后面。 3.按Enter键创建一个新行。 4.光标将跳转到语句内部,而不是创建一个新行。

你是否在输入 if 后按下 TAB 键?如果是的话,那么你正在使用代码片段。请参考此处 https://msdn.microsoft.com/library/9ybhaktf(v=vs.100).aspx 了解如何管理代码片段。如果 if 代码片段让你感到非常烦恼,你可以将其删除。 - trailmax
我刚试了一下,无法重现你的问题。Trailmax可能是对的:如果你使用“if”片段,无论你在哪里使用TAB,ENTER键总是将光标放在括号之间。 - Sergio Acosta
只有在使用Tab键补全“if”代码片段时才能重现此问题...如果您手动编写“if(){}”,则不会发生这种情况。而且,无论您将光标移动到哪里,在使用Tab键补全片段后的第一个[enter]按下后,都会进入代码块。 - Mathias R. Jessen
仅使用空格进行打字:http://imgur.com/q8ZDS2s - Sergio Acosta
trailmax,Sergio,Mathias。 看起来就是这样! 但我不知道如何禁用按Enter键时的光标移动。 - Locil
1个回答

4
使用 tab 键时会触发片段功能,这就是“问题”。敲击 tab 后,您将进入“片段编辑”模式,在该模式下,每个 tab(和 shift + tab)用于浏览片段定义的占位符。在片段模式下,Enter 键始终会带您到片段设计人员认为最好的光标位置。对于内部括号的 if 片段而言,这是在括号之内。
好消息是您可以创建自己的片段,甚至修改现有片段以改变其行为。然而,据我所知,这需要手动编辑片段定义文件(xml 文件)或使用外部扩展。例如:http://blogs.msdn.com/b/visualstudio/archive/2014/01/15/visually-creating-snippets.aspx 作为一种解决方法,您也可以在按下 Enter 前按下 Esc 以退出片段编辑模式。

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