在VS Code中一次性向上或向下移动多行的光标

13
注意:我已经在Google和其他SO帖子中搜索过了,但没有一个能帮助我。
我知道我们可以使用 Alt +箭头向上或向下移动。有没有一种方法可以一次移动25行?我不想按Alt+ 25次。
是否有插件或内置功能可做到这一点?
我之所以问这个问题,是因为由于VS Code中的相对行号功能,一次移动多行更容易。
我不想在keybindings.json中指定每个数字(如此处所示)。

通过您的编辑,最简单的方法就是使用“转到行/列”命令,其默认快捷键为Ctrl+G,然后输入您要跳转到的行号。可能也有一些扩展可以实现这个功能,但并不会更加“轻松”。我将使用您的编辑重新打开。除了“转到行”命令之外,没有内置的功能可以实现您所要求的操作。 - Mark
我使用相对行号。有没有办法使用相对行号跳转到某一行?例如,我在第69行,想向上跳转24行,我是必须要减去并键入45么,还是有更简单的方法(比如emacs中的ctrl+数字和箭头键)? - Sid110307
你编辑后将 Cursor 添加到标题中 - 你想将光标向上移动25行还是将一行向上移动25行(因为你提到了移动行的 Alt+箭头)? - Mark
我想移动光标。 - Sid110307
我不想一直移动十次。我想移动我选择的数量。就像emacs有Ctrl +数字和按键一样(如果我按下ctrl + 4,然后按下向下箭头,我会向下移动光标4次,或者如果我按下ctrl + 22,然后按上箭头,我会向上移动光标22次)。 - Sid110307
显示剩余6条评论
3个回答

18

为了更方便地在行块中导航光标,您可以设置一个键绑定,一次跳转10行上下(在您的keybindings.json文件中):

{
    "key": "ctrl+up",         // whatever keybinding you want
    "command": "cursorMove",
    "args": {
        "to": "up",
        "by": "line",
        "value": 10         // change this if you want
    },
    "when": "editorTextFocus"
},
{
    "key": "ctrl+down",        // whatever keybinding you want
    "command": "cursorMove",
    "args": {
        "to": "down",
        "by": "line",
        "value": 10         // change
    },
    "when": "editorTextFocus"
}

如评论中所述,这来自https://dev59.com/bFYN5IYBdhLWcg3wsZ_x#48568520,请给那个答案点赞。


0

你可以使用multi-command

就像在Photoshop中移动某些东西时,箭头会移动1个像素,Shift +箭头会移动20个像素。

箭头键没有未使用的修饰符组合,因此我们必须选择不同的键。

新的按键绑定可以上下移动10行。

{
  "key": "alt+numpad8",  // or any other key combo
  "command": "extension.multiCommand.execute",
  "args": { 
    "sequence": [
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction",
      "editor.action.moveLinesUpAction"
    ]
  },
  "when": "editorTextFocus && !editorReadonly"
},
{
  "key": "alt+numpad2",
  "command": "extension.multiCommand.execute",
  "args": { 
    "sequence": [
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction",
      "editor.action.moveLinesDownAction"
    ]
  },
  "when": "editorTextFocus && !editorReadonly"
}

也许你需要加一点延迟

  "args": { 
    "interval": 50,
    "sequence": [

我的意思是,目前这个方法可行。因为 VS Code 没有此功能/插件。 - Sid110307

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接