Як зробити автоматичний відступ коду в редакторі Atom?


393

Як ви автоматично відрізаєте код у редакторі Atom? В інших редакторах зазвичай можна вибрати якийсь код і автоматично відступити його.

Чи є також комбінація клавіш?

Відповіді:


664

Я знайшов цю опцію в меню в розділі Правка> Лінії> Автовідступ. Схоже, не пов’язана карта за замовчуванням.

Ви можете спробувати додати відображення ключів (Atom> Відкрити вашу клавіатурну карту [у Windows: Файл> Налаштування> Клавіатурні вкладки> "Ваш файл клавішної карти"]), як це:

'atom-text-editor':
  'cmd-alt-l': 'editor:auto-indent'

Це працювало для мене :)


Для Windows:

'atom-text-editor':
  'ctrl-alt-l': 'editor:auto-indent'

1
Дякую! Було б добре, якби це було ядро: select-all right before, але немає підказки про те, як це скриптувати.
doobdargent

3
@doobdargent Я створив запитання з відповіддю про те, як скласти дві команди в нову команду тут: stackoverflow.com/questions/24456995/…
Лі

15
Ви також можете cmd + shift + pшукатиEditor: Auto Indent
codingninja

1
Я з'ясував спосіб спочатку зв'язати цей підхід із "Вибрати все" (а потім відновити початковий вибір після), щоб ви могли це зробити одним натисканням клавіші - дивіться мою відповідь нижче. stackoverflow.com/a/33927654/398630
BrainSlugs83

4
Для ubuntu - його [Edit> Open your Keymap]. А як ctrl-alt-lце ярлик для замовчування ubuntu за замовчуванням для екрана блокування, я зараз переглядаю карту ctrl-shift-].
vusan

91

Прийнята відповідь працює, але ви повинні робити "Вибрати все" спочатку - кожен раз - і я занадто лінивий для цього.

І виявляється, це не надто тривіально - я зрозумів, що опублікую це тут, намагаючись врятувати однодумців тих 30 хвилин, які потрібні, щоб відстежити все це. - Також зауважте: такий підхід відновлює початковий вибір, коли це робиться (і це відбувається так швидко, ви навіть не помічаєте, що вибір колись змінювався).

1.) Спочатку додайте спеціальну команду до свого сценарію init (File-> Open your Init Script, а потім вставте її внизу):

atom.commands.add 'atom-text-editor', 'custom:reformat', ->
    editor = atom.workspace.getActiveTextEditor();
    oldRanges = editor.getSelectedBufferRanges();
    editor.selectAll();
    atom.commands.dispatch(atom.views.getView(editor), 'editor:auto-indent')
    editor.setSelectedBufferRanges(oldRanges);

2.) Прив’яжіть "звичай: переформатувати" до ключа (Файл-> Відкрийте свою клавіатурну карту, а потім вставте її внизу):

'atom-text-editor':
    'ctrl-alt-d': 'custom:reformat'

3.) Перезапустіть Atom (скрипт init.coffee запускається лише при першому запуску атома).


Цікаво. Я не впевнений, що хотів би, щоб він автоматично автоматично відступив все. Вбудований дозволяє відступити вибір. Ви можете стверджувати, що правильне відступ - це завжди те, що повинно бути.
Зельфір Кальтшталь

2
@ Zelphir У мене зазвичай є одне палітурка клавіш для вибору відступу, а інше - все для відступу. - Я не використовую відступ так часто, але приємно мати його, коли це потрібно.
BrainSlugs83

@ BrainSlugs83 Можливо трохи офтопік: я помітив, що виникає проблема при спробі автоматичного введення мов відступу, які не використовують дужки для позначення блоків коду та дозволяють визначати функції чи класи в інших. Редактор не може знати, що знаходиться на якому рівні в цих випадках.
Зельфір Кальтшталь

2
if oldRanges != null && oldRanges[0].start.column == oldRanges[0].end.column && oldRanges[0].start.row == oldRanges[0].end.rowдодавши цю умову до editor.selectAll();, все одно дозволятиме відступити лише вибір. Якщо вибору немає, воно буде відступати на весь файл.
manish_s

1
Якщо ви хочете зробити один крок скасування для всієї команди, додайте це після визначення редактора: checkpoint = editor.createCheckpoint();і це наприкінці:editor.groupChangesSinceCheckpoint(checkpoint);
Dan

43

Автоматичний відступ пакета існує, щоб застосувати автовідступ до всього файлу за допомогою цих ярликів :

ctrl+ shift+i

або

cmd+ shift+i

URL-адреса пакета: https://atom.io/packages/auto-indent


потрібне оновлення, я думаю - не працює для мене. Використання застарілих викликів до API
Dean_Wilson

1
Натомість я завантажив і встановив вручну з github.com/griiin/atom-auto-indent і зараз, здається, працює ...
Dean_Wilson

Примітка: за замовчуванням використовується відступ 1 вкладки: /
King's jester

24

Я вважаю за краще використовувати фарбувати atom, CTRL+ ALT+ B(в Linux, можливо, і в Windows) також обробляє кращі формати інших типів, і це також налаштовується для кожного формату файлу.

Детальніше тут: https://atom.io/packages/atom-beautify


За допомогою гілочки вона додає простір для pathфункціонування, тому маршрут не вдалося знайти
Родольфо Веласко,

Я думаю, що це найпростіше і чистіше рішення. Дякую.
Алессандро

17

Ви можете просто швидко відкрити палітру команд і зробити це там
Cmd + Shift + pі шукати Editor: Auto Indent:

скріншот


10
Це не швидко, якщо ви користуєтесь енергією :)
Яд Джубран

5

Це працює для мене:

'atom-workspace atom-text-editor':
    'ctrl-alt-a': 'editor:auto-indent'

Ви повинні вибрати все за допомогою ctrl-a спочатку.



2

Якщо у вас є проблеми з допомогою гарячих клавіш, спробуйте відкрити Key Binding Resolver Windowз Cmd + .. Він покаже вам клавіші, які ви натискаєте в режимі реального часу.

Наприклад, Cmd + Shift + 'насправдіCmd + "


2

У Linux

(випробувано в Ununtu KDE)

У меню є параметр « Правка»> «Лінії»> «Автовідступ» або натисніть Cmd + Shift + p, шукайте Editor: Auto Indent, ввівши просто «ai»

Примітка. У KDE ctrl-alt-lвже встановлено глобальний варіант "блокування екрана", тому краще використовувати його ctrl-alt-i.

Ви можете додати ключове відображення в Atom:

  • Cmd + Shift + p, шукайте "Перегляд налаштувань: Показати сполучення ключів"
  • натисніть на "файл вашої ключової карти"
  • Додайте туди такий розділ, як цей:

     'atom-text-editor':
        'ctrl-alt-i': 'editor:auto-indent'
    

Якщо відступ не працює, це може бути причиною того, що Atom не розпізнає закінчення файлу. Додайте підтримку для своєї мови, тоді, наприклад, для "Lua" встановіть пакет "language-lua".

Якщо файл не розпізнається для вашої мови:

  • відкрити ~/.atom/config.csonфайл (CTRL + SHIFT + p: введіть `` відкрити конфігурацію '')
  • додайте / відредагуйте customFileTypesрозділ, coreнаприклад, наприклад:

    core:
      customFileTypes:
        "source.lua": [
          "conf"
        ]
        "text.html.php": [
          "thtml"
        ]
    

(Ви знайдете імена областей мов ("source.lua", "text.html.php" ...) у налаштуваннях мовного пакета, дивіться тут )


0

Ви також можете спробувати додати ключове відображення відьом автоматично, щоб вибрати весь код у файлі та відступити його:

'atom-text-editor':
  'ctrl-alt-l': 'auto-indent:apply'

@IB Спробуйте з 'atom-text-editor': 'ctrl-alt-l': 'editor: auto-indent' Перед натисканням ярлика виберіть увесь текст у файлі.
Християн Йорданов

0

Я працював над певним кодом, який не формує автоматичне форматування при збереженні. Що я зробив, це клацнути правою кнопкою миші на панелі коду, а потім вибрав ESLint Fix. Це виправляло мої відступи.

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.