2016-07-07 4 views
6

HTMLのサブライムテキスト3で自動インデント機能を使用しようとしています。 htmlでいくつかのブロックコメントがあり、ブロックコメントに当たるまでEdit> Line> Reindentが選択できます。サブライムテキストのインデントエラー

<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

コメントブロックなしでRe-indentedするとうまくインデントされます。 –

+0

が確かめることができます、正確な問題はST3で私に起こります3103 – Sebastianb

答えて

13

私はここでの問題を記録している:崇高テキストは、デフォルトでは、コメントのインデントを維持するために設定されているため、この動作のためのhttps://github.com/SublimeTextIssues/Core/issues/1271

理由があります。これを無効にするには:

  • オープンコマンドパレット
  • 選択Package Control: Install Package
  • 選択PackageResourceViewer
  • :それはない、すでにインストールされていない場合
  • PackageResourceViewerをインストールインストールした場合

    1. Package Controlをインストールします。
  • [コマンドパレット
  • タイプPRV: O
  • 選択PackageResourceViewer: Open Resource
  • 選択Default
  • 選択Indentation Rules - Comments.tmPreferences
  • 変更<true/>保存
  • <false/>から<key>preserveIndent</key>下のファイル
  • 、字下げコメントで正しく機能するようになりました。


    それはコメントでタグに基づいてインデントを変更しないように、私はまた、コメントを無視するように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; 
      

      ST3の次のリリースが利用可能になったとき

      (?#|--&gt;) 
      

      (これは終了コメント正規表現をコメントアウト)

    7. それ

    保存しかし、あなたを削除するには良い考えかもしれません適切に修正された場合は上書きされます。このようにして、これらのファイルの更新を引き続き取得します。そうしないと、保存したバージョンに慣れてしまいます。これを行うには:

    1. Preferences - >Browse Packages
    2. Indentation Rules - Comments.tmPreferencesファイル

    DefaultフォルダにHTMLフォルダに

  • Go]を削除し、削除し、問題が次で修正されていなかった場合これらの変更を単純に再作成することができます。

  • +1

    素晴らしいです。非常に良い答え。私はステップを踏んで、すべてが期待通りに機能しました。私は詳細レベルを高く評価します。私はこれに将来の更新を見ておくつもりです。 –

    +1

    ありがとうございました! – Ash

    +0

    このパッケージは、インデントが壊れているファイルを "修正"するのにも役立ちます:https://packagecontrol.io/packages/Normalize%20Indentation – kursus

    1

    サブライムテキスト3(ビルド3103と3114)であなたの例を試してみましたが、あなたが正しいと言えば、インデントがコメントブロックを見つけたときにインデントが壊れます。

    字幕機能は常にpretty weakであり、HTMLは動作しない唯一の文脈ではありません(編集:PHPでも確認されていますが、ほとんど同じ動作です)。

    まだ提出されていない場合はsubmitting the issueをお勧めします。

    +0

    ありがとうございます、私は見て、すでにそこにない問題を提出します。 –

    +0

    この問題がありますhttps://github.com/SublimeTextIssues/Core/issues/1271 – AdamS

    関連する問題