如何更换或VIM正则表达式找到非打印字符?
-
27-09-2019 - |
题
我对此上来如^ C或^ B一些非打印字符的文件,我想查找和替换这些字符,我怎么去这样做?
解决方案
说你要与替换C ^ C:
:%s/CtrlVC/C/g
其中控制 V C 装置类型V随后℃,同时保持控制压。
控制 V 让你输入控制字符。
其他提示
仅卸下控制符号:
:%s/[[:cntrl:]]//g
卸下不可打印的字符(注意,在之前的版本8.1.1〜这除去非ASCII字符也):
:%s/[^[:print:]]//g
它们之间的区别可以看出,如果你有一些不可打印-非控制字符,例如零宽度空间:
节省您的VIM文件后,试试这个(假设你是在Linux环境下)
:%!tr -cd '[:print:]\n'
使用我工作Vim的控制字符这里的答案都不对。我不得不进入一个unicode范围。
:%s/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]//g
这unicode的范围在此的其他职位实测值: https://stackoverflow.com/a/8171868/231914
您可以使用:
:%s/^C//g
要得到^C
保持控制键,按V
然后C
(两者在保持控制键)和^C
就会出现。这将找到所有出现的东西就没有更换。
要删除这两个^C
和^B
可以这样做:
:%s/^C\|^B//g
不隶属于 StackOverflow