Eclipse'de boşluk izini otomatik olarak nasıl kaldırabilirim?


422

Sorunun iki kısmı var, bunlardan biri zaten cevabım var.

  1. Düzenlenen tüm dosyadan sondaki boşluk otomatik olarak nasıl kaldırılır ? -> Cevap: bunu dosyaya herhangi bir kayıtta yapacak şekilde ayarlanabilen AnyEdit eklentisini kullanın .
  2. İzleyen boşlukları yalnızca değiştirdiğim satırlardan otomatik olarak nasıl kaldırabilirim ? -> Bunu bilmiyorum ve herhangi bir yardımı takdir ediyorum.

97
Eclipse'i yazmadım sondaki boşluk eklemeyi bırakmaya ikna edebilsem mutlu olurum.
divegeek

5
Bir eklentiye ihtiyacınız yok. Sadece C ++ -> Editör -> Eylemleri Kaydet seçeneklerini kullanın. Ayrıca Genel -> Editörler -> Metin Editörleri -> Boşluk karakterlerini göster (ayrıntılı ayarlar için üzerine tıklayın) son derece kullanışlıdır.
Trass3r

3
Varsayılan kaydetme eylemi, Java Doc yorumlarındaki arka boşlukları kırpmaz. Ayrıca, yalnızca Java dosyalarında çalışması ile sınırlıdır. Sondaki tüm boşlukları hata olarak işaretleyen bir kod inceleme sistemimiz var. AnyEdit, tüm dosya türleri için sondaki boşluklarla ilgilenmek için paha biçilmezdir. Ayrıca, şirketinizin üçüncü bölüm yazılımlar için hangi kısıtlamalara sahip olduğunu bulmak da yararlı olabilir. AnyEdit eklentisinin bir EPL Lisansı vardır ( opensource.org/licenses/eclipse-1.0.php ) [Buradan: andrei.gmxhome.de/anyedit/index.html]
Ashutosh Jindal

1
Sorunuzu görüp AnyEditPlugin'in neden olduğunu öğreninceye kadar satırların sonunda aniden beyaz boşlukların neden kaldırıldığını anlayamadım. Teşekkürler!
Tzafrir

Yanıtlar:


142
  1. Boşluğun düzenlenmekte olan tüm dosyadan kaldırılması :

Preferences-> Java-> Editors-> Save Actions-> kontrol Perform the selected actions on save-> kontrol Additional actions-> tıklayın Configure..-> Code organizingsekmeye git -> kontrol Remove trailing whitespace-> seçin All lines.

  1. Boşluğu yalnızca değiştirdiğim satırlardan kaldırmak için :

Preferences-> Java-> Editor-> Save Actions-> işaretleyin " Perform the selected actions on save-> işaretleyin Format source code-> seçin Format edited lines.

Tıklatmaya gerek olmadığını unutmayın Configure the formatter settings on the Formatter page- tüm kod stilleri otomatik olarak arka boşluğun kaldırılmasını içerir. En azından Formatter yapılandırmasında bunun için bir ayar bulamadım ve yerleşik Java Sözleşmeleri, Eclipse, Eclipse 2.1 stilleri ve GoogleStyle için kutudan çıktı .

Bu kurulumu kullanırken , sorunun ayrıca 1. bölümün çözümünü de kapatmanız gerekir .

Eclipse version checked: 4.5.2, 4.11

Biçimi nasıl tanımlarım? Formatlayıcı bağlantısını veya Yapılandır düğmesini kullanıyor muyum?
Vijay Kotari

Bu seçenek PHP için PDT'de Eylemleri Kaydet altında da görünür.
thaddeusmt

1
@VijayKotari Yanıt düzenlendi - biçim tanımlamaya gerek yok.
Jan Żankowski

350

Sorularınızın Java koduyla ilgili olduğunu varsayıyorum. Bu durumda, aslında 1) gerçekleştirmek için herhangi bir eklentiye ihtiyacınız yoktur. Tercihler -> Java -> Editör -> Eylemleri Kaydet'e gidebilir ve arka boşluğu kaldıracak şekilde yapılandırabilirsiniz .

Sesleri sayesinde bunu takım çapında bir ortam haline getirmek istersiniz, değil mi? Hayatı kolaylaştırmak ve her yeni çalışma alanınız olduğunda bunu ayarlamayı hatırlamak zorunda kalmamak için, kaydetme eylemini kodla birlikte SCM'nize depolanan projeye özgü bir tercih olarak ayarlayabilirsiniz.

Bunu yapmak için projenize sağ tıklayın ve Özellikler -> Java Düzenleyicisi -> Eylemleri Kaydet'e gidin . Buradan, projeye özgü ayarları etkinleştirebilir ve arka boşluğu (diğer faydalı şeylerin yanı sıra) kaldıracak şekilde yapılandırabilirsiniz.

Not : Bu seçenek Eclipse Kepler (4.3) ve sonraki sürümlerde kaldırılmıştır.

NB # 2: Seçenek Eclipse Luna'ya geri döndü -Luna Service Release 1a (4.4.1)


2
Teşekkürler, gcastro - AnyEdit'ten daha kolaydır. Ne yazık ki, tüm dosyanın düzenlenmesi için .. hala sadece değiştirdiğim satırlar için nasıl yapılacağını bilmiyorum - şu anda muhtemelen imkansız gibi görünüyor.
Jan Żankowski

7
Java için iyi; C / C ++ için de iyi; ancak PyDev'deki Python için değil.
Craig McQueen

14
PyDev'deki Python için bunun için bir özellik isteği yaptım. Bakınız: sourceforge.net/tracker/…
Craig McQueen

5
FYI ... PHP için de aynı kavram. Tercihler -> PHP -> Editör -> Eylemleri Kaydet.
seanmrafferty

1
Bunun işe yarayıp yaramadığını bilmiyorum, ama kesinlikle Eclipse'nin (Kepler) en son sürümünde çalışmıyor gibi görünüyor. Formatlayıcıyı yalnızca düzenlenmiş satırlarda çalıştırabilirsiniz, ancak boşlukları kırpmak tüm satırlarla sınırlıdır veya boş satırları yok sayarak - gerçekten sinir bozucu.
Thor84no

73

Bunu yapmak için herhangi bir eklentiye ihtiyacınız yok. Örneğin, JAVA'yı kodlarsanız, kaydetme işlemlerini yapılandıran izleyen boşlukları silebilirsiniz:

Tutulma 3.6

Preferences-> Java-> Editors-> Save Actions-> Kontrol Et Perform the selected actions on save-> Kontrol Et Additional actions-> Configure..düğmesini tıklayın.

Gelen Code organizingsekmesi, çekRemove trailing whitespace


4
Bu, "Sondaki boşlukları kaldır" için "Ek işlemler" altına bakmayı özellikle öneren ilk yanıttır. Teşekkürler.
DavidRR

7
Bu sadece .java dosyaları için çalışır, genellikle düzinelerce
uzanıyorum

Eclipse 4.12 için çalışır
Matilda Smeds

46

Bunu yapmak için kod biçimlendirici seçeneğiniz varsa PyDev bunu Ctrl+ Shift+ File yapabilir veya during saving:

Eclipse-> Window-> Preferences-> PyDev-> Editor-> Code Style-> Code Formatter:

En azından bunları kullanıyorum:

  • Kaydetmeden önce otomatik biçimlendirme
  • Doğru trim çizgileri?
  • Dosyanın sonuna yeni satır ekle

5
Bu, yalnızca düzenlenmiş satırlardan alan soyma sorununu kapsamaz . Ayrıca tüm Kod Biçimlendirici seçeneklerini çalıştırdığı ve denetlenmeyen bir seçenek "yoksay / kullan" ile aynı olmadığı için tehlikeli bir özelliktir . Örn: "Virgülden sonra boşluk kullan" seçeneği işaretli değilse Kod Biçimlendirici seçeneği yok saymak yerine bu boşlukları kaldıracaktır .
JCotton

7
PyDev Kod Biçimlendiricide yeni bir seçenek vardır: Kaydetme sırasında, yalnızca değiştirilen satırlara biçimlendirme uygulayın.
warvariuc

2
Çok genel bir cevap vermek için -1 — soru hemen hemen beyaz alanla ilgiliydi; otomatik kod biçimlendirmeyi etkinleştirmek, kaynak taahhütlerinizin planlanmamış bir şeyler yapmaya başlayacağı anlamına gelir, çünkü taahhütler taahhüt başlığıyla ilgisi olmayan şeyler içerdiğinden dağınık bir geçmişe neden olur.
Erik Kaplun


19

Tüm dosyadaki arka boşlukları manuel olarak kaldırmak için Eclipse'de bir anahtarı eşleştirebilirsiniz, ancak yalnızca otomatik olarak kaydetme yerine istek üzerine. (Tercihler / Anahtarlar ve ardından bir anahtar kümesini Sondaki Boşluğu Dosyala / Kaldır ile eşleştirin) Bu, tüm yeni dosyaları sterilize etmek, ancak eski kodlara dokunmamak istiyorsanız yararlı olabilir.

Başka bir strateji boşlukun görsel görüntüsünü etkinleştirmektir, bu yüzden en azından sondaki boşluk eklediğinizde bunu bilirsiniz. Bildiğim kadarıyla, sadece sondaki boşlukları göstermenin bir yolu yok, ancak yanlış olduğum için mutlu olacağım.


Bu cevap için çok teşekkür ederim! Şimdiye kadar Aptana eklentisi için bulmamın tek yolu bu.
Igor Zinov'yev

11

Bir tutamda, sondaki boşlukların kaldırılmasını desteklemeyen editörler için (ör. XML düzenleyicisi), bul ve değiştir yaparak, düzenli ifadeleri etkinleştirip "[\ t] 'i bularak tüm satırlardan kaldırabilirsiniz. + $ "ile değiştirin ve" "(boş) ile değiştirin. Muhtemelen bunu yapmak için daha iyi bir regex var ama AnyEdit'i yüklemeye gerek kalmadan benim için çalışıyor.


9

Ben de AnyEdit diyebilirim. Bu belirli işlevleri sağlamaz. Ancak, siz ve ekibiniz her kaydetme eyleminde AnyEdit özelliklerini kullanırsanız, bir dosyayı açtığınızda, sondaki boşluk olmamalıdır.

Bu nedenle, bu dosyayı değiştirirseniz ve yeni sondaki boşluklar eklerseniz, kaydetme işlemi sırasında AnyEdit, bu dosyadaki tek sondaki boşluklar olduğu için yalnızca bu yeni boşlukları kaldıracaktır.

Bazı nedenlerden ötürü, kişi hatlarda sondaki boşluk tutmak gerekiyorsa değil sizin tarafınızdan değiştirildi, o zaman senin için bir cevabım yok, ben değilim emin özelliğin bu tür herhangi bir Eclipse eklentisi var ...


4
Evet, değiştirmediğim satırlardaki boşlukları tutmak istiyorum .. Bu Intellij Idea'nın varsayılan davranışıdır (satırlarımdaki boşlukları kaldır, diğerlerinde tut) ve Eclipse'de almak istiyorum . Cevap için teşekkürler.
Jan Żankowski



4

Bunu Unix komut satırı aracı sed ile yapmanın gerçekten kolay bir yolu var. Muhtemelen bunu çalıştırmak için Eclipse içinde bir makro oluşturabilirsiniz:

sed -i 's/[[:space:]]*$//' <filename>

4

@Malvineous'un dediği gibi, profesyonel değil, arka boşluğu kaldırmak için Bul / Değiştir yöntemini kullanmak için bir çözüm (aşağıda U + 0009 sekmesi ve U + 0020 boşluk dahil).
Sadece Ctrl + F tuşlarına basın (veya Command + F tuşlarına basın)

  1. bulmak [\t ][\t ]*$
  2. Boş dize ile değiştir
  3. Normal ifadeleri kullan
  4. Hepsini değiştir

extra: Satır
boşluğunu kaldırmak için boş satırları kaldırmak ^[\t ][\t ]*yerine şunu [\t ][\t ]*$
bulun:^\s*$\r?\n


1
[\t ]+$Bunun yerine nasıl [\t ][\t ]*$?
Jonah Graham

1

Sorunuzun ikinci kısmı için herhangi bir çözümün farkında değilim. Bunun nedeni, değiştirdiğimi nasıl tanımlayacağımın net olmamasıdır . Ne zaman değişti? Sadece 2 tasarruf arasında veya taahhütler arasında ... Temel olarak - unutun.

Bazı yönergelere bağlı kalmak istediğinizi, ancak kodun geri kalanına dokunmadığınızı varsayıyorum. Ancak kılavuz, ısırıklar ve parçalar için değil, genel olarak kullanılmalıdır. Benim önerim - tüm kodu kılavuz olarak değiştirin: bir kerelik bir işlemdir, ancak tüm geliştiricilerinizin proje için aynı ayarlarla aynı eklentiye (AnyEdit) sahip olduğundan emin olun.


7
Bir tasarruf eylemi olduğu için, tasarruflar arasında değişen satırlar olacaktır. Eclipse, yan çubukta işaretlemek için bu çizgileri zaten takip ediyor.
starblue

0

Git için bu komutu kullandım: git config --global core.whitespace cr-at-eol

^MSondaki karakterleri kaldırır .

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.