簡體   English   中英

IDE和編譯器的/ t間距是否不同? (IntelliJ上的JAVA)

[英]Do IDEs and compilers have different spacing for /t spacing? (JAVA on IntelliJ)

我是編程新手,剛開始攻讀計算機科學學位。 在課堂上,我被分配了創造模式的作業。 他們在課堂上使用jGRASP作為他們的IDE,而我使用IntelliJ。

我使用IntelliJ IDE創建了一個模式,以顯示“ AEV”,如屏幕快照Code和輸出ScreenShot所示 我使用空格和/ t創建模式。 為了檢查我的代碼是否與他們想要的代碼相同,我獲取了.java文件並在另一個名為jGRASP的IDE中運行了該文件。 現在,在jGRASP上,間距全部由jGRASP代碼和輸出ScreenShot決定 我不知道是什么原因造成的。

不同的IDE的“ / t”間距是否不同? 還是我需要更改某些設置?

很有可能。 標准制表符寬度為8,但有些人更喜歡顯示4列制表符,甚至顯示2列制表符。 還有一些人傾向於使用制表符縮進,而某些人則傾向於使用空格進行縮進。 這是戰斗所需要的東西。 無論您處於哪個營地,最糟糕的選擇就是將兩者混合在同一文件中。 只要所有縮進都是制表符,制表符的顯示方式都無所謂,它總是可以的。 如果沒有制表符並且所有縮進都是空格,那么制表符寬度的大小就無關緊要。 但是,如果您制作混合文件,那就麻煩了。

對於輸出類似:通常,我只會在語義上使用Tab,就像在TSV中那樣來分隔記錄,絕不會進行精確的格式設置,正是因為您無法控制如何查看它。

IDE和編譯器的/ t間距是否不同? (IntelliJ上的JAVA)

編譯器不在乎。

通常,IDE通常具有可以更改的默認TAB寬度。 默認值可能取決於主機操作系統。

真正的問題是操作系統具有不同的默認值……您通常無法更改。

如果您在(例如)Windows上編寫源代碼並且您的同事使用Linux或Mac,則會出現問題。 如果您使用TAB,但您不同意將IDE配置為具有相同數量的TAB空格,那么您的代碼對您的同事將很難看,反之亦然。

最好的解決方案是不要使用TAB字符進行縮進。 配置您的IDE以使用空格進行縮進。 然后, 無論任何人用來查看它的IDE或OS,您的代碼都將正確縮進。 請注意,可以將現代IDE輕松配置為將TAB擊鍵轉換為縮進級別的適當數量的空格。


但是我認為我的問題還不清楚。 我想知道為什么print()中的“ \\ t”在運行I / O窗口上會有不同的輸出。

這完全取決於控制台如何在輸出流中顯示TAB字符。 將TAB渲染到一定數量的固定寬度空間通常是由某些特定於OS或OS提供的軟件完成的。 它超出了Java的控制范圍。 實際上,JVM通常會發現這種渲染將如何發生 (或什至),因此無法合理地干預。

當IDE顯示控制台輸出時,IDE將負責呈現。

您知道為什么IntelliJ和jGRASP的輸出間距不同嗎?

那將是實施相應工具的人員的設計決定。 但是我想您可以配置這些工具使其行為與各自的默認設置不同。 檢查配置設置...

但最重要的是,如果您希望控制台文本間距在所有真實/虛擬控制台之間保持一致,請輸出SP字符而不是TAB。

終於找到了解決方案。 實際上,問題出在兩個IDE的制表符間距上。 默認情況下,jGrasp使用3個空格選項卡,而IntelliJ for Java使用4個空格。

在jGRASP上,如果單擊設置>字體> CSD>制表符大小:取消選中按鈕進行編輯。 jGrasp設置

在IntelliJ上,更改選項卡有點困難,因為它是在您首次創建項目時創建的。

轉到首選項>編輯器> CodeStyle:取消選中編輯器配置支持。 如果保持選中狀態,則程序包中的editorconfig文件將覆蓋IDE設置。 IntelliJ代碼樣式設置

CodeStyle下拉菜單>選擇文件(Java)>制表符和縮進>將制表符設置為3 IntelliJ Java文件設置單擊應用。

最后,再次轉到CodeStyle,然后在editorconfig上單擊“導出”以替換項目中的文件。

EditorConfig文件和editorconfig支持選項使Intellij更加混亂。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM