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

fei*_*ief 74 visual-studio-code

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

Zac*_*chB 146

命令Selection/Add Cursors to Line Ends altshifti将光标放在当前选择的每一行上.

提示:您可以拉起使用键盘快捷键参考表ctrlk,ctrls(如,在序列这两个键盘连击).

  • @Tiffany之后点击了'home`键. (12认同)
  • Mac 的“home”是“fn”+“left” (5认同)
  • 补充@eibersji所说的内容。对于 Mac 用户 - 开始多选行。```shift + option + i ``` 然后按 ```fn + 向左箭头 ``` 两次,如果您想从开始输入 ```fn + 右箭头到每一行的末尾,请保持相同的选择``两次 (4认同)
  • 这对我来说应该是显而易见的.但是,谢谢你! (3认同)
  • 当我尝试时,光标移动到每一行的末尾。我正在寻找每一行的开头。我看到了一个扩展,它允许对“行首的光标”进行键绑定,但我想知道是否可以在 vanilla VS Code 中做到这一点? (2认同)

snr*_*snr 21

  • Hold Alt+Shift+i

  • Hold Home (fn+-> Mac) for right-most or End for left most(fn+<- Mac)

在此处输入图片说明


小智 16

按住Alt+ Shift并选择块.然后按EndRight按钮.您可以选择单独的行.

我在Windows中使用VSCode 1.5.3版本.

  • @DesHorsley我觉得你在找'alt + shift + I`. (10认同)
  • 这是一个很好的解决方法,但是我从崇高文本中遗漏的少数几件事之一,旧的`ctrl + shift + L`为所有选定的行添加游标 (4认同)
  • @ZachB你的传奇.谢谢! (3认同)

blu*_*ray 9

真实线与显示线

首先,我们必须了解真实线显示线之间的区别,才能完全理解问题的答案。

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

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

光标位于每条显示行的开头:

显示线

光标位于每行实数行的开头:

在此输入图像描述

回答问题

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

按住AltShift并选择文本块。

Home将光标置于每个显示行的开头。

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

HomeHome(Home两次) 将光标置于每条实线的开头。

EndEnd(End两次) 将光标置于每条实线的末尾。

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

特例:

如果每行的开头都有制表符,那么要将光标放在每个实行的开头,我们必须使用:EndEndHomeHome

如果行之间有空行,那么在使用命令之前,我们可以使用:Remove empty lines: in Selection它带有删除空行扩展。

这里提到的针对这个特定场景的解决方案有些棘手且不确定。因此,我使用select-by 扩展来解决这个问题。我使用的键绑定是:

{
    "key": "ctrl+alt+left",
    "command": "moveby.calculation",
    "when": "editorHasMultipleSelections",
    "args": {
        "charNrEx": "0"
    }
},
{
    "key": "ctrl+alt+right",
    "command": "moveby.calculation",
    "when": "editorHasMultipleSelections",
    "args": {
        "charNrEx": "currentLine.length"
    }
},
Run Code Online (Sandbox Code Playgroud)


nik*_*eee 7

这个功能其实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'