Visual studio code 保持屏幕位置始终以光标为中心

Visual studio code 保持屏幕位置始终以光标为中心,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在尝试为VSCode编写一个扩展,其中编辑器屏幕始终以光标为中心。还有其他一些扩展插件可以添加一个命令,将屏幕居中放置在光标上,但您必须按该命令才能激活它 目前我发现实现这一点的唯一方法是重写cursorUp、cursorDown、enter、pageUp、pageDown——基本上可以上下移动光标的任何命令,然后使用“revealLine”命令,光标线位置和“at”属性为“center” 有更好的办法吗?重新实现默认编辑器命令似乎效率很低 以下是我目前得到的: “严格使用”; 将*作为vs

我正在尝试为VSCode编写一个扩展,其中编辑器屏幕始终以光标为中心。还有其他一些扩展插件可以添加一个命令,将屏幕居中放置在光标上,但您必须按该命令才能激活它

目前我发现实现这一点的唯一方法是重写cursorUp、cursorDown、enter、pageUp、pageDown——基本上可以上下移动光标的任何命令,然后使用“revealLine”命令,光标线位置和“at”属性为“center”

有更好的办法吗?重新实现默认编辑器命令似乎效率很低

以下是我目前得到的:

“严格使用”;
将*作为vscode从“vscode”导入;
导出函数激活(上下文:vscode.ExtensionContext){
让disposable1=vscode.commands.registerCommand(“cursorUp”,()=>{
集中器();
vscode.commands.executeCommand(“游标移动”{
致:“向上”,
});
}
);
让disposable2=vscode.commands.registerCommand(“cursorDown”),()=>{
集中器();
vscode.commands.executeCommand(“游标移动”{
致:“向下”,
});
}
);
context.subscriptions.push(disposable1);
context.subscriptions.push(disposable2);
}
函数集中器(){
让currentLineNumber=vscode.window.activeTextEditor.selection.start.line;
vscode.commands.executeCommand(“revealLine”{
lineNumber:currentLineNumber,
在“中心”
});
}
导出函数deactivate(){}

当“alwaysCenter”选项启用时,扩展将实现此功能。它通过监听来工作,当光标移动时会触发。

也许您可以使用新的(v1.38)命令
editor.cursorroundinglines
。看


它需要一个数字,但如果您可以在编辑器窗口中获得可见行的数量,则将
editor.cursorroundinglines
设置为适当的中点即可。似乎您不必收听滚动事件。但是如果编辑器窗口的大小被调整,则必须更新该值。

转到文件>首选项>设置,然后在搜索栏上键入
光标
。查找光标周围的行,该行可能被默认设置为
0
。将其设置为
10
20
或任何要查看更改的行

下面是一个例子


您可以将数字设置为一个非常高的值(我使用500),并将其保持在中间。正如Mark在下面提到的,使用
编辑器。CursorAroundingLines
是最简单的解决方案。仅供参考:该插件现在已被弃用,取而代之的是@Mark的解决方案。