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

Posted

技术标签:

【中文标题】如何在vscode中的每一行上获得光标【英文标题】:How do I get a cursor on every line in vscode 【发布时间】:2015-10-08 01:40:52 【问题描述】:

我正在尝试在大型(ish)文件上使用 vscode 的多光标功能。 文件太大,无法使用 ctrl-alt-up 或 down 单独选择每一行。在 sublime-text 中,我会选择所有内容并按下 ctrl-shift-l。 vscode中是否有类似的东西。我尝试使用正则表达式搜索 ^,但这给了我一个错误,指出“表达式匹配所有内容”。

【问题讨论】:

【参考方案1】:

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

提示:您可以使用 ctrlk,ctrls 调出键盘快捷键参考表(如中,这两个键盘组合按顺序排列)。 (对于 mac 使用 cmdk,cmds

【讨论】:

我试了一下,光标到了每一行的末尾。我一直在寻找每一行的开头。我看到了一个扩展,它允许对“行首的光标”进行键绑定,但我想知道是否可以在 vanilla VS Code 中做到这一点? @Tiffany 之后按了home 键。 这对我来说应该是显而易见的。不过还是谢谢你! home for Mac 是 fn + left 补充@eibersji 所说的内容。对于 Mac 用户 - 开始多选线。 shift + option + i 然后按两次fn + left arrow ,如果你想从开始类型fn + right arrow 到每行的末尾两次,请保持相同的选择【参考方案2】:

按住 Alt+Shift 并选择块。然后按 EndRight 按钮。 您将获得选定的单行。

我在 Windows 中使用 VSCode 1.5.3 版本。

【讨论】:

这是一个很好的解决方法,但我错过了崇高文本中的少数几件事之一,旧的 ctrl + shift + L 将光标添加到所有选定的行 @DesHorsley 我想你在找alt+shift+I @ZachB 你的传奇。谢谢! @ZachB。请比一个答案,以便我可以接受。 如果您已将多光标键更改为 ctrlcmd 而不是 alt,则此快捷键为 ctrl + shift + dragcmd + shift + drag【参考方案3】:

按住 Alt+Shift+i

按住 Home (fn+-> Mac) 表示最右边或 End 表示最左边(fn+ Mac)

【讨论】:

这个答案为我节省了很多时间。顺便说一句,你如何录制这个 gif? 在 Mac 上,我使用 gifox 制作此类 gif。 节省了大量时间。【参考方案4】:

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

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

【讨论】:

谢谢!正是我需要的:)【参考方案5】:

实线与显示线

首先我们要了解Real LinesDisplay Lines的区别,才能完全理解问题的答案。

启用自动换行时,超出窗口宽度的每一行文本都将显示为换行。因此,文件中的单行可能会显示为多行。

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

每个显示行开头的光标:

光标在每行的开头:

问题解答

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

按住 AltShift 并选择文本块。

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

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

HomeHomeHome两次)将光标放在每条实线的开头。

EndEndEnd两次)将光标放在每条实线的末尾。

请理解 AltShiftI 将光标放在每条实线的末尾。

【讨论】:

【参考方案6】:

安装扩展Sublime Commands。

[Sublime Commands] 将 Sublime Text 中的命令添加到 VS Code:转置、将所选内容扩展到行、拆分为行、加入行。

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


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

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

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

在 Sublime 中,当您分成几行时,光标会出现在每行的末尾(与 VS Code 中的例外情况相同)并且选择在每一行上划分并“给予”同一行。

【讨论】:

请注意,OP 正在询问如何在 vscode 上执行任务,因为他们已经知道它是如何在 sublime 中完成的【参考方案7】:

我有同样的问题,我习惯于在 Visual Studio 中使用 Alt + 拖动来执行“框选择”,但它在代码中不起作用。

现在似乎不可能与选择每一行不同。

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

From visual studio uservoice forums:

我们计划为 Visual Studio Code 提供插件支持。感谢您的关注,并在接下来的几周内查看我们的博客中的更多详细信息。 http://blogs.msdn.com/b/vscode.

对于预览,我们正在寻找正是这种类型的反馈。坚持下去。

Sean McBreen – VS Code 团队成员

【讨论】:

以上是关于如何在vscode中的每一行上获得光标的主要内容,如果未能解决你的问题,请参考以下文章

VScode使用

如何更改 vscode 的 VIM 扩展中的光标键

我如何将像上/下控制之类的emacs添加到vscode?

如何在 VS Code 中的行首或行尾获取多个光标? [复制]

如何在 django 管理页面中的每一行的列表页面上放置一个按钮

如何在unix中的每一行末尾添加文本