【问题标题】:Jump over end parenthesis/bracket/quotation in atom editor with TAB使用 TAB 在原子编辑器中跳过括号/括号/引号
【发布时间】:2015-05-16 10:37:36
【问题描述】:

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

【问题讨论】:

  • 开箱即用会很好。在 Atom 讨论中查看 this thread

标签: tabs parentheses atom-editor


【解决方案1】:

如果你只是继续输入,那么结束的 ) 将被 Atom 的括号匹配器“吞噬”,所以你不需要按 End.

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

if (someCondition) {
    doSomething();
}

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


转到文件菜单并选择“打开您的初始化脚本”,然后将以下代码粘贴到文件中。这定义了一个可以向前移动光标、跳过单个括号、大括号或引号的命令。

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 才能重新加载初始化脚本。

接下来,转到文件菜单,选择“打开您的键盘映射”,然后输入新命令的键绑定。您可以使用 TAB 键,但这会与 Atom 的 sn-ps 的默认键映射冲突,所以这里我使用 Alt+) 代替:

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

另一个选项是禁用 Atom 自动插入右括号。我认为您可以通过转到“设置”→“包”→“括号匹配器”→“设置”并清除“自动完成括号”选项来做到这一点。

【讨论】:

  • 谢谢 - 听起来超级简单,但这也困扰着我
  • 我想知道自动键入右括号的意义何在。如果你输入 '(' 并自动得到一个 ')' 你仍然必须输入(并且已经吞下),这似乎有点毫无意义?
  • 这是我非常喜欢 Notepad++ 的一件事。另外,如果 alt-) 太尴尬,我使用 Shift+Space 作为键绑定。
  • 值得注意的是,多次输入快捷方式会跳转到后续“关闭”字符之后的位置,这很方便(就像你忘记了几个地方的分号)
  • 万一其他人遇到这种情况,上面的代码可以工作,除了最近它坏了,但只适用于parens。正则表达式中的所有其他字符都可以正常工作。我在他们的答案中安装了包@JAC 链接,效果很好(在包设置中添加了我想要的字符之后)。仍然将其映射到 Shift-space ;)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 2022-10-05
    • 2011-01-12
    • 1970-01-01
    相关资源
    最近更新 更多