Visual Studio 2015/2017是否有特定光标定位操作快捷键?
在Visual Studio 2015/2017中实现目标光标定位的方法
嘿,我来帮你梳理下这两个操作的情况——很遗憾,VS 2015和2017都没有内置的默认快捷键直接完成你说的这两个操作,但我们可以通过自定义宏或者命令组合来实现,具体方法如下:
1. 光标定位到屏幕垂直中间位置的行首
要实现这个功能,核心是先找到当前屏幕可见区域的中间行,再把光标移到该行的行首,具体分两种场景:
针对VS2015(自带宏支持)
- 打开「工具」→「宏」→「宏资源管理器」,右键「MyMacros」选择「新建模块」,命名后粘贴以下宏代码:
Sub GoToScreenMiddleLineStart() Dim startLine As Integer = DTE.ActiveWindow.VisibleRange.TopLine Dim endLine As Integer = DTE.ActiveWindow.VisibleRange.BottomLine Dim middleLine As Integer = startLine + (endLine - startLine) \ 2 DTE.ExecuteCommand("Edit.GotoLine", middleLine.ToString()) DTE.ExecuteCommand("Edit.LineStart") End Sub
- 绑定快捷键:打开「工具」→「选项」→「环境」→「键盘」,在「显示命令包含」输入框里输入你刚才创建的宏名(比如
MyMacros.Module1.GoToScreenMiddleLineStart),然后设置你想用的快捷键(比如Ctrl+Shift+M),点击「分配」保存即可。
针对VS2017(需安装宏扩展)
VS2017移除了原生宏支持,你需要先安装「Macros for Visual Studio 2017」扩展,之后按照上面类似的步骤创建宏并绑定快捷键就行。
2. 光标定位到行中间位置
这个操作需要计算当前行的长度,再把光标移到中间位置,同样用宏来实现最方便:
宏代码示例(VS2015/2017带宏扩展)
创建新宏模块,粘贴以下代码:
Sub GoToLineMiddle() Dim currentLine As TextSelection = DTE.ActiveDocument.Selection currentLine.StartOfLine() Dim lineLength As Integer = currentLine.Text.Length Dim middlePos As Integer = lineLength \ 2 currentLine.MoveToLineAndOffset(currentLine.CurrentLine, middlePos) End Sub
之后同样在键盘设置里给这个宏绑定快捷键(比如Ctrl+Shift+L),就能一键跳到行中间了。
如果不想用宏,也可以先按Home到行首,再多次按Ctrl+Right移动,但这显然没有一键操作高效。
内容的提问来源于stack exchange,提问作者Dess
相关产品推荐
相关产品推荐

