Sublime Text没有正确缩进HTML

时间:2014-09-09 15:02:18

标签: html sublimetext2 indentation auto-indent

相关但不完全相同的问题:Sublime Text indentation behavior

我看过很多视频,其中自动完成HTML标签后,自动按Enter键会导致结束标记出现两行,并且光标在第二行上正确缩进,在开始和结束标签之间。

在我的情况下,Sublime Text 2中的自动添加功能似乎运行不佳。这正是发生的事情(可以在下面的gif中看到)。

autoindenting problem in sublime text 2. The following list describes the exact problem.

  1. 在写入代码后按Tab键自动完成结束标记。
  2. 按enter键,结束标记一行。
  3. 再次按Enter键,将结束标记放在第三行。
  4. 按向上键进入第二行。
  5. 再次按Tab键,我希望正确缩进,但相反,它会将我带到第三行结束标记的末尾。
  6. 再次按向上键再次进入第二行。
  7. 再次按Tab键,最后正确缩进线。
  8. 继续撰写更多HTML。
  9. 这是7次击键,在正常情况下应该是2次击键。这适用于我在HTML中使用的每个标记,并且非常令人沮丧。

    请注意这只发生在HTML中。下面是CSS中自动对焦功能正常工作(只有一次击键)的GIF。

    autoindent function working perfectly fine in css. hitting tab once creates three lines, with the cursor properly indented on the second line.

    我在ST2上安装了很少的不相关的软件包。以下是设置 - 用户文件的内容。

    {
        "color_scheme": "Packages/Theme - Spacegray/base16-ocean.dark.tmTheme",
        "ignored_packages":
        [
            "Vintage"
        ],
        "theme": "Spacegray.sublime-theme",
        "margin": 0,
        "fold_buttons": false,
        "draw_minimap_border": true,
        "auto_complete_commit_on_tab": false
    }
    

    为什么我在Sublime Text 2中的自动添加功能会这样做?我该如何解决?

    编辑: @Shomz表示这是默认情况下HTML缩进的工作原理。我可以使用任何插件/解决方法来获得所需的效果吗?

1 个答案:

答案 0 :(得分:1)

尝试安装Emmet插件,以前称为Zen Coding。它允许您使用类似CSS选择器的语法输入HTML,例如

html>body>div.main

并按 Tab 为您提供

<html>
<body>
    <div class="main">|</div>
</body>
</html>

其中|是光标位置。更重要的是,对于您目前的问题,只需输入body 标签即可获得

<body>
    |
</body>
就像你在寻找一样。有关所有详细信息,请参阅Emmet docs