使用 TAB 在原子编辑器中跳过结束 parenthesis/bracket/quotation

Jump over end parenthesis/bracket/quotation in atom editor with TAB

在原子编辑器中,当我键入 console.log( 例如,它变成 console.log() 并且光标停留在两个括号之间。所以我必须使用 End 按钮或右箭头键跳出那里。 有没有办法改用Tab(跳出结尾parenthesis/brackets/quotation)?

如果你一直输入,那么结束的 ) 将被 Atom 的括号匹配器 'swallowed',所以你不需要按 结束.

但是,在某些情况下,Atom 的括号匹配器不会吞没按键,您无法继续键入。例如,当您输入以下代码时,在按下 ; 之后,您可能需要将光标移过右大括号(Atom 自动插入):

if (someCondition) {
    doSomething();
}

在这种情况下,您可以使用自定义命令和自定义键盘映射来向前跳转光标。方法如下...


转到文件菜单和 select 'Open Your Init Script',然后将以下代码粘贴到文件中。这定义了一个命令,可以向前移动光标,跳过单个方括号、大括号或引号。

SymbolRegex = /\s*[(){}<>[\]/'"]/
atom.commands.add 'atom-text-editor', 'custom:jump-over-symbol': (event) ->
  editor = atom.workspace.getActiveTextEditor()
  cursorMoved = false
  for cursor in editor.getCursors()
    range = cursor.getCurrentWordBufferRange(wordRegex: SymbolRegex)
    unless range.isEmpty()
      cursor.setBufferPosition(range.end)
      cursorMoved = true
  event.abortKeyBinding() unless cursorMoved

您必须关闭并重新打开 Atom 才能重新加载初始化脚本。

接下来,转到文件菜单,select 'Open Your Keymap',然后为新命令输入快捷键。您可以使用 TAB 键,但这会与 Atom 的默认键映射冲突,因此我在这里使用了 Alt+ ) 改为:

'atom-text-editor:not([mini])':
  'alt-)': 'custom:jump-over-symbol'

另一种选择是禁用 Atom 自动插入右括号。我认为您可以通过转到设置 → 包 → 括号匹配器 → 设置,然后清除选项 'Autocomplete Brackets'.

来做到这一点

我也想在 Atom 中使用它,所以我继续为它制作了一个包。 https://atom.io/packages/tab-through

crumbletown 解决方案的附加值是您可以通过包设置更改键绑定(我个人更喜欢选项卡,因此包名称)和您想要的字符,而不是必须对 init 脚本进行编辑。