2010-04-14 72 views
22

有沒有什麼辦法說服Eclipse使用製表符而不是空格來縮進其內置的Java內容協助提議(例如創建一個覆蓋父類中方法的空方法)?如何讓Eclipse爲Java內容輔助插入製表符而不是空格?

我可以找到唯一與外觀相關的設置是在Windows/Preferences/General/Editors/Text Editors /插入標籤的空白處,並且此設置未被選中。

(編輯:一些海報已經指出的Java /代碼樣式/格式化/縮進/標籤的政策,這被設置爲「僅標籤」)

目前,我記得要選擇它們並重新格式爲<Ctrl>+<Shift>+<F>

+1

但是你有一個活動的格式化程序,在其常規設置中「選項卡策略」設置爲「僅限空間」?檢入首選項/ Java /代碼樣式/格式器/按鈕編輯。 – VonC 2010-04-14 10:32:34

+0

@Simon不用介意:如果格式化工作正常,格式化程序就很好。我添加了一個引用可能與您的問題相關的錯誤的答案。 – VonC 2010-04-14 10:44:00

+0

@VonC:是的,並且「標籤策略」設置設置爲「僅限制表」 – 2010-04-14 10:45:06

回答

7

這似乎是目前一個bug(不固定在3.5列車):

bug 44755(徵求意見,同時也適用於其他的重構JDT操作)

也與bug 231832,涉及錯誤在AST重寫...

我相信這是ASTRewrite的問題,而不是與ASTRewrite的客戶端。 我們必須確保代碼格式化程序設置可用於重寫 部分。
移至JDT/Core進行調查。

檢測在3.4晚,還沒有固定的3.5

+1

4.5.0,仍然不固定.... – 2015-09-14 13:48:46

2

有在的Java /代碼樣式/格式化的喜好來看看
創建自己的個人資料,並設置「縮進」 /「選項卡政策」到「標籤只有」

+1

謝謝,但這已經設置 – 2010-04-14 10:46:26

+0

它適用於我。 Thanxxx。 – LonliLokli 2011-05-29 17:50:15

1

首選項>的Java>代碼樣式>格式化>編輯>縮進>僅對前導縮進複選框使用選項卡

+0

我沒有看到這個確切的設置,但同一對話框中的「選項卡策略」設置設置爲「僅限制表」。 – 2010-04-14 10:47:29

+0

我發現在Windows Eclipse 3.5.1 – 2010-04-15 01:51:35

1

我設置的方式是在編輯器 - >保存動作偏好設置中啓用「格式源代碼」。

這樣它就會在保存時重新格式化源代碼。

+0

聰明,但我不想這樣做,因爲它會在源代碼控制差異中引入太多的噪音。 – 2010-04-14 10:46:06

+0

確定這裏是另一個腦波(雖然它可能有點乏味) 轉到java-> Editor-> Templates,編輯您使用的每個模板並通過粘貼到可以將標籤重新格式化爲空格的編輯器來修復它們,然後粘貼返回固定版本。 – 2010-04-14 11:01:40

+0

我最感興趣的模板似乎是在其他地方定義的(在Java /代碼風格/代碼模板/代碼/方法體),但這些只是給出了方法的主體,並且根本沒有縮進! – 2010-04-14 11:21:41

1

我也有這個問題。這個問題原來是某些配置被埋在我的工作區的某個地方。我創建了一個新的工作區並重新導入了我的項目,並且我的選項卡不再被轉換爲空格。

1

我確定編輯>智能插入模式沒有被選中,這似乎幫助我配置縮進和格式設置不起作用。運行Eclipse 3.7.0。

+0

謝謝,對我來說也是如此。完全隨機。 – Nande 2014-08-08 00:50:03

23

感謝Simon Nickerson的評論,我發現了這個解決方案,這是他的編輯中原始海報的意思。找到設置後,我看到他們在說什麼。然而,從這條路開始就走了一段路,所以它沒有給那些剛接觸Eclipse的人或與我一樣遠離它幾年的人給出明確的答案,就像我一樣。所以我會在這裏給出完整的路徑:

  1. 轉到項目 - >屬性。
  2. 在結果框中,轉到「Java代碼樣式」 - >「格式化程序」。
  3. 單擊方框右上方的「配置工作區設置」鏈接。
  4. 單擊名稱旁邊的編輯按鈕。
  5. 將「標籤策略:」下拉框更改爲「僅限空格」,因爲標籤是邪惡的,並且不可避免地導致格式不正確的代碼。 > :-(這也是您可以真正影響文件中縮進大小和製表大小的地方
  6. 您將需要更改框頂部的「配置文件名稱」以保存更改
  7. 謝天謝地,一旦你點擊「確定」,Eclipse就會將你的配置文件用於你當前的項目,這樣你就完成了這一步。

現在,真正打破的是這些設置會覆蓋更多的預先界面,用於在「Windows/Preferences/General/Editors/Text Editors /爲製表符插入空格」中更改類似聲音的設置。對於編輯器相對較新的人來說,這看起來就像設置默認tabs = spaces設置的地方。找到真正的答案r,很顯然,這只是用於一般文本編輯,並且需要在配置文件中爲當前語言設置語言特定的設置。不過,這應該會讓noobs更清晰一些。 ;-)

+0

謝謝。這有很大的幫助。 =) – adelarsq 2013-02-01 13:58:22

+2

這是如何回答這個問題? OP希望使用*選項卡*,但此答案詳細說明如何使用*空格*。即使您在第5點選擇「僅限制表」,這也無濟於事(請參閱OP的評論:http://stackoverflow.com/questions/2636589/how-can-i-get-eclipse-to-insert -tabs-INSTEAD-OF-空間換Java的內容輔助#comment2650643_2636589)。 – 2014-01-31 12:48:32

+1

@PeterJaric不要問偏執狂。 Bigots只是在探索他們的偏見。 – Val 2014-07-11 17:13:46

1

即使在文本編輯器首選項中設置了插入空格以供製表符選項並將我的格式化器配置文件選項卡策略設置爲空格後,Eclipse仍然插入了製表符。只有從文件中刪除所有選項卡後,才能正確插入製表符的空格。發現這一點之後,我確定在Text Editor偏好設置中插入空格以供製表符選項似乎沒有任何效果,並且它是對格式化器配置文件選項卡策略的更改,可實現所需的結果。

0

另一種解決方案,「爲我工作」,即使其他的解決方案沒有工作(版本:3.8.1):

首選項>的Java>代碼樣式>格式化>編輯>縮進>使用空格縮進包裝行 - 設置未選中

這實質上是「智能標籤」選項。它適用於格式化程序,但它錯誤地將代碼生成設置爲僅使用空格。煩人的是,解決方案打破了格式化程序。

相關問題