Làm cách nào để tự động thụt mã trong trình soạn thảo Atom?


393

Làm thế nào để bạn tự động thụt mã của mình trong trình soạn thảo Atom? Trong các trình soạn thảo khác, bạn thường có thể chọn một số mã và tự động thụt mã.

Có một phím tắt là tốt?

Câu trả lời:


664

Tôi tìm thấy tùy chọn trong menu, trong Chỉnh sửa> Dòng> Tự động thụt lề. Nó dường như không có một sơ đồ phím mặc định bị ràng buộc.

Bạn có thể thử thêm ánh xạ khóa (Atom> Mở Sơ đồ phím của bạn [trên Windows: Tệp> Cài đặt> Bàn phím> "tệp sơ đồ bàn phím của bạn"]) như thế này:

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

Nó làm việc cho tôi :)


Cho cửa sổ:

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

1
Cảm ơn bạn! Sẽ rất tuyệt nếu nó làm một lõi: select-all ngay trước đó, nhưng không có manh mối nào về cách viết kịch bản đó.
doobdargent

3
@doobdargent Tôi đã tạo một câu hỏi với câu trả lời về cách kết hợp hai lệnh thành một lệnh mới tại đây: stackoverflow.com/questions/24456995/ Lỗi
Lee

15
Bạn cũng có thể cmd + shift + pvà tìm kiếmEditor: Auto Indent
mã hóa

1
Tôi đã tìm ra một cách để liên kết phương pháp này với "Chọn tất cả" trước (và sau đó khôi phục lựa chọn ban đầu sau), để bạn có thể thực hiện tất cả trong một lần nhấn phím - xem câu trả lời của tôi dưới đây. stackoverflow.com/a/33927654/398630
BrainSlugs83

4
Đối với Ubuntu, [Chỉnh sửa> Mở Sơ đồ của bạn]. Và như ctrl-alt-llà phím tắt mặc định của Ubuntu cho màn hình khóa, hiện tại tôi đang lập bản đồ ctrl-shift-].
vusan

91

Câu trả lời được chấp nhận hoạt động, nhưng trước tiên bạn phải thực hiện "Chọn tất cả" - và tôi quá lười biếng cho việc đó.

Và hóa ra, nó không tầm thường - tôi đoán rằng tôi đã đăng bài này ở đây trong nỗ lực cứu những người có cùng chí hướng trong 30 phút để theo dõi tất cả những điều này. - Cũng lưu ý: phương pháp này khôi phục lựa chọn ban đầu khi hoàn thành (và nó diễn ra quá nhanh, thậm chí bạn không nhận thấy lựa chọn đã từng thay đổi).

1.) Trước tiên, hãy thêm một lệnh tùy chỉnh vào tập lệnh init của bạn (Tệp-> Mở Tập lệnh ban đầu của bạn, sau đó dán tập lệnh này ở dưới cùng):

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.) Liên kết "tùy chỉnh: định dạng lại" thành một khóa (Tệp-> Mở Sơ đồ của bạn, sau đó dán phần này ở dưới cùng):

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

3.) Khởi động lại Atom (tập lệnh init.coffee chỉ chạy khi nguyên tử được khởi chạy lần đầu tiên).


Hấp dẫn. Tôi không chắc chắn tôi muốn nó tự động thụt lề mọi thứ mặc dù. Tích hợp cho phép thụt lề lựa chọn. Bạn có thể tranh luận, rằng thụt đúng cách luôn luôn là một cái gì đó, cần phải có.
Zelphir Kaltstahl

2
@Zelphir Tôi thường có một keybinding để chọn thụt lề và một keybinding khác cho tất cả thụt lề. - Tôi không sử dụng thụt lề thường xuyên, nhưng thật tuyệt khi có nó khi bạn cần.
BrainSlugs83

@ BrainSlugs83 Có thể hơi bất thường: Tôi nhận thấy rằng có một vấn đề khi cố gắng tự động thụt lề ngôn ngữ, không sử dụng dấu ngoặc để đánh dấu các khối mã và cho phép xác định các hàm hoặc lớp trong các lớp khác. Biên tập viên không thể biết những gì ở cấp độ nào trong những trường hợp đó.
Zelphir Kaltstahl

2
if oldRanges != null && oldRanges[0].start.column == oldRanges[0].end.column && oldRanges[0].start.row == oldRanges[0].end.rowthêm điều kiện này vào editor.selectAll();sẽ vẫn chỉ cho phép thụt lề lựa chọn. Nếu không có lựa chọn, nó sẽ thụt vào toàn bộ tập tin.
manish_s

1
Nếu bạn muốn có một bước hoàn tác duy nhất cho toàn bộ lệnh, hãy thêm lệnh này sau khi xác định trình soạn thảo: checkpoint = editor.createCheckpoint();và điều này ở cuối:editor.groupChangesSinceCheckpoint(checkpoint);
Dan

43

Gói tự động thụt lề tồn tại để áp dụng tự động thụt lề cho toàn bộ tệp bằng phím tắt này :

ctrl+shift +i

hoặc là

cmd+shift +i

Url gói: https://atom.io/packages/auto-indent


Tôi cần một bản cập nhật - không làm việc cho tôi. Sử dụng các cuộc gọi không dùng đến API
Dean_Wilson

1
Thay vào đó, tôi đã tải xuống và cài đặt thủ công từ github.com/griiin/atom-auto-indent và dường như hoạt động ...
Dean_Wilson

Lưu ý: theo mặc định, nó sử dụng 1 tab thụt lề: /
King jester

24

Tôi thích sử dụng nguyên tử làm đẹp, CTRL+ ALT+ B(trong linux, cũng có thể trong windows) xử lý các loại định dạng tốt hơn và nó cũng có thể tùy chỉnh theo định dạng tệp.

biết thêm chi tiết tại đây: https://atom.io/packages/atom-beautify


Với twig, nó thêm một không gian cho pathchức năng để tuyến đường không thể được tìm thấy
Rodolfo Velasco

Tôi nghĩ rằng đây là giải pháp đơn giản và sạch sẽ hơn. Cảm ơn.
Alessandro

17

Bạn có thể nhanh chóng mở bảng lệnh và thực hiện nó ở đó
Cmd + Shift + pvà tìm kiếm Editor: Auto Indent:

ảnh chụp màn hình


10
Điều đó không nhanh nếu bạn là người sử dụng năng lượng :)
Jad Joubran 24/2/2016

5

Điều này làm việc cho tôi:

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

Bạn phải chọn tất cả với ctrl-a trước.



2

Nếu bạn gặp rắc rối với phím nóng, hãy thử mở Key Binding Resolver Windowvới Cmd + .. Nó sẽ hiển thị cho bạn các phím bạn đang nhấn trong thời gian thực.

Ví dụ, Cmd + Shift + 'thực sự làCmd + "


2

Trên Linux

(đã thử nghiệm trong Unfox KDE)

Có tùy chọn trong menu, bên dưới Chỉnh sửa> Dòng> Tự động thụt hoặc nhấn Cmd + Shift + p, tìm kiếm Editor: Auto Indentbằng cách nhập "ai"

Lưu ý: Trong KDE ctrl-alt-lđã được đặt toàn cầu cho "màn hình khóa" để sử dụng tốt hơn ctrl-alt-ithay thế.

Bạn có thể thêm ánh xạ khóa trong Atom:

  • Cmd + Shift + p, tìm kiếm cho "Chế độ xem cài đặt: Hiển thị bàn phím"
  • nhấp vào "tệp sơ đồ bàn phím của bạn"
  • Thêm một phần như thế này:

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

Nếu sự cố không hoạt động, đó có thể là một lý do, rằng kết thúc tệp không được nhận ra bởi Atom. Thêm hỗ trợ cho ngôn ngữ của bạn sau đó, ví dụ: "Lua" cài đặt gói "ngôn ngữ-lua".

Nếu một tệp không được công nhận cho ngôn ngữ của bạn:

  • mở ~/.atom/config.csontệp (bằng CTRL + SHIFT + p: gõ `` open config '')
  • thêm / chỉnh sửa một customFileTypesphần dưới coreví dụ như sau:

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

(Bạn tìm thấy tên phạm vi ngôn ngữ ("source.lua", "text.html.php" ...) trong cài đặt gói ngôn ngữ xem tại đây )


0

Bạn cũng có thể thử thêm một khóa phù thủy ánh xạ tự động chọn tất cả mã trong tệp và thụt lề:

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

@IB Hãy thử với 'Atom-text-Editor': 'ctrl-alt-l': 'Editor: auto-indent' Trước khi nhấn phím tắt, chọn tất cả văn bản trong tệp.
Hristian Yordanov

0

Tôi đã làm việc với một số mã Groovy, không tự động định dạng khi lưu. Những gì tôi đã làm là nhấp chuột phải vào khung mã, sau đó chọn Sửa lỗi ESLint. Điều đó cố định thụt lề của tôi.

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.