我输入我的.html.erb文件,我意识到vim缩进的这种奇怪的行为.
<p>
<strong>Expires On:</strong>
<%= @item.expires_on %>
</p>
Run Code Online (Sandbox Code Playgroud)
在</p>这发生之后我怎么按回车?
<p>
<strong>Expires On:</strong>
<%= @item.expires_on %>
</p>
_ <= new cursor space
Run Code Online (Sandbox Code Playgroud)
请注意,我确实有filetype indent on.
Vim 的默认 html 缩进不会缩进<p>标签。这意味着,它不仅不会删除之后的缩进级别</p>,而且也可能不会在打开之后自动添加缩进级别<p>。如果是这种情况,您可以通过设置变量来更改此行为g:html_indent_tags。它应该包含与标签名称匹配的正则表达式。例如:
let g:html_indent_tags = 'p\|li\|nav'
Run Code Online (Sandbox Code Playgroud)
p这将为,li和标签添加一定程度的缩进nav。如果您<p>只想要标签,只需将其设置为“p”:
let g:html_indent_tags = 'p'
Run Code Online (Sandbox Code Playgroud)
如果 vim 确实缩进了首字母<p>,那么您的选项可能indentkeys不包含 ">" 字符。您可以通过执行来检查其内容set indentkeys。如果它不包含<>>,您可以将其添加到.vim/ftplugin/html.vim:
setlocal indentkeys+=<<>
Run Code Online (Sandbox Code Playgroud)
编辑:
不幸的是,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'
Run Code Online (Sandbox Code Playgroud)
请注意使用.=代替=。这是就地串联。您需要它,因为此时该变量已经存在并且您不想删除它。
| 归档时间: |
|
| 查看次数: |
2893 次 |
| 最近记录: |