Bagaimana cara mengubah Eclipse untuk menggunakan spasi alih-alih tab?


895

Secara default Eclipse indentasi dengan karakter tab keras. Bagaimana cara mengubahnya ke spasi?


43
@ i3 sensor karena tab disajikan secara berbeda di editor atau lingkungan yang berbeda sedangkan spasi selalu konsisten.
mmmdreg

29
@mmmdreg persis maksud saya. ruang menjadi kaku dan boros. Menggunakan tab memberi kebebasan kepada pemirsa untuk mengonfigurasi editor mereka seperti yang diinginkan. Saya suka tab saya ditampilkan sebagai 2 spasi, rekan saya 4. Ini tidak mungkin tanpa menggunakan tab. Kolega saya di sini, dan saya, bertarung di ruang ketika kami masing-masing memformat dalam editor kami masing-masing; tab tidak menjadi masalah; inilah sebabnya mereka ditemukan (saya curiga).
i3ensays

15
@ i3ensays amin, saudara! Saya telah mencoba membuat orang memahami konsep ini selama lebih dari 10 tahun ( rizzoweb.com/java/tabs-vs-spaces.html ). Yang benar-benar mengejutkan saya adalah bahwa, sebagai programmer, Anda akan berpikir semua orang akan memahami konsep abstraksi (tab adalah abstraksi dari lekukan kode, sementara sejumlah ruang yang tetap adalah implementasi kode-keras) - tetapi sayangnya, sepertinya bahwa banyak programmer tidak dapat melihat abstraksi di sini.
E-Riz

28
@ i3ensays Tim Anda harus memiliki standar pengkodean yang dengan jelas menyatakan bagaimana kode diformat. Ini akan menghemat waktu dengan mencegah pertempuran yang Anda sebutkan. Anda harus mengadopsi satu secepatnya tetapi standar itu akan 100% menyatakan bahwa tab tidak akan pernah digunakan karena perang suci ini dimenangkan oleh "orang-orang luar angkasa" berabad-abad yang lalu sehingga standar tidak akan membantu Anda. Selain masalah penyelarasan, salah satu alasan terbesar untuk ruang saja adalah alat kontrol revisi dan peninjau kode tidak harus berurusan dengan masalah ini. Saya mulai di pihak Anda dari pertempuran ini 20 tahun yang lalu tetapi akhirnya belajar merangkul ruang.
Night Owl

12
Alasannya adalah bahwa orang pasti akan berakhir dengan kombinasi tab dan spasi dan dalam beberapa editor kode tidak akan ditampilkan dengan benar. Jika semua orang hanya menggunakan spasi maka ini tidak pernah menjadi masalah.
Eamonn McEvoy

Jawaban:


1239

Editor Java

  1. Klik Jendela » Preferensi
  2. Expand Java » Gaya Kode
  3. Klik Formatter
  4. Klik tombol Edit
  5. Klik tab Indentation
  6. Di bawah Pengaturan Umum , tetapkan kebijakan Tab untuk:Spaces only
  7. Klik OK iklan mual untuk menerapkan perubahan.

[ Catatan : Jika perlu simpan profil dengan nama baru karena profil default tidak dapat ditimpa.]

Editor Teks Default

Sebelum versi 3.6:

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

Versi 3.6 dan yang lebih baru:

  1. Klik Jendela » Preferensi
  2. Luaskan Umum » Editor
  3. Klik Editor Teks
  4. Periksa Sisipkan spasi untuk tab
  5. Klik OK iklan mual untuk menerapkan perubahan.

Perhatikan bahwa editor teks default digunakan sebagai dasar bagi banyak editor non-Java di Eclipse. Mengherankan bahwa pengaturan ini tidak tersedia hingga 3.3.

C / C ++

  1. Klik Jendela » Preferensi
  2. Luaskan C / C ++ » Gaya Kode
  3. Klik Formatter
  4. Klik tombol Baru untuk membuat profil baru, lalu OK untuk melanjutkan
  5. Klik tab Indentation
  6. Di bawah Pengaturan Umum , tetapkan kebijakan Tab untuk:Spaces only
  7. Klik OK iklan mual untuk menerapkan perubahan.

HTML

  1. Klik Jendela » Preferensi
  2. Buka Web » File HTML
  3. Klik Editor
  4. Di bawah pemformatan , pilih tombol radio menggunakan spasi
  5. Klik OK untuk menerapkan perubahan.

CSS

Ikuti instruksi yang sama untuk HTML, tetapi pilih File CSS, bukan File HTML .

JSP

Secara default, file JSP mengikuti preferensi pemformatan untuk File HTML.

XML

Spasi file XML dikonfigurasikan di Preferensi.

  1. Klik Jendela » Preferensi
  2. Luaskan XML » File XML
  3. Klik Editor
  4. Pilih Indent menggunakan spasi
  5. Anda dapat menentukan ukuran Indentasi jika perlu: jumlah spasi untuk indentasi.

19
Bagi mereka yang memasang MyEclipse atau IDE lain yang dibangun di atas Eclipse, Anda mungkin memiliki editor lain yang mengabaikan pengaturan Anda. Ini adalah kasus untuk MyEclipse dan JavaScript. Saya mengaktifkan pengaturan "Sisipkan spasi untuk tab" di Editor Teks, tetapi tab masih digunakan sebagai ganti spasi. Saya akan menyebutnya sehari dan menghapusnya sebagai bug, tetapi kemudian saya melihat editor kedua untuk file JavaScript (* .js) di daftar "Editor Terkait".
John

5
Ini mungkin merupakan petunjuk bermanfaat, tetapi jika Anda mengalami perilaku yang sama, periksa apakah file tersebut memiliki editor terkait lainnya karena mereka mungkin mengesampingkan pengaturan Anda. Untuk melakukannya, buka Jendela> Preferensi> Umum> Editor> Asosiasi File> kemudian cari ekstensi file yang merusak hari Anda dalam daftar itu> klik dan lihat daftar Editor Terkait di bawah ini
John

106
untuk file Java yang ada tekan Ctrl-A untuk menyorot semuanya dan kemudian Ctrl-I untuk menerapkan indentasi saat ini. Jika tidak, tab yang ada akan mencegah spasi di baris baru yang dibuat dengan Enter. Itu juga menggantikan tab yang ada dengan spasi.
topchef

4
Untuk C / C ++, kita juga harus mengubah C / C ++ -> "Code Style". Sejauh ini yang paling menjengkelkan dalam perangkat lunak yang hebat ini.
dashesy

3
Untuk lebih detail, untuk C / C ++ dan Ecplipse 3.6 atau lebih baru, langkah kedua adalah: Window> Preferences> C / C ++> Code Style> Formatter> New, lalu pilih nama Profile apa saja, pastikan Open the edit dialog nowdiaktifkan, tekan OK, kemudian di bawah yang Indentationtab, Anda akan melihat Tab Policy. Setel ke Spaces Only.
Garrett

150

Untuk editor teks default:

  • Umum » Editor » Text Editor » Insert spaces for tabs (memeriksa)

Untuk PHP:

  • PHP » Gaya Kode » Formatter » Tab policy (pilih" spasi ")
  • PHP » Gaya Kode » Formatter » Indentation size (set ke 4)

Untuk CSS:

  • Web » CSS » Editor » Indent using spaces (pilih itu)
  • Web » CSS » Editor » Indentation size (set ke 4)

Untuk HTML:

  • Web » HTML » Editor » Indent using spaces (pilih itu)
  • Web » HTML » Editor » Indentation size (set ke 4)

Untuk XML:

  • XML » XML Files » Editor » Indent using spaces (pilih itu)
  • XML » XML Files » Editor » Indentation size (set ke 4)

Untuk Javascript:

  • Javascript » Preferensi » Gaya Kode » Formatter » Edit » Indentation (pilih" spasi ")
  • Ganti nama profil pengaturan formatter untuk menyimpannya

Untuk Jawa:

  • Java » Preferensi » Gaya Kode » Formatter » Edit » Indentation (pilih" spasi saja ")
  • Ganti nama profil pengaturan formatter untuk menyimpannya

Saya tidak melihat opsi Web atau Javascript di root Preferensi (meskipun saya memiliki Perspektif Web yang tersedia) dan saya ingin mengatur tab sebagai spasi untuk file html, css, dan javascript saja. Saya menggunakan Helios Eclipse untuk Pengembang Java, tahu bagaimana saya bisa mendapatkan opsi itu?
danny

Pengaturan ini adalah apa yang saya lihat di Eclipse PDT (Alat Pengembangan PHP). Eclipse PDT dibangun di atas Eclipse WTP (Web Tools Platform), yang mencakup JavaScript Development Tools (JSDT) dan Pengeditan Sumber dari berbagai format web. Ini mungkin yang Anda lewatkan.
Patrick Fisher

+1 untuk hal-hal Java yang mutlak diperlukan karena pengaturan defaultnya menimpa pengaturan editor teks umum.
Giulio Piancastelli

untuk C, Style Code -> Formatter -> Edit -> Indentation -> General Settings -> Tab Policy
andrew cooke

1
Terima kasih! Ini bekerja dengan baik di Mars. Sangat mengecewakan bahwa opsi Editor Teks ada tetapi tidak melakukan apa pun!
paiego


26

Untuk CDT :

  • Pergi ke Window / Preferensi » C / C ++ » Gaya Kode » Formatter » Baru
  • Buat yang baru karena profil bawaan tidak dapat diubah
  • MyProfile (pilih satu nama untuk profil)
  • Lekukan » Tab Policy (pilih Spaces saja)

23

Hanya tip cepat untuk orang-orang yang tersandung di utas ini; ada satu tempat lagi di mana pengaturan ini juga dapat diatur, dalam proyek Anda!

Eclipse mendukung pengaturan spesifik proyek, dan beberapa proyek akan menggunakan sendiri pengaturan tab / spasi yang tidak dikelola, yang tidak akan muncul di mana pun kecuali Properti proyek saat ini.

Ini dapat dikelola melalui:

  • Klik kanan Proyek saat ini di Package Explorer
  • Properti » Gaya Kode Java
  • Mengubah off semua pilihan proyek-spesifik

Ini umumnya hanya akan menjadi masalah jika Anda mengimpor kode orang lain ke Eclipse Anda.


19

Untuk Editor Default:

Jendela » Preferensi » Editor » Editor Teks »Insert spaces for tabs

masukkan deskripsi gambar di sini

Untuk editor Java

Jendela » Preferensi » Java » Gaya Kode » Formatter » Edit » Indentasi » Tab policy " Hanya Spasi "

masukkan deskripsi gambar di sini


9

Ketika saya menghadapi masalah ini, saya telah "menggunakan spasi untuk tab" disetel ke true di mana pun saya dapat menemukan, namun saya masih mendapatkan tab. Akhirnya karena tab digunakan di tempat lain dalam file dan itu mencoba melakukan indentasi pintar atau sesuatu yang membuat frustrasi.

Itu diselesaikan dengan memilih seluruh isi file dan menekan, pada mac command+shift+f,. Ini berlaku pemformatan yang diberikan ke file. Saya tidak tahu pengikat tombol yang sama pada windows, tapi coba saja. Pada saat itu saya mulai mendapatkan perilaku yang diharapkan.


Untuk perbaikan yang lebih modular untuk masalah ini, pengguna juga dapat melakukan Temukan / Ganti untuk \t(pastikan ekspresi reguler diaktifkan) dan ganti dengan jumlah karakter ruang yang diinginkan
jlewkovich

Kunci untuk memformat file pada Windows sangat mirip - Ctrl+Shift+F.
A.Alessio

5

Eclipse IDE untuk Pengembang C / C ++, Versi: Helios Service Release 2

Anda perlu membuat profil baru dengan menekan tombol Baru di dalam "Window-> Preferences-> Style Code"

Buka tab Indentasi dan pilih "Tab policy = Space only"


Eclipse IDE untuk Pengembang C / C ++, Versi: Kepler Service Release 1

Ikuti jalur di bawah ini untuk membuat profil baru: "Window> Preferences> C / C ++> Code Style> Formatter"

Buka tab Indentasi dan pilih "Tab policy = Space only"


5

Pastikan untuk memeriksa format java karena menimpa pengaturan "sisipkan spasi untuk tab" . Pergi ke:

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

Catatan: Anda harus membuat format khusus untuk dapat menyimpan konfigurasi Anda.


5

Saya menemukan solusi masalah ini sangat sederhana dan yang berfungsi selalu. Ini mengubah file pengaturan gerhana.

Misalnya (ubah ukuran lekukan HTML):


  1. Ditemukan org.eclipse.wst.html.core.prefsfile yang harus dalamyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. Tambah / Ubah ke baris dalam file:
indentationChar=space

indentationSize=4

1
Pada Ubuntu 14.04.03 LTS dan eclipse 4.5 saya tidak dapat mengubah ukuran identifikasi selalu terkunci dan tidak dapat diubah. Ini menyelesaikan masalah saya.
TekTimmy

5

Buka Jendela -> Preferensi dan ketik tab sebagai teks pencarian (yang akan menampilkan dialog seperti di bawah ini):

masukkan deskripsi gambar di sini

Buka bagian yang disorot untuk mengubah kebijakan tab. Untuk pengaturan Editor sebagian besar Indent menggunakan spasi (juga ditunjukkan di atas).

Untuk pengaturan Formatter Anda perlu mengedit profil aktif dan memperbarui kebijakan Tab (tersedia di ` Indentation -> Pengaturan umum :

masukkan deskripsi gambar di sini


3

Window-> Preferences-> Java-> Code Style-> Formatter-> Edit-> Indentation = "Hanya Spaces"


3

Di Eclipse pergi ke Window » Preferences lalu cari Formatter .

Anda akan melihat berbagai tautan tebal, klik pada setiap tautan tebal dan tetapkan sebagai use spacesganti tabs.

Di tautan formatter java, Anda harus mengedit profil dan memilih kebijakan tab, spaces onlydi tab indentasi


2

Jangan lewatkan kebijakan Tab untuk kedua * Spaces saja * Gunakan spasi untuk membuat indentasi baris

Saya hanya memeriksa yang terakhir dan meninggalkan Combobox sebagai Tabs Only yang terus gagal CheckStyle .. FYI, saya berbicara tentang Preferensi> Java> Formatter> Edit ...


2

Dalam format gerhana xml:

Untuk tab:

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

Untuk ruang:

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

0
  • Klik Jendela »Preferensi
  • Expand Java »Gaya Kode
  • Klik Formatter
  • klik baru
  • Pilih nama profil
  • Klik ok
  • Klik tombol Edit
  • Klik tab Indentation
  • Di bawah Pengaturan Umum, tetapkan kebijakan Tab ke: Hanya spasi
  • Klik OK.


0

Sebagai tambahan untuk jawaban lain, pada Mac OS X, menu "Preferences" berada di bawah Eclipse, bukan Window (tidak seperti distribusi Windows / Linux Eclipse). Yang lainnya masih sama dengan yang ditunjukkan oleh jawaban lain yang melewati titik ini.

IE: Java Formatter tersedia di bawah:

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

Dari sini, edit formatter dan kebijakan tab dapat diatur di bawah "Indentation".


0

Dalam eclipse mars (EE) pada Mac OS X, satu-satunya cara saya dapat menemukan ini di preferensi adalah dengan membuka dialog Preferensi dan ketik Formatter, lalu pilih Java-> Code Style-> Formatter.

Java-> Code Style tidak memiliki akses ke Formatter!


0

Dan jangan lupa editor ANT

Untuk beberapa alasan Editor Semut tidak muncul dalam hasil pencarian untuk 'tab'atau 'spaces'lebih dapat terjawab.

Di bawah Windows > Preferensi

  • Ant » Editor » Formatter » Tab size: (set ke 4)
  • Ant » Editor » Formatter » Use tab character instead of spaces (hapus centang)

0

Anda pasti dapat menggunakan file XML untuk mengonfigurasi formatter Anda dari gaya pengkodean. File formatter membantu Anda memiliki gaya pengkodean dan pedoman yang sama di seluruh anggota tim Anda.

Menambahkan variabel-variabel pengaturan di bawah ini akan memiliki a tab= 2 spacesdan mengkonversi ke ruang bahkan Anda mungkin menggunakan Tabkunci singkatan saat pengkodean menggunakan 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"/>

Terbaik,

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.