在 VS Code/R 中选择代码块或段落

per*_*one 4 r visual-studio-code

我想通过快捷方式选择 R 代码块。

目前我正在使用CTRL+L选择当前行并CTRL+ALT+UP/DOWN扩大选择范围。然而,这很麻烦。

有没有办法告诉 VS Code 选择段落中的所有内容?

例子:

library(dplyr)

starwars %>% 
  filter(species == "Droid")

starwars %>% 
  |mutate(name, bmi = mass / ((height / 100)  ^ 2)) %>% # <- The cursor is where "|" is for example
  select(name:mass, bmi)

Run Code Online (Sandbox Code Playgroud)

在此示例中应选择以下内容:

starwars %>% 
  mutate(name, bmi = mass / ((height / 100)  ^ 2)) %>%
  select(name:mass, bmi)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 5

这可以借助扩展来完成。例如,请参阅“选择依据”扩展,您可以在其中指定键绑定中的开始和结束正则表达式。按键绑定:

{
  "key": "alt+q",               // whatever you want
  "command": "selectby.regex",
  "args": {
    "flags": "m",
    "backward": "^\\w",        // since your block starts flush left apparently
    "forward": "\n^$",         // stop at first empty line
    "forwardInclude": false,
    "backwardInclude": true
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我写的:Jump and Select。使用此键绑定:

{
  "key": "alt+q",                          // whatever keybinding you want 
  "command": "jump-and-select.jumpBackwardSelect",
  "args": {
    "text": "^\\w",
    "putCursorBackward": "beforeCharacter",
    "restrictSearch": "document"
  }
}
Run Code Online (Sandbox Code Playgroud)

这应该从光标选择回到第一个空行(给出结构良好的代码示例)。

从光标处向后跳转并选择


要从任何地方选择块,您还需要一个宏扩展,例如多命令和此键绑定:

{
  "key": "alt+q",
  "command": "extension.multiCommand.execute",
  "args": {
    // "interval": 200,
    "sequence": [
      {
        "command": "jump-and-select.jumpBackward",
        "args": {
          "text": "^\\w",
          "putCursorBackward": "beforeCharacter",
        }
      },
      {
        "command": "jump-and-select.jumpForwardSelect",
        "args": {
          "text": "^[^\\w]$\n?",
          "putCursorBackward": "afterCharacter",
        }
      }
    ]
  },
  "when": "editorFocus"
},
Run Code Online (Sandbox Code Playgroud)

选择整个块:r语言