Tabs 在atom编辑器中使用TAB键跳过结束括号/括号/引号

Tabs 在atom编辑器中使用TAB键跳过结束括号/括号/引号,tabs,parentheses,atom-editor,Tabs,Parentheses,Atom Editor,在atom编辑器中,当我键入console.log(例如,它变成console.log(),光标停留在两个括号之间。因此我必须使用结束按钮或右箭头键跳出。 有没有办法改用Tab键(跳出结束括号/方括号/引号)?如果你继续键入,那么结束键)将被Atom的方括号匹配器“吞没”,因此你不需要按End或→. 然而,在某些情况下,Atom的括号匹配器不会吞掉按键,并且您不能继续键入。例如,在按后输入以下代码时;您可能需要将光标移过右大括号(Atom会自动插入该大括号): 在这种情况下,可以使用自定义命令和

在atom编辑器中,当我键入
console.log(
例如,它变成
console.log()
,光标停留在两个括号之间。因此我必须使用结束按钮或右箭头键跳出。
有没有办法改用Tab键(跳出结束括号/方括号/引号)?

如果你继续键入,那么结束键)将被Atom的方括号匹配器“吞没”,因此你不需要按End或→.

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

在这种情况下,可以使用自定义命令和自定义键映射向前跳转光标。以下是如何


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

SymbolRegex=/\s*[(){}[\]/']/
atom.commands.add“atom文本编辑器”,“自定义:跳过符号”:(事件)->
editor=atom.workspace.getActiveTextEditor()
cursorMoved=false
对于编辑器中的游标。getCursors()
range=cursor.getCurrentWordBufferRange(wordRegex:SymbolRegex)
除非是range.isEmpty()
光标.setBufferPosition(范围.end)
cursorMoved=true
事件。abortKeyBinding()除非游标已移动
必须关闭并重新打开Atom才能重新加载init脚本

接下来,转到“文件”菜单,选择“打开您的键映射”,并为新命令输入一个键绑定。您可以使用TAB键,但这会与Atom默认的代码段键映射冲突,因此我在这里使用了Alt+:

'atom-text-editor:not([mini]):
“alt-”:“自定义:跳过符号”


另一个选项是禁用Atom自动插入右括号。我想你可以通过进入“设置”来做到这一点→ 包装→ 支架匹配器→ 设置,并清除“自动完成括号”选项。

我也想在Atom中使用它,所以我继续为它制作了一个包


与Crambletown的解决方案相比,它的附加值是您可以更改键绑定(我个人更喜欢tab,因此使用包名)和通过软件包设置需要的字符,而不是必须对初始化脚本进行编辑。

谢谢-听起来非常基本,但这也让我感到困扰。我想知道自动键入右括号的意义何在。如果您键入“(”并自动获得“)”,您仍然必须键入(并已吞咽),有些东西似乎没有意义?这是记事本++中我非常喜欢的一件事。另外,如果alt-)太笨拙,我会使用Shift+空格作为键绑定。值得注意的是,多次输入快捷键会在随后的“结束”字符后跳转到该位置,这可能很方便(例如,如果您忘记了几个分号)如果其他人遇到这种情况,上面的代码可以工作,除了最近它坏了,但只适用于paren。regex中的所有其他字符都可以工作。我在他们的答案中安装了package@JAC链接,它工作得很好(在包设置中添加了我想要的字符后)。仍然将其映射到移位空间;)如果能将其开箱即用,那就太好了。看看Atom讨论。
if (someCondition) {
    doSomething();
}