为什么 modifyNumberUp 切换 add/remove 和 next/previous

Why does modifyNumberUp toggle add/remove and next/previous

注意:我实际上在 MacOS 的 RStudio 中偶然发现了这种行为,但我认为它是关于 Java/JS.

当您将光标放在数字之后时,您可以通过 OPTION + SHIFT + ARROW UP/DOWN(或 CNTRL + SHIFT + ARROW UP/DOWN windows increment/decrement ]。这个快捷方式可能会调用键绑定 modifyNumberUp / modifyNumberDown。但是,它还会切换单词对 add/removenext/previous.

  1. 这是怎么回事?它实际上是 JS 还是其他东西?
  2. 为什么会这样?目的是什么?
  3. 是否有这样定义的单词列表?

只需将以下内容粘贴到 https://ace.c9.io/ 等代码编辑器中,设置光标,然后使用快捷方式。

1
add
next

这里有一个类似的编辑器,但它的行为与您提到的不同。 RStudio & ace.c9.io 可能把这个功能单独放了,和JS本身没有关系,虽然他们可以用JS编码。原因是方便重复使用某些组合的用户。查找单词列表的更好的地方是文档,或者如果有的话,他们的论坛等。

最终,我找到了这种行为的根源。 RStudio - 和许多其他编辑器 - 请参考 Ace 编辑器(用 JS 编写)。

RStudio consumes several JavaScript libraries, including Ace (text editor) and xterm.js (terminal emulator)

RStudio Documentation

在这个编辑器中,有一个 function modifyNumber defined. In case the input is not a number, the function toggleWord is triggered. This Function uses a list of toggleWordPairs 可以在多对之间切换。它们是:

toggleWordPairs = [
  ["first", "last"],
  ["true", "false"],
  ["yes", "no"],
  ["width", "height"],
  ["top", "bottom"],
  ["right", "left"],
  ["on", "off"],
  ["x", "y"],
  ["get", "set"],
  ["max", "min"],
  ["horizontal", "vertical"],
  ["show", "hide"],
  ["add", "remove"],
  ["up", "down"],
  ["before", "after"],
  ["even", "odd"],
  ["in", "out"],
  ["inside", "outside"],
  ["next", "previous"],
  ["increase", "decrease"],
  ["attach", "detach"],
  ["&&", "||"],
  ["==", "!="]
];