如何在 vscode 中的每一行上获取光标

How do I get a cursor on every line in vscode

我正在尝试在一个大文件上使用 vscode 的多光标功能。 文件太大 select 每行都可以用 ctrl-alt-up 或 down。在 sublime-text 中我会 select 一切然后按下 ctrl-shift-l。 vscode中有没有类似的东西。我试过使用正则表达式搜索 ^,但这给了我一个错误 "Expression matches everything"。

我有同样的问题,我习惯于在 visual studio 中按住 Alt + 拖动来执行 'box selections',但它在代码中不起作用。

现在似乎不可能采用与选择每一行不同的方法。

但是插件应该很快就会得到支持,所以如果微软没有直接实现的话,我们可能会看到一个插件。

From visual studio uservoice forums:

We plan to offer plugin support for Visual Studio Code. Thank you for your interests and look for more details in our blog in the coming weeks. http://blogs.msdn.com/b/vscode.

For the preview we are looking for exactly this type of feedback. Keep it coming.

Sean McBreen – VS Code Team Member

按住 Alt+Shift 和 select 块。然后按结束按钮。 您得到了 select 行。

我在 Windows 中使用版本 VSCode 1.5.3。

命令选择/添加光标到行尾altshifti 会将光标放在当前选择的每一行上。 (对于 mac 使用 optshifti)

提示:您可以使用 ctrlk,ctrl 拉出键盘快捷键参考 sheet s(如,这两个键盘组合顺序)。 (对于 mac 使用 cmdk,cmds)

这个功能实际上在许多编辑器中被称为split selection into lines

  • Sublime Text 使用默认键绑定,CTRLSHIFT L
  • VSCode 使用 A​​LTSHIFTI
  • 对于 Atom,您实际上需要将您的键盘映射编辑成这样
'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-shift-L': 'editor:split-selections-into-lines' 

安装扩展 Sublime Commands

[Sublime Commands] Adds commands from Sublime Text to VS Code: Transpose, Expand Selection to Line, Split into Lines, Join Lines.

(不要忘记将扩展详细信息页面中的键绑定添加到您的 keybindings.json


VS Code 不是已经有了“拆分成行”命令吗?

是的,是的。但是它和Sublime中的不同。

在 VS Code 中,当您拆分成多行时,您的选择将被取消选择,并且光标会出现在所选行的末尾(光标出现在选择末尾的最后一行除外)。

在 Sublime 中,当您拆分成行时,每行的末尾都会出现一个光标(与 VS Code 中的例外情况相同) 所选内容在每一行上进行拆分和“给”到同一行。

  • 按住Alt+Shift+i

  • 按住首页(fn+->Mac) 最右边或 End 最左边(fn+<- Mac)

真实线条与显示线条

首先我们要明白真实线显示线的区别才能完全理解问题的答案。

启用自动换行后,每行超过window宽度的文本将显示为换行。因此,文件中的一行可能在显示器上由多行表示。

区分真实行和显示行的最简单方法是查看文本编辑器左边距中的行号。以数字开头的行对应于实际行,可能跨越一个或多个显示行。每次换行以适合 window,它 开始时没有行号

光标在每个显示行的开头:

光标在每个实际行的开头:

问题的答案

现在我们知道了显示线和真实线之间的区别,我们现在可以正确回答实际问题了。

按住 AltShift 和 select 文本块。

Home 将光标放在每个显示行的开头。

End 将光标置于每个显示行的末尾。

HomeHomeHome两次)将光标放在每个实线.

EndEndEnd两次)将光标放在每个实线.

请理解 AltShiftI 将光标放在每个实线的末尾.