gpt4 book ai didi

Vim .html.erb 的奇怪缩进

转载 作者:行者123 更新时间:2023-12-04 19:17:41 24 4
gpt4 key购买 nike

我正在输入我的 .html.erb 文件,我意识到 vim 缩进的这种奇怪行为。

<p>
<strong>Expires On:</strong>
<%= @item.expires_on %>
</p>

为什么我在 </p> 后按回车键有时候是这样的?
<p>
<strong>Expires On:</strong>
<%= @item.expires_on %>
</p>
_ <= new cursor space

请注意,我确实有 filetype indent on .

最佳答案

Vim 的默认 html 缩进不缩进 <p>标签。这意味着,它不仅不会删除 </p> 之后的缩进级别。 ,但它也可能不会在打开后自动添加缩进级别 <p> .如果是这种情况,您可以通过设置变量 g:html_indent_tags 来更改此行为。 .它应该包含一个与标签名称匹配的正则表达式。例如:

let g:html_indent_tags = 'p\|li\|nav'

这将为 p 添加一个缩进级别。 , linav标签。如果您想要 <p>仅标签,只需将其设置为“p”:
let g:html_indent_tags = 'p'

如果 vim 真的缩进初始 <p> ,那么您的 indentkeys 可能是选项不包含“>”字符。您可以通过执行 set indentkeys 检查其内容。 .如果不包含 <>> , 你可以把它添加到 .vim/ftplugin/html.vim :
setlocal indentkeys+=<<>

编辑 :

不幸的是,vim 似乎释放了那个变量......这对我来说根本没有意义,但是你可以做的一件事就是将该变量赋值添加到 .vim/after/ftplugin/html.vim反而。这应该可以解决问题。就个人而言,我做了一些不同的事情——我已经将默认文件复制到 .vim/indent/html.vim并注释掉删除变量的行。仍然使用 after目录可能是一个更好的主意。

编辑 :

html5插件似乎没有遇到这个问题。直接安装它可能是个好主意。否则, g:html_indent_tags变量仍然是要去的地方,但最好的地方可能是 ~/.vim/after/indent/html.vim :
let g:html_indent_tags .= '\|p\|nav\|othertags'

注意 .=的用法而不是 = .这是就地串联。您需要它,因为此时变量已经存在并且您不想删除它。

关于Vim .html.erb 的奇怪缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com