什么是Visual Studio SDK中VirtualSnapshotSpan中的虚拟空间?

5
1个回答

6
您可以在这里找到解释:http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.virtualsnapshotpoint%28v=vs.100%29.aspx 虚拟空间是指行末的“额外”空格,不会增加行的长度。您可以在Visual Studio中启用或禁用虚拟空间。当禁用虚拟空间时,在行末按右箭头键会使插入符移到下一行的开头。当启用虚拟空间时,在行末按右箭头键会使插入符在同一行上向前移动。
即使在“工具-选项-文本编辑器-所有语言-常规”下禁用了“启用虚拟空格”选项,编写缩进文本或代码时仍然可能插入虚拟空格。
如果您在缩进行的末尾输入回车,Visual Studio将在新行的开头添加虚拟空格。这些空格是“虚拟”的,因为它们没有被用户键入,并且除非您在虚拟空格后输入内容,否则它们不会保存在文件中。
这会影响插入符的位置:在缩进行末按回车后,CaretPosition的“BufferPosition”和“VirtualBufferPosition”属性将不同。BufferPosition指向新行的第0列,而VirtualBufferPosition指向插入符在可视上显示的位置。

1
很有趣。如果我关闭虚拟间距并在行后面加上许多空格来查看原始文件,那么该文件将保留文件中的字节,但如果虚拟开启,则会将它们简单地删除(使文件变小)。有点像有效数字一样?但是,如果您已经开启了虚拟空格,在按右箭头10次然后插入注释标记时,它会保留这些空格(将其从虚拟空格转换为实际空格)吗?非常感激! - Chris

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