Eclipse'i sekmeler yerine boşluk kullanacak şekilde nasıl değiştirebilirim?


895

Eclipse varsayılan olarak sabit sekme karakteriyle girintiler. Bunu boşluklara nasıl değiştirebilirim?


43
@ i3ensays çünkü sekmeler farklı editörlerde veya ortamlarda farklı sunulur, ancak boşluklar her zaman tutarlıdır.
mmmdreg

29
@mmmdreg tam olarak benim açımdan. boşluklar katı ve israftır. Sekmeleri kullanmak, izleyiciye editörlerini istediği gibi yapılandırma özgürlüğü verir. Sekmelerimin 2 boşluk, meslektaşım 4 olarak görüntülenmesini istiyorum. Sekmeler kullanılmadan bu mümkün değildir. Buradaki meslektaşım ve ben, ilgili editörümüzde her formatta olduğumuzda uzaylarla savaşıyoruz; sekmeler bir sorun değildir; bu yüzden icat edildi (şüpheliyim).
i3ensays

15
@ i3ensays amin kardeşim! İnsanları bu konsepti 10 yılı aşkın bir süredir anlamaya çalışıyorum ( rizzoweb.com/java/tabs-vs-spaces.html ). Beni gerçekten endişelendiren, programcılar olarak, herkesin soyutlama kavramını anlayacağını düşünürsünüz (bir sekme, kod girintisinin bir soyutlamasıdır, sabit sayıda boşluk sabit kodlu bir uygulamadır) - ama ne yazık ki, görünüyor birçok programcı buradaki soyutlamayı göremez.
E-Riz

28
@ i3ensays Ekibinizde kodun nasıl biçimlendirildiğini açıkça belirten bir kodlama standardı olmalıdır. Bu, bahsettiğiniz savaşları önleyerek zaman kazanır. Bir asap benimsemelisiniz, ancak bu standart% 100 kesinlikle sekmelerin asla kullanılmayacağını söyleyecektir, çünkü bu kutsal savaş yıllar önce "uzay insanları" tarafından kazanılmıştır, böylece bir standart size yardımcı olmaz. Hizalama konularının yanı sıra, yalnızca alanların en büyük nedenlerinden biri, revizyon kontrol araçları ve kod gözden geçirenlerin bu sorunla uğraşmak zorunda kalmayacaklarıdır. Bu savaşın yanında 20 yıl önce başladım ama sonunda alanı kucaklamayı öğrendim.
Gece Baykuşu

12
Bunun nedeni, insanların kaçınılmaz olarak sekme ve boşluk kombinasyonları ile sonuçlanmaları ve bazı editörlerde kodun düzgün görüntülenmemesidir. Eğer herkes sadece boşluk kullanıyorsa, bu asla sorun olmaz.
Eamonn McEvoy

Yanıtlar:


1239

Java Editör

  1. Tıklama Penceresi » Tercihler
  2. Expand Java » Kod Stili
  3. Formatlayıcı'yı tıklayın
  4. Click Düzenleme düğmesini
  5. Click Girinti sekmesini
  6. Genel Ayarlar altında Sekme ilkesini şu şekilde ayarlayın :Spaces only
  7. Değişiklikleri uygulamak için OK ad nauseam'i tıklayın .

[ Not : Gerekirse, varsayılan profil olarak profilin yeni bir adla kaydedilmesi üzerine yazılamaz.]

Varsayılan Metin Düzenleyici

3.6 sürümünden önce:

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

Sürüm 3.6 ve üzeri:

  1. Tıklama Penceresi » Tercihler
  2. Genişlet Genel » Editörler
  3. Metin Düzenleyicileri'ni tıklayın
  4. Kontrol sekmeler için takın boşluk
  5. Değişiklikleri uygulamak için OK ad nauseam'i tıklayın .

Varsayılan metin düzenleyicisinin Eclipse'teki birçok Java dışı editör için temel olarak kullanıldığını unutmayın. Bu ayarın 3.3'e kadar mevcut olmaması şaşırtıcı.

C / C ++

  1. Tıklama Penceresi » Tercihler
  2. Genişlet C / C ++ » Kod Stili
  3. Formatlayıcı'yı tıklayın
  4. Yeni bir profil oluşturmak için Yeni düğmesini, ardından devam etmek için Tamam'ı tıklayın
  5. Click Girinti sekmesini
  6. Genel Ayarlar altında Sekme ilkesini şu şekilde ayarlayın :Spaces only
  7. Değişiklikleri uygulamak için OK ad nauseam'i tıklayın .

HTML

  1. Tıklama Penceresi » Tercihler
  2. Web'i Genişletin » HTML Dosyaları
  3. Editör'ü tıklayın
  4. Altında Biçimlendirme seçeneğini boşluklarda kullanarak Girintisini radyo düğmesini
  5. Tıklayın Değişiklikleri uygulamak Tamam'ı .

CSS

HTML için aynı talimatları uygulayın, ancak CSS Dosyaları'nı seçin yerine HTML dosyaları .

JSP

Varsayılan olarak, JSP dosyaları HTML Dosyaları için biçimlendirme tercihlerine uyar.

XML

XML dosyaları aralığı Tercihler'de yapılandırılır.

  1. Tıklama Penceresi »Tercihler
  2. XML'i genişlet » XML Dosyaları
  3. Tıklayın Editör'ü
  4. seçmek Boşlukları kullanarak girintileme'yi
  5. Gerekirse Girinti boyutunu belirtebilirsiniz : girintili boşluk sayısı.

19
MyEclipse yüklü olanlar veya Eclipse'in üzerine kurulmuş başka bir IDE olanlar için ayarlarınızı geçersiz kılan başka bir düzenleyiciniz olabilir. MyEclipse ve JavaScript için durum buydu. Metin Düzenleyicilerinde "Sekmeler için boşluk ekle" ayarımı etkinleştirdim, ancak boşluklar yerine sekmeler hala kullanılıyor. Ben bir gün aramak ve bir hata olarak yazmak üzereydim, ama sonra "İlişkili Editörler" listesinde JavaScript (* .js) dosyaları için ikinci bir editör gördüm.
John

5
Bu yararlı bir ipucu olabilir, ancak aynı davranışla karşılaşırsanız, ayarlarınızı geçersiz kılabilecekleri için dosyada ilişkili başka düzenleyiciler olup olmadığını kontrol edin. Bunu yapmak için Pencere> Tercihler> Genel> Editörler> Dosya Dernekleri'ne gidin> ardından o listede gününüzü mahveden dosya uzantısına bakın> tıklayın ve aşağıdaki İlişkili Editörler listesine bakın
John

106
mevcut Java dosyası için her şeyi vurgulamak için Ctrl-A'ya, ardından geçerli girintileri uygulamak için Ctrl-I tuşlarına basın. Aksi takdirde, mevcut sekmeler Enter ile oluşturulan yeni satırlardaki boşlukları önler. Ayrıca mevcut sekmeleri boşluklarla değiştirir.
topchef

4
C / C ++ için, C / C ++ -> "Kod Stili" de değiştirilmelidir. Bu, aksi takdirde bu harika yazılımda en sinir bozucu.
dashesy

3
Daha ayrıntılı olmak için, C / C ++ ve Ecplipse 3.6 veya üzeri için ikinci adım şuydu: Pencere> Tercihler> C / C ++> Kod Stili> Biçimlendirici> Yeni, ardından herhangi bir Profil adı seçin Open the edit dialog now, etkinleştirildiğinden, vurulduğundan OKve ardından Indentationsekme görürsünüz Tab Policy. Olarak ayarlayın Spaces Only.
Garrett

150

Varsayılan metin düzenleyici için:

  • Genel » Editörler » Metin Editörleri » Insert spaces for tabs (kontrol edin)

PHP için:

  • PHP » Kod Stili » Biçimlendirici » Tab policy (" boşlukları seçin ")
  • PHP » Kod Stili » Biçimlendirici » Indentation size (4 olarak ayarlanır)

CSS için:

  • Web » CSS » Editör » Indent using spaces (seçin)
  • Web » CSS » Editör » Indentation size (4'e ayarlı)

HTML için:

  • Web » HTML » Editör » Indent using spaces (seçin)
  • Web » HTML » Editör » Indentation size (4 olarak ayarlandı)

XML için:

  • XML » XML Dosyaları » Editör » Indent using spaces (seçin)
  • XML » XML Dosyaları » Editör » Indentation size (4 olarak ayarlandı)

Javascript için:

  • Javascript » Tercihler » Kod Stili » Biçimlendirici » Düzenle » Indentation (" yalnızca boşlukları seçin ")
  • Kaydetmek için formatlayıcı ayarları profilini yeniden adlandırın

Java için:

  • Java » Tercihler » Kod Stili » Biçimlendirici » Düzenle » Indentation (" yalnızca boşlukları seçin ")
  • Kaydetmek için formatlayıcı ayarları profilini yeniden adlandırın

Tercihler kökünde hiçbir Web veya Javascript seçeneği görmüyorum (kullanılabilir bir Web Perspektifim var) ve sekmeleri sadece html, css ve javascript dosyaları için boşluk olarak ayarlamak istiyorum. Java Geliştiricileri için Helios Eclipse kullanıyorum, bu seçeneği nasıl alabilirim?
danny

Bu ayarlar Eclipse PDT (PHP Geliştirme Araçları). Eclipse PDT, JavaScript Geliştirme Araçları (JSDT) ve çeşitli web biçimlerinin Kaynak Düzenlemesini içeren Eclipse WTP (Web Araçları Platformu) üzerine kurulmuştur. Muhtemelen eksik olan budur.
Patrick Fisher

Varsayılan ayarları genel metin düzenleyici ayarlarını geçersiz kıldığı için kesinlikle gerekli olan Java şeyler için +1.
Giulio Piancastelli

C için, Kod Stili -> Biçimlendirici -> Düzenle -> Girinti -> Genel Ayarlar -> Sekme Politikası
andrew cooke

1
Teşekkürler! Bu Mars'ta iyi çalışıyor. Metin Editörü seçeneklerinin var olması hayal kırıklığı yaratıyor ama hiçbir şey yapmıyor!
paiego


26

İçin CDT :

  • Git Window / Tercih » C / C ++ » Kod Stil » Biçimlendirici » Yeni
  • Yerleşik profil değiştirilemediğinden yeni bir profil oluşturun
  • Profilim (profil için bir ad seçin)
  • Girinti » Tab Policy (yalnızca Boşlukları seçin)

23

Bu iş parçacığında tökezleyen insanlar için hızlı bir ipucu; bir yer daha varprojenizde bu ayarın yapılabileceği bir !

Eclipse, projeye özgü ayarları destekler ve bazı projeler, geçerli proje Özellikleri dışında hiçbir yerde görünmeyecek şekilde kendi yönetilmeyen sekmeleri / boşluk ayarlarını kullanır.

Bu aşağıdakiler aracılığıyla yönetilebilir:

  • Paket Gezgini'nde geçerli Projeyi sağ tıklatın
  • Özellikler » Java Kod Stili
  • Çevirin kapalı tüm proje özel seçenekleri

Bu genellikle yalnızca Eclipse ürününüze başkasının kodunu aktarırsanız sorun olur.


19

Varsayılan Editör için:

Pencere » Tercihler » Editörler » Metin Editörleri »Insert spaces for tabs

resim açıklamasını buraya girin

Java editörü için

Pencere » Tercihler » Java » Kod Stili » Biçimlendirici » Düzenle » Girinti » Tab policy " Yalnızca Alanlar "

resim açıklamasını buraya girin


9

Bu sorunla karşılaştığımda, "sekmeler için boşluk kullan" ı bulabildiğim her yerde true olarak ayarladım ve yine de sekmeler alıyordum. Sekmeler dosyanın başka bir yerinde kullanıldığından ve akıllı girinti veya sinir bozucu bir şey yapmaya çalıştığı için sona erdi.

Dosyanın tüm içeriğini seçip bir mac üzerinde, tuşuna basarak çözüldü command+shift+f. Bu, verilen biçimlendirmeyi bir dosyaya uygular. Ben aynı tuş bağlama pencereleri bilmiyorum, ama bunu bir deneyin. Bu noktada beklenen davranışı elde etmeye başladım.


Bu soruna yönelik daha modüler bir düzeltme için, kullanıcı ayrıca bir Bul / Değiştir \t(normal ifadelerin etkinleştirildiğinden emin olun) yapabilir ve istenen miktarda boşluk karakteri ile değiştirebilir
jlewkovich

Windows'ta dosya biçimlendirmenin anahtarı oldukça benzer - Ctrl+Shift+F.
A.Alessio

5

C / C ++ Geliştiricileri için Eclipse IDE, Sürüm: Helios Service Release 2

"Pencere-> Tercihler-> Kod Stili" içindeki Yeni düğmesine basarak yeni profil oluşturmanız gerekir

Girinti sekmesine gidin ve "Sekme politikası = Yalnızca boşluk" u seçin


C / C ++ Geliştiricileri için Eclipse IDE, Sürüm: Kepler Service Release 1

Yeni profil oluşturmak için aşağıdaki yolu izleyin: "Pencere> Tercihler> C / C ++> Kod Stili> Biçimlendirici"

Girinti sekmesine gidin ve "Sekme politikası = Yalnızca boşluk" u seçin


5

Java sekmesini "sekmeler için boşluk ekle" ayarının üzerine yazdığından emin olun . Şuraya git:

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

Not: yapılandırmanızı kaydedebilmek için özel bir biçim oluşturmanız gerekir.


5

Bu sorunu çok basit buldum ve her zaman işe yaradı. Tutulma ayar dosyasını değiştirmektir.

Örneğin (HTML girintisi boyutunu değiştirin):


  1. Bulunması org.eclipse.wst.html.core.prefsgereken dosya bulunduyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. Dosyaya satır ekle / değiştir:
indentationChar=space

indentationSize=4

1
Ubuntu 14.04.03 LTS ve eclipse 4.5'de identation boyutunu her zaman kilitli ve değiştirilemez olarak değiştiremiyorum. Bu benim sorunumu çözdü.
TekTimmy

5

Git Pencere -> Tercihler ve tip sekmesi (aşağıdaki gibi bir iletişim gösterecektir) Arama metni olarak:

resim açıklamasını buraya girin

Sekme politikasını değiştirmek için vurgulanan bölümlere gidin. İçin Editör ayarlarında çoğunlukla olduğu alanlarda kullanarak Girinti (yukarıda gösterilmiştir).

İçin Biçimlendirici ayarlarına Düzenlemeye aktif profil ve güncelleme ihtiyacımız Sekme politikasını `altında kullanılabilir ( Girinti -> Genel ayarlar :

resim açıklamasını buraya girin


3

Pencere-> Tercihler-> Java-> Kod Stili-> Formatter-> Düzenle-> Girinti = "Yalnızca Alanlar"


3

Eclipse'de Window » Preferences'a gidin ve ardından Formatter'ı arayın .

Çeşitli kalın bağlantılar göreceksiniz, her kalın bağlantıyı tıklayın ve use spacesyerine ayarlayın tabs.

Java formatlayıcı bağlantısında, profili düzenlemeniz ve spaces onlygirinti sekmesinde sekme ilkesini seçmeniz gerekir


2

Her iki * Yalnızca alan için * Sekme ilkesini kaçırmayın * Sarılmış çizgileri girintili yapmak için boşluk kullanın

Ben sadece ikinci şey kontrol ve Combobox CheckStyle başarısız devam etti Tabs Sadece bıraktı .. FYI, ben Tercihler hakkında konuşuyorum> Java> Formatter> Düzenle ...


2

Tutulma biçiminde xml:

Sekme için:

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

Alan için:

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

0
  • Tıklama Penceresi »Tercihler
  • Expand Java »Kod Stili
  • Formatlayıcı'yı tıklayın
  • yeni tıkla
  • Profil adını seçin
  • Tamam'ı tıklayın
  • Düzenle düğmesini tıklayın
  • Girinti sekmesini tıklayın
  • Genel Ayarlar altında Sekme ilkesini şu şekilde ayarlayın: Yalnızca boşluklar
  • Tamam'ı tıklayın.


0

Mac OS X üzerinde diğer cevaplara bir arttırmasında gibi, "Tercihler" menüsü, Eclipse altında değil Pencere (Windows / Linux Eclipse dağıtımlarının aksine). Diğer her şey hala bu noktayı geçen diğer cevapların işaret ettiği gibi.

IE: Java Formatter aşağıdaki adresten edinilebilir:

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

Buradan biçimlendiriciyi düzenleyin ve sekme ilkesi "Girinti" altında ayarlanabilir.


0

Mac OS X'te eclipse mars'ta (EE), bunu tercihlerde bulabilmemin tek yolu Tercih iletişim kutusunu açmak ve Formatter yazmak, ardından Java-> Kod Stili-> Formatter'ı seçmekti.

Java-> Kod Stili'nin Formatter'a erişimi yok!


0

ANT editörünü de unutmayın

Nedense Ant Editör 'tab'veya için arama sonuçlarında görünmüyor'spaces' öylesine kaçırılabilir.

Windows > Tercihler altında

  • Ant » Editör » Biçimlendirici » Tab size: (4'e ayarlı)
  • Ant » Editör » Formatlayıcı » Use tab character instead of spaces (işaretini kaldırın)

0

Kodlama stilinin biçimlendiricisini yapılandırmak için XML dosyasını kesinlikle kullanabilirsiniz. Biçimlendirici dosyası, ekip üyelerinizde aynı kodlama stiline ve yönergelerine sahip olmanıza yardımcı olur.

Aşağıdaki ayar değişkenlerini eklemek Eclipse kullanarak kodlama yaparken a tab= 2 spacesmuhtemelen Tabkısayol tuşunu kullansanız bile uzaya dönüşür .

<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"/>

En iyi,

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.