Định dạng lại Intellij trên tập tin lưu


353

Tôi nhớ đã thấy trong IntelliJ hoặc Eclipse cài đặt để định dạng lại các tệp (dọn dẹp) bất cứ khi nào chúng được lưu. Làm cách nào để tìm thấy nó (không tìm thấy nó trong cài đặt)

Câu trả lời:


236

Tôi đề nghị các plugin hành động lưu . Nó cũng hỗ trợ tối ưu hóa nhập khẩu và sắp xếp lại mã.

Hoạt động tốt khi kết hợp với plugin định dạng nhật thực .

Tìm kiếm và kích hoạt plugin:

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

Cấu hình nó:

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

Chỉnh sửa: có vẻ như đây là phiên bản gần đây của Intellij, plugin hành động lưu được kích hoạt bởi tính năng lưu Intellij tự động. Điều này có thể khá khó chịu khi nó nhấn trong khi vẫn chỉnh sửa.

Vấn đề github này của plugin cung cấp một gợi ý cho một số giải pháp có thể:

https://github.com/dubreuia/intellij-plugin-save-ilities/issues/63

Tôi thực sự đã cố gắng gán định dạng lại cho Ctrl+ Svà nó hoạt động tốt - việc tiết kiệm được thực hiện tự động ngay bây giờ.


Tôi đã sử dụng nhưng sau khi cập nhật lên Android Studio 1.5.1, tôi không thể tìm thấy nó nữa.
r1k0

1
Plugin đã được cập nhật lần cuối ngày 10.02.2016 và nói rằng Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).tôi không biết Phiên bản nào của IntelliJ Android Studio dựa trên. Bạm có thể kiểm tra cái này không?
Benjamin Peter

Lên đỉnh bạn đi!
Nick Grealy

Hầu như làm việc cho tôi. Thật không may, "mã định dạng lại" sẽ chỉ thực hiện một tập hợp con của những điều mà "Mã> Mã định dạng lại" thực hiện (ít nhất là đối với mã Scala). Tại sao vậy?
Thilo

Đã thử điều này nhưng IntelliJ tiết kiệm đến thường xuyên. Tổ chức nhập khẩu bật lên bao giờ 2-3 tổ hợp phím.
Ashley

443

Giải pháp này hiệu quả hơn với tôi:

  1. Tạo một macro (Tôi đã sử dụng Sắp xếp nhập khẩu, Mã định dạng, Lưu tất cả)
  2. Chỉ định cho nó một tổ hợp phím (Tôi overrode Ctrl+ S)

Lưu ý: Bạn sẽ phải đánh dấu vào ô "Không hiển thị lại thông báo này" lần đầu tiên đối với hàng nhập có tổ chức, nhưng nó sẽ hoạt động như mong đợi sau đó.

Từng bước cho IntelliJ 10.0:

  1. Mã -> "Tối ưu hóa nhập khẩu ...", nếu hộp thoại xuất hiện, hãy chọn hộp có nội dung "Không hiển thị lại thông báo này.", Sau đó nhấp vào "Chạy".
  2. Công cụ -> "Bắt đầu ghi macro"
  3. Mã -> "Tối ưu hóa nhập khẩu ..."
  4. Mã -> "Mã cải cách ..."
  5. Tệp -> "Lưu tất cả"
  6. Công cụ -> "Dừng ghi macro"
  7. Đặt tên cho macro (một cái gì đó như "định dạng lưu")
  8. Trong Tệp -> Cài đặt -> Sơ đồ bàn phím, chọn macro của bạn nằm ở "Menu chính -> Công cụ ->" định dạng lưu "
  9. Nhấp vào "Thêm bàn phím tắt", sau đó thực hiện tổ hợp phím bạn muốn. Nếu bạn chọn Ctrl+ Snhư tôi, nó sẽ hỏi bạn phải làm gì với phím tắt Ctrl+ trước đó S. Loại bỏ nó. Bạn luôn có thể gán lại nó sau nếu bạn muốn.
  10. Thưởng thức!

Đối với IntelliJ 11, thay thế

bước 2. với: Chỉnh sửa -> Macro -> "Bắt đầu ghi macro"
bước 6. với: Chỉnh sửa -> Macro -> "Dừng ghi macro"

Mọi thứ khác vẫn giữ nguyên.

IntelliJ 12

8. Tùy chọn chứa các cài đặt Keymap. Sử dụng trường đầu vào để lọc nội dung, như trong ảnh chụp màn hình.

Intellij / Preferences / Keymap / Macros


4
Trong IntelliJ 11: 1: Bắt đầu ghi macro: Chỉnh sửa -> Macro -> Bắt đầu ghi macro. 2: Làm theo hướng dẫn ở trên. 3: Dừng ghi macro: Chỉnh sửa -> Macro -> Dừng ghi macro. Trong Keymap, macro được lưu vào thư mục Macros thay vì Menu chính -> thư mục Công cụ.
Markus K

3
Nếu bạn hài lòng với cách mã được định dạng lại thì phương pháp này hoạt động tốt hơn nhiều nếu bạn chọn định dạng lại tất cả mã trong dự án và lưu tất cả. Mặt khác, khi bạn thực hiện chỉnh sửa nhiều tệp, chỉ một hoạt động được định dạng lại trước khi tất cả các sửa đổi được lưu.
Drew Noakes

86

Dưới đây là câu trả lời của Neil được cập nhật.

IntelliJ 13 bước:

  1. Mã -> Mã định dạng lại nhập mô tả hình ảnh ở đây
  2. Chỉnh sửa -> Macro -> Bắt đầu ghi Macro
  3. Mã -> Mã định dạng lại
  4. Tệp -> Lưu tất cả
  5. Chỉnh sửa -> Macro -> Dừng ghi macro
  6. Đặt tên cho macro (một cái gì đó như "định dạng lưu")
  7. Tệp -> Cài đặt -> Sơ đồ bàn phím
  8. Nhấp chuột phải vào macro. Thêm bàn phím tắt. Đặt phím tắt thành Control + S. nhập mô tả hình ảnh ở đây
  9. IntelliJ sẽ thông báo cho bạn về một cuộc xung đột phím nóng. Chọn "xóa" để xóa các bài tập khác.

Nhưng điều này loại bỏ hành động "Lưu". Những gì người đăng đã thấy là trong Eclipse, chúng ta có tùy chọn định dạng mã và tổ chức nhập tự động khi một tệp được lưu. Tùy chọn này là (tôi giả sử) vắng mặt trong ý tưởng IntelliJ. Đây là một công việc xung quanh liên quan đến việc ràng buộc khóa lưu vào khóa định dạng lại.
Ganesh Krishnan

3
Tôi không đồng ý, @GaneshKrish Nam. Cách giải quyết này không liên kết "khóa lưu" với "khóa định dạng lại". Nó liên kết nó với một macro "định dạng lại lưu", đó chính xác là những gì được OP yêu cầu và những gì được triển khai trong Eclipse, nhưng được kích hoạt bằng một hộp kiểm.
dbm

1
Tôi nghĩ có lẽ đối với bước 1, bạn có nghĩa là "Mã -> Hiển thị hộp thoại định dạng lại tệp" để đặt mặc định cho hộp thoại định dạng lại tệp (để chúng được đặt chính xác cho bước 3 - Mã định dạng lại)?
studgeek

61

Tôi đặt nó để tự động dọn dẹp khi nhận phòng, thường là đủ tốt cho tôi. Nếu một cái gì đó quá xấu, tôi sẽ nhấn phím tắt ( Ctrl- Alt- L, Return). Và tôi thấy họ có một tùy chọn để tự động định dạng mã đã dán, mặc dù tôi chưa bao giờ sử dụng mã đó.


12
Bạn cũng có thể sử dụng Ctrl-Shift-F để định dạng. Điều đó hoạt động tốt hơn đối với tôi, vì Ctrl-Alt-L là lệnh khóa màn hình trên Ubuntu.
Jason McVetta

22
Ctrl + Shift + F là Tìm trong đường dẫn .
xếp chồng

5
Làm thế nào để bạn thiết lập một cái gì đó để xảy ra khi nhận phòng?
cướp

2
Nó có hoạt động không nếu bạn không đăng ký bằng intelliJ tức là tôi nghĩ nó sẽ không hoạt động nếu bạn đăng nhập bằng công cụ dòng lệnh.

Làm thế nào mà trả lời câu hỏi?
Ben

19

Ctrl+ Alt+ Llà tệp định dạng (bao gồm hai tệp bên dưới)

Ctrl+ Alt+ Olà tối ưu hóa nhập khẩu

Ctrl+ Alt+I sẽ sửa lỗi thụt lề trên một dòng cụ thể

Tôi thường chạy Ctrl+ Alt+ Lmột vài lần trước khi thực hiện công việc của mình. Tôi muốn thay vì tự động dọn dẹp / định dạng lại lệnh của tôi thay vì tự động.


Thay Ctrl bằng Cmd cho Mac
Gerard

12
Cẩn thận trên Linux như Ctrl + Alt + Lthường là Khóa phiên. Bạn cần phải ánh xạ lại một trong các chức năng.
không thể chia sẻ

18

Nếu bạn có Cộng đồng ý tưởng InteliJ 2018.2, các bước sẽ như sau:

  1. Trong menu trên cùng, bạn nhấp: Chỉnh sửa> Macro> Bắt đầu Bản ghi Macro (bạn sẽ thấy một cửa sổ góc dưới bên phải màn hình của bạn xác nhận rằng macro đang được ghi)
  2. Trong menu trên cùng, bạn nhấp: Mã> Mã định dạng lại (bạn sẽ thấy tùy chọn được chọn ở góc dưới bên phải)
  3. Trong menu trên cùng, bạn nhấp: Mã> Tối ưu hóa Nhập khẩu (bạn sẽ thấy tùy chọn được chọn ở góc dưới bên phải)
  4. Trong menu trên cùng, bạn bấm vào: Tệp> Lưu tất cả
  5. Trong menu trên cùng, bạn bấm: Chỉnh sửa> Macro> Dừng ghi macro
  6. Bạn đặt tên cho macro: "Mã định dạng, Sắp xếp nhập khẩu, Lưu"
  7. Trong menu trên cùng, bạn đồng hồ: Tệp> Cài đặt. Trong cửa sổ cài đặt, bạn bấm Keymap
  8. Trong hộp tìm kiếm bên phải bạn tìm kiếm "lưu". Bạn sẽ tìm thấy Lưu tất cả (Ctrl + S). Nhấp chuột phải vào nó và chọn "Xóa Ctrl + S"
  9. Xóa văn bản tìm kiếm của bạn khỏi hộp, nhấn vào nút Thu gọn tất cả (Nút thứ hai từ trên cùng bên trái)
  10. Chuyển đến macro, nhấn vào mũi tên để mở rộng macro, tìm macro đã lưu và nhấp chuột phải vào macro. Chọn Thêm Phím tắt, và nhấn Ctrl + S và được.

Khởi động lại IDE của bạn và thử nó.

Tôi biết những gì bạn sẽ nói, những người trước tôi đã viết điều tương tự. Nhưng tôi đã nhầm lẫn khi sử dụng các bước trên bài đăng này và tôi muốn viết một phiên bản ngu ngốc cho những người có phiên bản IDE mới nhất.


13

Nếu bạn đang phát triển trong Flutter, có một tùy chọn thử nghiệm mới kể từ ngày 5/1/2018 cho phép bạn định dạng mã khi lưu. Cài đặt


9

Tôi cố gắng sửa lại Reformat code...hành động thành Ctrl- S, thay thế ràng buộc mặc định cho Save All.

Thoạt nghe có vẻ điên rồ, nhưng IntelliJ dường như tiết kiệm hầu như mọi hành động: chạy thử nghiệm, xây dựng dự án, ngay cả khi đóng tab trình soạn thảo. Tôi có thói quen đánh Ctrl- Skhá thường xuyên, vì vậy điều này thực sự hoạt động khá tốt đối với tôi. Nó chắc chắn dễ gõ hơn liên kết mặc định để định dạng lại.


5

IntellIJ 14 && 15: Khi bạn đang kiểm tra mã trong hộp thoại Cam kết thay đổi, đánh dấu vào hộp kiểm Định dạng lại mã, sau đó IntelliJ sẽ định dạng lại tất cả mã mà bạn đang kiểm tra.

Nguồn: www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours


2
Tôi đã nói gì ở đây
Tushar

4
Coi chừng việc quảng bá quá mức một tài nguyên có thể bị cộng đồng hiểu là thư rác. Bạn nên đăng câu trả lời hay, có liên quan và nếu một hoặc hai người đề cập đến khóa học này, điều đó tốt - nhưng nếu bạn đăng nó trong mỗi câu trả lời, nó sẽ bị gắn cờ và bị xóa.
ArtOfCode

2

Tôi đã nghĩ rằng có một cái gì đó như thế trong IntelliJ, nhưng tôi không thể tìm thấy nó. Việc dọn dẹp duy nhất xảy ra khi lưu là khoảng trắng ở cuối dòng bị xóa. Tôi nghĩ rằng tôi phải xác định hành vi đó tại một thời điểm, nhưng tôi không thấy bất cứ điều gì liên quan tại thời điểm này.


2

Nếu đó là về Prettier, chỉ cần sử dụng Trình xem tệp:

tài liệu tham khảo => Công cụ => Trình theo dõi tệp => nhấp + để thêm trình theo dõi mới => Prettier

https://prettier.io/docs/en/webstorm.html#rucky-prettier-on-save-USE-file-watcher


2
Prettier là tuyệt vời nhưng nó không hoạt động cho các ngôn ngữ / định dạng bên ngoài web. Nó sẽ định dạng js, ts, css, json, v.v. nhưng vô dụng đối với C, C #, Java, Python, v.v. - ngoại trừ một số lần thử đầu tiên vào plugin.
Mattia
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.