我有一个带有退格字符的日志文件(^ H).我正在查看Vim中的文件,很难看到发生了什么.
理想情况下,我希望能够"应用"给定行/范围内的所有^ H,以便我可以看到最终结果.
我宁愿在Vim中逐行进行此操作,但转换整个文件的解决方案总比没有好.
too*_*php 12
打开"粘贴"选项(使用:set paste),然后按下dd i <CTRL-R> 1 <ESC>要应用退格键的每一行.如果删除多行甚至整个文件,这也有效.
这里的关键是你<CTRL-R> 1在插入模式下使用'输出'寄存器1的内容(你删除的行刚被放置),'paste'选项阻止Vim使用任何映射或缩写.
小智 8
简单的答案:
:%s/[^^H]^H//g
Run Code Online (Sandbox Code Playgroud)
其中^^ H是:
并重复几次(直到vim会告诉你没有替换
如果你想要不重复,你不介意使用%!perl:
%!perl -0pe 's{([^\x08]+)(\x08+)}{substr$1,0,-length$2}eg'
Run Code Online (Sandbox Code Playgroud)
所有字符都是字面的 - 即您不必在上面的任何地方执行ctrl-v ...
应该在大多数情况下工作.
| 归档时间: |
|
| 查看次数: |
10930 次 |
| 最近记录: |