css - Vim 中 CSS 的缩进问题

标签 css vim textmate indentation

我最近从 TextMate 转向了 Vim,我真的很喜欢这种转变。然而,我对 Vim 使用 CSS 语法处理大括号内缩进的方式感到不满。我使用 simple_pairs.vim,这可能与我的问题有关,也可能无关,但我不这么认为,因为在 PHP、JavaScript 等中一切正常。让我解释一下……

我通常使用缩进按上下文对 CSS 规则进行分组,如下所示:

ul#nav {
  margin: 10px;
}
  ul#nav li {
    float: left;
    margin-right: 4px;
  }

这意味着当我输入 ul#nav li 规则,然后输入 {(自动插入相应的 })并按下回车键时,我希望右大括号与 ul#... 处于相同的缩进级别,但我得到的是这样的:

ul#nav {
  margin: 10px;
}
  ul#nav li {
}

所以我必须手动缩进额外的步骤。就像我说的,用 PHP、JavaScript 等做同样的事情,效果很好。有谁知道我该如何解决这个问题?我对 Vim 的语法定义文件了解不够,无法弄清楚 PHP 语法文件中的内容使其工作,并将其移植到 CSS 文件中……谢谢。

最佳答案

我在这里找到了嵌套大括号的非常好的缩进代码:

https://gist.github.com/762326/bcbd35239db7f26447f1c2323037d20a5219471d

你可以将它保存在 .vim/indent/css.vim 中,它会比默认的缩进 CSS 做得更好。

此外,它也适用于 .less 文件,但您可能必须在 .vimrc 文件中将它们关联起来。

github 上的脚本和官方的 css.vim 是同一个维护者,只更新了 6 年。他们有几条不同的线路。

关于css - Vim 中 CSS 的缩进问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2519427/

相关文章:

css - 嵌套的 css 缩放转换转换不会相互抵消

Vim:撇号 (') or backtick (` ) 后跟一个数字做什么

Vim,我如何返回到粘贴一些被拉出的文本之前的位置?

javascript - vim 使用 tidy 和 Jsbeautifull 自动格式化 html 文件和 <script> 标签

eclipse - 在textmate中,如何像在eclipse中一样进行javadoc风格的注释?

r - 如何将 TextMate 中选定的文本(或一行)发送到在终端上运行的 R

html - TextMate:突出显示插入位置的匹配标签

html - 如何在文本左对齐且设置了最大宽度的情况下将 <ul> 内容居中?

javascript - Fancybox 脚本不工作

javascript - Windows 8 Metro 应用程序是否提供所有 JavaScript 功能?