Làm cách nào để thay đổi Eclipse để sử dụng khoảng trắng thay vì các tab?


895

Theo mặc định, thụt lề Eclipse với một ký tự tab cứng. Làm thế nào để tôi thay đổi nó vào không gian?


43
@ i3ensays vì các tab được trình bày khác nhau trong các trình soạn thảo hoặc môi trường khác nhau trong khi các không gian luôn nhất quán.
mmmdreg

29
@mmmdreg chính xác quan điểm của tôi. không gian cứng nhắc và lãng phí. Sử dụng các tab mang lại sự tự do cho người xem để định cấu hình trình chỉnh sửa của họ như mong muốn. Tôi thích các tab của mình hiển thị dưới dạng 2 khoảng trắng, đồng nghiệp của tôi 4. Điều này là không thể nếu không sử dụng các tab. Đồng nghiệp của tôi ở đây và tôi, chiến đấu không gian khi mỗi định dạng trong trình soạn thảo tương ứng của chúng tôi; các tab không phải là một vấn đề; đây là lý do tại sao chúng được phát minh (tôi nghi ngờ).
i3ensays

15
@ i3ensays amen, anh ạ! Tôi đã cố gắng làm cho mọi người hiểu khái niệm này trong hơn 10 năm ( rizzoweb.com/java/tabs-vs-spaces.html ). Điều thực sự đáng báo động là, với tư cách là lập trình viên, bạn sẽ nghĩ mọi người sẽ hiểu khái niệm trừu tượng (một tab là sự trừu tượng của việc thụt mã, trong khi một số khoảng trắng cố định là một triển khai được mã hóa cứng) - nhưng than ôi, có vẻ như vậy mà nhiều lập trình viên không thể thấy sự trừu tượng ở đây.
E-Riz

28
@ i3ensays Nhóm của bạn nên có một tiêu chuẩn mã hóa nêu rõ cách thức mã được định dạng. Điều này sẽ tiết kiệm thời gian bằng cách ngăn chặn các trận chiến mà bạn đề cập. Bạn nên chấp nhận một asap nhưng tiêu chuẩn đó sẽ chắc chắn 100% rằng các tab sẽ không bao giờ được sử dụng bởi vì cuộc chiến thần thánh này đã được chiến thắng bởi "người không gian" từ lâu vì vậy một tiêu chuẩn sẽ không giúp bạn. Ngoài vấn đề liên kết, một trong những lý do lớn nhất cho không gian là các công cụ kiểm soát sửa đổi và người đánh giá mã sẽ không phải đối phó với vấn đề này. Tôi bắt đầu về phía bạn trong trận chiến này 20 năm trước nhưng cuối cùng cũng học được cách nắm lấy không gian.
Cú đêm

12
Lý do là mọi người chắc chắn sẽ kết thúc với sự kết hợp của các tab và khoảng trắng và trong một số trình soạn thảo, mã sẽ không hiển thị chính xác. Nếu mọi người chỉ sử dụng không gian thì đây không bao giờ là vấn đề.
Eamonn McEvoy

Câu trả lời:


1239

Trình chỉnh sửa Java

  1. Nhấp vào Cửa sổ » Tùy chọn
  2. Mở rộng Java » Kiểu mã
  3. Nhấp vào Định dạng
  4. Nhấp vào nút Chỉnh sửa
  5. Nhấp vào tab thụt lề
  6. Trong Cài đặt chung , đặt chính sách Tab thành:Spaces only
  7. Nhấp vào OK nauseam để áp dụng các thay đổi.

[ Lưu ý : Nếu cần lưu hồ sơ với tên mới làm hồ sơ mặc định có thể được ghi đè.]

Trình chỉnh sửa văn bản mặc định

Trước phiên bản 3.6:

Window->Preferences->Editors->Text Editors->Insert spaces for tabs

Phiên bản 3.6 trở lên:

  1. Nhấp vào Cửa sổ » Tùy chọn
  2. Mở rộng chung » Biên tập viên
  3. Nhấp vào Trình chỉnh sửa văn bản
  4. Kiểm tra Chèn khoảng trắng cho các tab
  5. Nhấp vào OK nauseam để áp dụng các thay đổi.

Lưu ý rằng trình soạn thảo văn bản mặc định được sử dụng làm cơ sở cho nhiều trình soạn thảo không phải Java trong Eclipse. Thật đáng ngạc nhiên khi cài đặt này không có sẵn cho đến 3.3.

C / C ++

  1. Nhấp vào Cửa sổ » Tùy chọn
  2. Mở rộng C / C ++ » Kiểu mã
  3. Nhấp chuột Định dạng
  4. Nhấp vào nút Mới để tạo hồ sơ mới, sau đó OK để tiếp tục
  5. Nhấp vào tab thụt lề
  6. Trong Cài đặt chung , đặt chính sách Tab thành:Spaces only
  7. Nhấp vào OK nauseam để áp dụng các thay đổi.

HTML

  1. Nhấp vào Cửa sổ » Tùy chọn
  2. Mở rộng Web » Tệp HTML
  3. Nhấp vào Trình chỉnh sửa
  4. Trong Định dạng , chọn thụt lề bằng nút radio
  5. Nhấn OK để áp dụng các thay đổi.

CSS

Thực hiện theo các hướng dẫn tương tự cho HTML, nhưng chọn Tệp CSS thay vì Tệp HTML .

JSP

Theo mặc định, các tệp JSP tuân theo các tùy chọn định dạng cho Tệp HTML.

XML

Khoảng cách các tệp XML được cấu hình trong Tùy chọn.

  1. Nhấp vào Cửa sổ » Tùy chọn
  2. Mở rộng XML » Tệp XML
  3. Nhấp vào Trình chỉnh sửa
  4. Chọn thụt lề bằng dấu cách
  5. Bạn có thể chỉ định kích thước thụt lề nếu cần: số lượng khoảng trống để thụt lề.

19
Đối với những người đã cài đặt MyEclipse hoặc bất kỳ IDE nào khác được xây dựng trên Eclipse, bạn có thể có một trình soạn thảo khác ghi đè cài đặt của bạn. Đây là trường hợp của MyEclipse và JavaScript. Tôi đã bật cài đặt "Chèn khoảng trắng cho tab" trong Trình chỉnh sửa văn bản, nhưng các tab vẫn đang được sử dụng thay vì khoảng trắng. Tôi đã định gọi nó là một ngày và viết nó là một lỗi, nhưng sau đó tôi thấy một trình soạn thảo thứ hai cho các tệp JavaScript (* .js) trong danh sách "Associated Editors".
Giăng

5
Đây có thể là một gợi ý hữu ích, nhưng nếu bạn gặp phải hành vi tương tự, hãy kiểm tra xem tệp có bất kỳ trình chỉnh sửa liên quan nào khác không vì chúng có thể ghi đè cài đặt của bạn. Để làm như vậy, goto Window> Preferences> General> Editors> File Associations> sau đó tìm phần mở rộng tập tin đang hủy hoại ngày của bạn trong danh sách đó> nhấp vào nó và xem danh sách Associated Edit bên dưới
John

106
đối với tệp Java hiện có, nhấn Ctrl-A để tô sáng mọi thứ và sau đó Ctrl-I để áp dụng các thụt lề hiện tại. Nếu không, các tab hiện có sẽ ngăn không gian trong các dòng mới được tạo bằng Enter. Nó cũng thay thế các tab hiện có bằng khoảng trắng.
topchef

4
Đối với C / C ++, người ta cũng phải thay đổi C / C ++ -> "Kiểu mã". Điều này là khó chịu nhất trong phần mềm tuyệt vời này.
bảnh bao

3
Để chi tiết hơn, đối với C / C ++ và Ecplipse 3.6 trở lên, bước thứ hai là: Window> Preferences> C / C ++> Code Style> Formatter> New, sau đó chọn bất kỳ Tên hồ sơ nào, đảm bảo Open the edit dialog nowđược bật, nhấn OK, sau đó bên dưới các Indentationtab, bạn sẽ thấy Tab Policy. Đặt nó thành Spaces Only.
Garrett

150

Đối với trình soạn thảo văn bản mặc định:

  • Chung » Biên tập » Biên tập Tiêu đề » Insert spaces for tabs (kiểm tra xem nó)

Đối với PHP:

  • PHP » Kiểu mã » Trình định dạng » Tab policy (chọn" khoảng trắng ")
  • PHP » Kiểu mã » Trình định dạng » Indentation size (đặt thành 4)

Đối với CSS:

  • Web » CSS » Trình chỉnh sửa » Indent using spaces (chọn nó)
  • Web » CSS » Trình chỉnh sửa » Indentation size (đặt thành 4)

Đối với HTML:

  • Web » HTML » Trình chỉnh sửa » Indent using spaces (chọn nó)
  • Web » HTML » Trình chỉnh sửa » Indentation size (đặt thành 4)

Đối với XML:

  • XML » Tệp XML » Trình chỉnh sửa » Indent using spaces (chọn nó)
  • XML » Tệp XML » Trình chỉnh sửa » Indentation size (đặt thành 4)

Đối với Javascript:

  • Javascript » Tùy chọn » Kiểu mã »Trình định dạng » Chỉnh sửa » Indentation (chọn" chỉ khoảng trắng ")
  • Đổi tên cấu hình cài đặt định dạng để lưu nó

Đối với Java:

  • Java » Tùy chọn » Kiểu mã »Trình định dạng » Chỉnh sửa » Indentation (chọn" chỉ khoảng trắng ")
  • Đổi tên cấu hình cài đặt định dạng để lưu nó

Tôi thấy không có tùy chọn Web hoặc Javascript nào trong thư mục gốc của Tùy chọn (tuy nhiên tôi có sẵn Phối cảnh Web) và tôi muốn đặt các tab làm không gian cho các tệp html, css và javascript. Tôi đang dùng Helios Eclipse cho các nhà phát triển Java, có ý tưởng nào để tôi có thể có tùy chọn đó không?
danny

Các cài đặt này là những gì tôi thấy trong PDT Eclipse (Công cụ phát triển PHP). Eclipse PDT được xây dựng trên Eclipse WTP (Nền tảng công cụ web), bao gồm Công cụ phát triển JavaScript (JSDT) và Chỉnh sửa nguồn của các định dạng web khác nhau. Đây có lẽ là những gì bạn đang thiếu.
Patrick Fisher

+1 cho các công cụ Java là hoàn toàn cần thiết vì các cài đặt mặc định của nó ghi đè lên các cài đặt trình soạn thảo văn bản chung.
Giulio Piancastelli

đối với C, Kiểu mã -> Trình định dạng -> Chỉnh sửa -> thụt lề -> Cài đặt chung -> Chính sách tab
rút ra

1
Cảm ơn! Điều này hoạt động tốt trên sao Hỏa. Thật đáng thất vọng khi các tùy chọn Trình soạn thảo văn bản tồn tại nhưng không làm gì cả!
paiego


26

Đối với CDT :

  • Chuyển đến Cửa sổ / Tùy chọn » C / C ++ » Kiểu mã »Trình định dạng » Mới
  • Tạo một cái mới vì không thể thay đổi cấu hình trong
  • MyProfile (chọn một tên cho hồ sơ)
  • Thụt lề » Tab Policy (chỉ chọn Spaces)

23

Chỉ là một mẹo nhanh cho những người vấp phải chủ đề này; có một nơi nữa mà cài đặt này cũng có thể được đặt, trong dự án của bạn!

Eclipse hỗ trợ các cài đặt dành riêng cho dự án và một số dự án sẽ sử dụng các cài đặt tab / không gian, không được quản lý của riêng chúng, sẽ không hiển thị ở bất cứ đâu ngoại trừ Thuộc tính dự án hiện tại.

Điều này có thể được quản lý thông qua:

  • Nhấp chuột phải vào Dự án hiện tại trong Gói Explorer
  • Thuộc tính » Kiểu mã Java
  • Bật tắt tất cả các tùy chọn dự án cụ thể

Điều này thường chỉ là một vấn đề nếu bạn nhập mã của người khác vào Eclipse của bạn.


19

Đối với Trình chỉnh sửa mặc định:

Window » Preferences » Biên tập » Biên tập Tiêu đề »Insert spaces for tabs

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

Dành cho trình soạn thảo Java

Cửa sổ » Tùy chọn » Java » Kiểu mã » Trình định dạng » Chỉnh sửa » thụt lề » Tab policy " Chỉ không gian "

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


9

Khi tôi gặp phải vấn đề này, tôi đã "sử dụng khoảng trắng cho các tab" được đặt thành đúng ở mọi nơi tôi có thể tìm thấy, nhưng tôi vẫn nhận được các tab. Cuối cùng, vì các tab được sử dụng ở nơi khác trong tệp và nó đang cố gắng thụt thông minh hoặc một cái gì đó gây khó chịu.

Nó đã được giải quyết bằng cách chọn toàn bộ nội dung của tệp và nhấn, trên máy Mac , command+shift+f. Điều này áp dụng định dạng đã cho cho một tập tin. Tôi không biết cách gõ phím tương tự trên các cửa sổ, nhưng hãy thử xem. Tại thời điểm đó tôi bắt đầu nhận được hành vi mong đợi.


Để khắc phục mô-đun hơn cho vấn đề này, người dùng cũng có thể thực hiện Tìm / Thay thế \t(đảm bảo bật biểu thức chính quy) và thay thế bằng số lượng ký tự không gian mong muốn
jlewkovich

Khóa để định dạng tệp trên Windows khá giống nhau - Ctrl+Shift+F.
A.Alessio

5

IDE Eclipse cho Nhà phát triển C / C ++, Phiên bản: Phiên bản dịch vụ Helios 2

Bạn cần tạo hồ sơ mới bằng cách nhấn nút Mới bên trong "Cửa sổ-> Tùy chọn-> Kiểu mã"

Chuyển đến tab thụt lề và chọn "Chính sách tab = Chỉ không gian"


IDE Eclipse cho Nhà phát triển C / C ++, Phiên bản: Bản phát hành dịch vụ Kepler 1

Thực hiện theo đường dẫn bên dưới để tạo hồ sơ mới: "Cửa sổ> Tùy chọn> C / C ++> Kiểu mã> Trình định dạng"

Chuyển đến tab thụt lề và chọn "Chính sách tab = Chỉ không gian"


5

Hãy chắc chắn kiểm tra công cụ định dạng java vì nó ghi đè cài đặt "chèn khoảng trắng cho tab" . Đi đến:

Java->Code Style"->Formatter->Edit->Identation

Lưu ý: bạn sẽ cần tạo một định dạng tùy chỉnh để có thể lưu cấu hình của mình.


5

Tôi thấy giải pháp cho vấn đề này rất đơn giản và luôn hoạt động. Đó là thay đổi tập tin cài đặt nhật thực.

Ví dụ: (thay đổi kích thước thụt HTML):


  1. Tìm thấy org.eclipse.wst.html.core.prefstập tin nên có trongyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. Thêm / Thay đổi dòng trong tệp:
indentationChar=space

indentationSize=4

1
Trên Ubuntu 14.04.03 LTS và nhật thực 4.5 tôi không thể thay đổi kích thước nhận dạng luôn bị khóa và không thể thay đổi. Điều này đã giải quyết vấn đề của tôi.
TekTimmy

5

Chuyển đến Cửa sổ -> Tùy chọn và nhập tab dưới dạng văn bản tìm kiếm (sẽ hiển thị hộp thoại như bên dưới):

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

Chuyển đến phần được tô sáng để thay đổi chính sách tab. Đối với cài đặt Trình chỉnh sửa , phần lớn là thụt lề bằng cách sử dụng khoảng trắng (cũng được hiển thị ở trên).

Đối với cài đặt Trình định dạng, bạn cần chỉnh sửa cấu hình hoạt động và chính sách Tab cập nhật (có sẵn trong ` thụt lề -> Cài đặt chung :

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


3

Cửa sổ-> Tùy chọn-> Java-> Kiểu mã-> Trình định dạng-> Chỉnh sửa-> Ấn định = "Chỉ không gian"


3

Trong Eclipse, đi tới Window » Preferences sau đó tìm kiếm Formatter .

Bạn sẽ thấy các liên kết in đậm khác nhau, nhấp vào từng liên kết in đậm và đặt thành use spacesthay vìtabs .

Trong liên kết định dạng java, bạn phải chỉnh sửa cấu hình và chọn chính sách tab, spaces onlytrong tab thụt lề


2

Đừng bỏ lỡ chính sách Tab cho cả hai * Chỉ khoảng cách * Sử dụng khoảng trắng để thụt dòng được bọc

Tôi chỉ kiểm tra thứ sau và để lại Combobox dưới dạng Tab Chỉ liên tục không kiểm tra CheckStyle .. FYI, tôi đang nói về Tùy chọn> Java> Trình định dạng> Chỉnh sửa ...


2

Ở định dạng nhật thực xml:

Đối với tab:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>

Đối với không gian:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>

0
  • Nhấp vào Cửa sổ »Tùy chọn
  • Mở rộng Java »Kiểu mã
  • Nhấp vào Định dạng
  • bấm mới
  • Chọn tên hồ sơ
  • Nhấp vào ok
  • Nhấp vào nút Chỉnh sửa
  • Nhấp vào tab thụt lề
  • Trong Cài đặt chung, đặt chính sách Tab thành: Chỉ không gian
  • Nhấn OK.

0

Đồng thời xem xét sử dụng tệp .editorconfig: https://marketplace.eclipse.org/content/editorconfig-eclipse . Ai đó không sử dụng Eclipse cũng có thể được hưởng lợi từ điều này, trong trường hợp xấu nhất, nó có thể đóng vai trò là một hướng dẫn. LƯU Ý: Tôi sẽ không nhập các tab so với các cuộc chiến không gian nhưng sử dụng khoảng trắng FTW :-)


0

Là một sự bổ sung cho các câu trả lời khác, trên Mac OS X, menu "Preferences" nằm dưới Eclipse, không phải Window (không giống như các bản phân phối Eclipse của Windows / Linux). Mọi thứ khác vẫn giống như được chỉ ra bởi các câu trả lời khác qua điểm này.

IE: Trình định dạng Java có sẵn trong:

Eclipse >      | # Not Window!
Preferences >  |
Java >         |
Code Style >   |
Formatter      |

Từ đây, chỉnh sửa trình định dạng và chính sách tab có thể được đặt trong phần "thụt lề".


0

Trong các ngôi sao nhật thực (EE) trên Mac OS X, cách duy nhất tôi có thể tìm thấy điều này trong các tùy chọn là mở hộp thoại Tùy chọn và nhập Trình định dạng, sau đó chọn Java-> Kiểu mã-> Trình định dạng.

Java-> Code Style không có quyền truy cập vào Formatter!


0

Và đừng quên trình soạn thảo ANT

Vì một số lý do, Ant Editor không hiển thị trong kết quả tìm kiếm cho 'tab'hoặc'spaces' có thể bị bỏ qua.

Trong Windows > Tùy chọn

  • Ant » Editor » Formatter » Tab size: (đặt thành 4)
  • Ant » Editor » Formatter » Use tab character instead of spaces (bỏ chọn nó)

0

Bạn chắc chắn có thể sử dụng tệp XML để định cấu hình định dạng của bạn về kiểu mã hóa. Tệp định dạng giúp bạn có cùng hướng dẫn về phong cách mã hóa và các thành viên trong nhóm.

Việc thêm các biến cài đặt bên dưới này sẽ có a tab= 2 spacesvà chuyển đổi sang không gian thậm chí bạn có thể sử dụng Tabkhóa tốc ký khi mã hóa bằng Eclipse .

<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>    
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="yes"/>

Tốt,

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.