Как я могу добавить emacs, например контроль вверх / вниз, в vscode? - PullRequest
0 голосов
/ 06 мая 2020

В emacs, если вы нажмете control-up или control-down, вы пропустите группу кода, а не одну строку кода. Вот пример с Control-down и | в качестве курсора

|
foo         foo
bar    ->   bar
baz         baz
            |

однако в vscode, если вы сделаете то же самое, весь экран сдвинется вверх или вниз на одну строку. Как я могу добавить emacs как прокрутку? Это основной способ перемещения по экрану. Я не нашел ни одного существующего расширения, у которого есть эта функция

1 Ответ

1 голос
/ 09 мая 2020

Это довольно близко. Для этого вам понадобится расширение. Выбрать по - он также перемещается на величину, которая может быть определена с помощью регулярного выражения.

В ваших настройках. json:

"moveby.revealType": "InCenter",

"selectby.regexes": {

  "goToEmptyLine": {
    "flags": "m",                // must use the "m" multiline flag for this regex
    "moveby": "^\\s*$\\r?\\n",   // an "empty" line, it may have spaces or tabs in it

    // "forward": "(^\\s*$\\r?\\n)",
    // "backward": "^\\s*$\\r?\\n"      
  }
}

и в ваших сочетаниях клавиш . json:

{
  "key": "ctrl+up",
  "when": "editorTextFocus",
  "command": "moveby.regex",
  "args": ["goToEmptyLine", "moveby", "prev", "start"]
},

{
  "key": "ctrl+down",
  "when": "editorTextFocus",
  "command": "moveby.regex",
  "args": ["goToEmptyLine", "moveby", "next", "start"]
},

В направлении вверх он пропускает последовательные пустые строки, но не в направлении вниз - он останавливается сразу после текста, но с большим количеством пустых строк ниже, но пропускает их, двигаясь к следующая цель вниз.

Эта последняя точка может быть исправлена ​​с помощью другого регулярного выражения (вы можете установить разные регулярные выражения для прямого и обратного). Но то, что представлено, очень близко к тому, что вы хотите.

...