我不确定这是否可行,但Vim不断给我带来惊喜。我希望能够做的是采用一个文本块的格式并将其应用于选择。假设有几行如下:
<li><a href="#"><span>Something Here</span><i class="icon"></i></a></li>
<li><a href="#"><span>Something Here</span><i class="icon"></i></a></li>
<li><a href="#"><span>Something Here</span><i class="icon"></i></a></li>
我想格式化其中一行:
<li>
<a href="#">
<span>Something Here</span>
<i class="icon"></i>
</a>
</li>
然后将该格式应用于其余行。再说一遍,如果这是可行的话,也没有任何线索,但是如果它可以的话它会非常整洁 - 我经常需要实现HTML模板,其中有长行可能有5或6个嵌套标签,通常从缩进开始那里。
答案 0 :(得分:3)
你知道vim的录音功能吗?尝试做以下事情:
q
+ some character
进入录制模式q
退出录制模式@
+ some character
重现录制的操作答案 1 :(得分:3)
使用宏为您的示例输入执行此操作的方法,使用以下命令添加宏并使用@i
在一行上运行,或使用{motion}@i
在多行上运行,即运行它3行按3@i
,它将缩进所有3行。
:let @i='0f<i^M^[>>;i^M^[>>;;i^M^[;;;i^M^[<<;i^M^[<<+'
说明:
0
:移至该行的开头f<
:首先找到<
i^M^[
:进入插入模式,插入换行符并返回命令模式。>>
:缩进;
:查找下一个<
i^M^[
:重复第3步<<
:取消缩进+
:移至下一行的第一个非空白字符答案 2 :(得分:0)
作为替代方案,通过haml
html2haml
和:!
命令的内容
:%!html2haml -s | haml -q -s
通过gem install haml
和gem install html2haml
有关过滤器的更多帮助,请参阅:h :range!