当前位置:  开发笔记 > 编程语言 > 正文

如何在文本文件中"应用"退格字符(理想情况下是在vim中)

如何解决《如何在文本文件中"应用"退格字符(理想情况下是在vim中)》经验,为你挑选了3个好方法。

我有一个带有退格字符的日志文件(^ H).我正在查看Vim中的文件,很难看到发生了什么.

理想情况下,我希望能够"应用"给定行/范围内的所有^ H,以便我可以看到最终结果.

我宁愿在Vim中逐行进行此操作,但转换整个文件的解决方案总比没有好.



1> too much php..:

打开"粘贴"选项(使用:set paste),然后按下dd i 1 要应用退格键的每一行.如果删除多行甚至整个文件,这也有效.

这里的关键是你 1在插入模式下使用'输出'寄存器1的内容(你删除的行刚被放置),'paste'选项阻止Vim使用任何映射或缩写.


聪明.我喜欢.

2> 小智..:

我试着记住我之前用来"应用"退格的命令,然后我记得它:go -b - 这里是联机帮助页.(它更多来自BSD或者更多来自AT&T UNIX,如联机帮助页所示,所以如果你在Linux上,你可能需要在bsdmainutils中安装一个额外的软件包.)



3> 小智..:

简单的答案:

:%s/[^^H]^H//g

其中^^ H是:

    字面^字符

    Ctrl-V Ctrl-H

并重复几次(直到vim会告诉你没有替换

如果你想要不重复,你不介意使用%!perl:

%!perl -0pe 's{([^\x08]+)(\x08+)}{substr$1,0,-length$2}eg'

所有字符都是字面的 - 即您不必在上面的任何地方执行ctrl-v ...

应该在大多数情况下工作.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有