Перейти через конечную скобку / скобку / цитату в Редакторе atom с вкладкой

в Редакторе atom, когда я набираю console.log( например, он становится console.log() и курсор остается между двумя скобками. Поэтому я должен использовать конец кнопка или Стрелка вправо, чтобы выпрыгнуть оттуда. Есть ли способ использовать Tab вместо этого (выпрыгнуть из конечных скобок/скобок/цитаты)?

2 ответов


Если вы просто продолжаете печатать, то закрытие ) будет "проглочен" кронштейном Atom, поэтому вам не нужно нажимать конец или .

однако, есть некоторые ситуации, когда кронштейн matcher 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, чтобы перезагрузить init скрипт.

Далее перейдите в меню Файл, выберите "открыть клавиатуру" и введите привязку клавиш для новой команды. Вы можете использовать TAB ключ, но это будет конфликтовать с клавиатурой Atom по умолчанию для фрагментов, поэтому здесь я использовал Alt+) вместо:

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

другой вариант-просто отключить автоматическую вставку закрывающих скобок Atom. Я думаю, вы можете сделать это, перейдя в Настройки → пакеты → bracket-matcher → Настройки и очистка опции "автозаполнение скобок".


Я тоже хотел это в атоме, поэтому я пошел вперед и сделал пакет для него. https://atom.io/packages/tab-through

добавленная стоимость над решением crumbletown заключается в том, что вы можете изменить привязку клавиш (я лично предпочитаю вкладку, следовательно, имя пакета) и символы, которые вы хотите с помощью настроек пакета, а не вносить изменения в сценарий init.