ChatGPT解决这个技术问题 Extra ChatGPT

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

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


j
jasonleonhard

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

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


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

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

我在 Windows 中使用版本 VSCode 1.5.3。


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

按住 Alt+Shift+i

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

https://i.stack.imgur.com/VA4j9.gif


这个答案为我节省了很多时间。顺便说一句,你如何录制这个 gif?
在 Mac 上,我使用 gifox 来制作此类 gif。
节省了大量时间。
n
nikhilweee

此功能在许多编辑器中实际上称为 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'

谢谢!正是我需要的:)
A
Ahmad Ismail

实线与显示线

首先我们要了解实线和显示线的区别,才能完全理解问题的答案。

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

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

每个显示行开头的光标:

https://i.stack.imgur.com/auzkV.png

每条实线开头的光标:

https://i.stack.imgur.com/YFAST.png

回答问题

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

按住 AltShift 并选择文本块。

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

按 End 将光标放在每个显示行的末尾。

按 HomeHome(Home 两次)将光标放在每条实线的开头。

按 EndEnd(End 两次)将光标放在每条实线的末尾。

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


C
Community

安装扩展 Sublime 命令。

[Sublime 命令] 将 Sublime Text 中的命令添加到 VS Code:转置、将选择扩展为行、拆分为行、连接行。

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

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

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

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

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


请注意,OP 正在询问如何在 vscode 上执行任务,因为他们已经知道它是如何在 sublime 中完成的
C
Community

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

现在似乎不可能通过选择每一行来做不同的事情。

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

From visual studio uservoice forums:

我们计划为 Visual Studio Code 提供插件支持。感谢您的关注,并在接下来的几周内查看我们的博客中的更多详细信息。 http://blogs.msdn.com/b/vscode。对于预览,我们正在寻找正是这种类型的反馈。保持它来。 Sean McBreen – VS Code 团队成员