vim更改具有不同文本位置的多行文本?

时间:2018-09-08 22:01:11

标签: vim replace

如何更改多行结束标记中的文本? 开头很简单-我用c-v制作了一个可视块,并从行尾更改了如何执行此操作??

        <li><a href="#" class="text-white">Follow on Twitter</a></li>
        <li><a href="#" class="text-white">Like on Facebook</a></li>
        <li><a href="#" class="text-white">Email me</a></li>

1 个答案:

答案 0 :(得分:0)

作为文本编辑器(除了语法突出显示之外,它没有特殊的强大文本结构模型,并且信息几乎不用于编辑任务),Vim对此并不提供一种优雅而简单的解决方案。但是,有多种可能的方法:

替代

除非您要设置一些映射,否则输入的内容很多,但非常通用:

:1,3substitute#</li>$#</div>#

把戏

当您特别询问可视块模式时,可以暂时将文本右对齐以执行此操作:

:1,3right
" Use <C-v> to select the (now aligned) tags, and edit them.
:1,3left    " Or re-indent via 3==

借助插件帮助

vim-multiple-cursors是在当前缓冲区内具有多个编辑位置的思想的最重要实现之一,这些编辑位置并行地对每个编辑位置进行编辑。通过其映射,您可以选择所有结束标签,然后一起编辑它们(例如,通过cdiv<Esc>)。