2016-07-07 92 views
6

我試圖在Sublime Text 3中使用HTML中的自動縮進功能。我在html中選擇了一些塊註釋,然後選擇「編輯」>「行」>「重載」作品,直到遇到塊註釋爲止。崇高文本的縮進錯誤

嘗試這裏的縮進例如:

<html> 
<head> 
<title>Testing Indent</title> 
</head> 
<body> 
<table> 
<tr> 
<td> 
Cell 1 
</td> 
</tr> 
<tr> 
Cell 2 
<!--Block Comment Here 
And a Little More Here 
--> 
</tr> 
</table> 
</body> 
</html> 

,它原來是這樣的:

<html> 
<head> 
    <title>Testing Indent</title> 
</head> 
<body> 
    <table> 
     <tr> 
      <td> 
       Cell 1 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Cell 2 
<!--Block Comment Here 
And a Little More Here 
--> 
</td> 
</tr> 
</table> 
</body> 
</html> 

有什麼想法?

+0

它沒有評論是否工作? –

+0

是的,當它沒有註釋塊進行重新縮進時,縮進就好了。 –

+0

可以確認,確切的問題發生在我與ST3 3103 – Sebastianb

回答

13

我已經登錄這裏的問題:https://github.com/SublimeTextIssues/Core/issues/1271

這樣做的原因行爲是因爲崇高的文本,默認情況下,設置保留意見的壓痕。要禁用此:

  1. 安裝Package Control如果尚未安裝
  2. 安裝PackageResourceViewer如果尚未安裝:
    • 打開命令面板
    • 選擇Package Control: Install Package
    • 選擇PackageResourceViewer
  3. 打開命令面板
  4. 類型PRV: O
  5. 選擇PackageResourceViewer: Open Resource
  6. 選擇Default
  7. 選擇Indentation Rules - Comments.tmPreferences
  8. 更改<true/><key>preserveIndent</key><false/>
  9. 保存文件

Reindentation現在可以正確處理評論。


我還建議編輯HTML縮進規則以忽略註釋,以便它不會根據註釋中的標記更改縮進。即否則

<html> 
<head> 
<title>Testing Indent</title> 
</head> 
<body> 
<table> 
<tr> 
<td> 
Cell 1 
</td> 
</tr> 
<tr> 
Cell 2 
<!-- 
Block Comment Here 
<td> 
And a Little More Here 
</td> 
--> 
</tr> 
</table> 
</body> 
</html> 

將成爲:

<html> 
<head> 
    <title>Testing Indent</title> 
</head> 
<body> 
    <table> 
     <tr> 
      <td> 
       Cell 1 
      </td> 
     </tr> 
     <tr> 
      Cell 2 
      <!-- 
      Block Comment Here 
      <td> 
       And a Little More Here 
      </td> 
     --> 
    </tr> 
</table> 
</body> 
</html> 

要做到這一點:

  1. 打開命令調色板
  2. 類型PRV: O
  3. 選擇PackageResourceViewer: Open Resource
  4. 選擇HTML
  5. 選擇Miscellaneous.tmPreferences
  6. 變化

    <key>scope</key> 
    <string>text.html</string> 
    

    <key>scope</key> 
    <string>text.html - comment</string> 
    

    |--&gt; 
    

    (?#|--&gt;) 
    

    (這注釋掉註釋結束正則表達式)

  7. 保存

然而,當ST3的下一個版本是可用的,這可能是一個好主意,然後刪除覆蓋,以防萬一它被正確地固定。這樣,您將繼續獲得這些文件的更新,否則您將被保存在您保存的版本中。要做到這一點:

  1. Preferences - >Browse Packages
  2. 刪除HTML文件夾
  3. 進入該文件夾Default並刪除Indentation Rules - Comments.tmPreferences文件

如果該問題不固定,在未來構建,您可以簡單地重新創建這些更改。

+1

太棒了。非常好的答案。我遵循這些步驟,一切按預期工作。我很欣賞細節的程度。我會密切關注未來的更新。 –

+1

謝謝隊友! – Ash

+0

該軟件包還可以幫助「修復」已壓縮縮進的文件:https://packagecontrol.io/packages/Normalize%20Indentation – kursus

1

在Sublime Text 3(構建3103和3114)中嘗試了您的示例,並且您是正確的,縮進會在找到註釋塊時中斷。

顯然,重新注入功能總是pretty weak而HTML並不是它不起作用的唯一上下文(編輯:在PHP中也證實了,幾乎相同的行爲)。

如果它尚未提交,我建議submitting the issue

+0

謝謝,我會看看,並提交它不存在的問題。 –

+0

有這個問題https://github.com/SublimeTextIssues/Core/issues/1271 – AdamS