首页 > 解决方案 > 为什么 modifyNumberUp 切换添加/删除和下一个/上一个

问题描述

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

当您将光标放在数字后面时,您可以通过 OPTION + SHIFT + ARROW UP/DOWN(或 CNTRL + SHIFT + ARROW UP/DOWN 用于 Windows。此快捷方式可能会调用键绑定modifyNumberUp/ modifyNumberDown。但是,它也会切换单词对add/removenext/previous

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

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

1
add
next

标签: javascriptiderstudioeditorace-editor

解决方案


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

RStudio 使用多个 JavaScript 库,包括 Ace(文本编辑器)和 xterm.js(终端仿真器)

RStudio 文档

在这个编辑器中,定义了一个函数modifyNumber。如果输入不是数字,则触发该函数。toggleWord此函数使用列表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"],
  ["&&", "||"],
  ["==", "!="]
];

推荐阅读