How do I replace or find non-printable characters in vim regex?

RegexVimNon Printable

Regex Problem Overview


I have a file with some non-printable characters that come up as ^C or ^B, I want to find and replace those characters, how do I go about doing that?

Regex Solutions


Solution 1 - Regex

Removing control symbols only:

:%s/[[:cntrl:]]//g

Removing non-printable characters (note that in versions prior to ~8.1.1 this removes non-ASCII characters also):

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

The difference between them could be seen if you have some non-printable-non-control characters, e.g. zero-width space:

enter image description here

Solution 2 - Regex

Say you want to replace ^C with C:

:%s/CtrlVC/C/g

Where CtrlVC means type V then C while holding Ctrl pressed.

CtrlV lets you enter control characters.

Solution 3 - Regex

Try this after saving your file in vim (assuming you are in Linux environment)

:%!tr -cd '[:print:]\n'

Solution 4 - Regex

None of the answers here using Vim's control characters worked for me. I had to enter a unicode range.

:%s/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]//g

That unicode range was found on this other post: https://stackoverflow.com/a/8171868/231914

Solution 5 - Regex

You can use:

:%s/^C//g

To get the ^C hold the control key, press V then C (Both while holding the control key) and the ^C will appear. This will find all occurrences and replace them with nothing.

To remove both ^C and ^B you can do:

:%s/^C\|^B//g

Solution 6 - Regex

You can use the CTRL-V prefix to enter them, or if they're not easily typeable, yank and insert them using CTRL-R ".

Solution 7 - Regex

An option not mentioned in other answers.

Delete a specific unicode character with a long hex code, e.g. <200b>:

:%s/\%U200b//g

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCharles MaView Question on Stackoverflow
Solution 1 - RegexlinczView Answer on Stackoverflow
Solution 2 - RegexarsView Answer on Stackoverflow
Solution 3 - RegexticktockView Answer on Stackoverflow
Solution 4 - RegexDalinView Answer on Stackoverflow
Solution 5 - RegexcodaddictView Answer on Stackoverflow
Solution 6 - RegexPi DelportView Answer on Stackoverflow
Solution 7 - RegexGebbView Answer on Stackoverflow