So I just had an issue where my shebang lines weren’t parsing properly for a python script I was attempting to execute. A quick google revealed that it was probably because I wrote the scripts on windows and now I was trying to run them on Linux (so happy i finally made the switch btw. using the computer is fun again!). So i took the advice I found and tried to run :%s/^M/
(using C-v, C-m to insert the escape character), and it failed to find any matches. I tried the same command in vanilla vi and it worked.
Is there some setting I don’t have configured properly? I would prefer to be able to do this sort of thing within neovim.
I generally use %s/\n//g (or is it \r ?) rather than trying to use verbatim control characters.
I would just use dos2unix personally
Or :%!dos2unix from in vim
i like typing arcane looking things into neovim though
jk (kinda) you’re probably right. it wasn’t included in my distro and i didn’t want to download a whole executable for something so minor but it will probably come in handy so I just did.
Next time, try enabling display of whitespace characters through
set list
. If I remember correctly, they can help distinguish between the Windows carriage return character and Linux end of line character.This may help for a quick overview.
Vim (and presumably neovim) will detect that it’s in “DOS mode” and hide the '^M’s for you. In vim you can just do “:set ff=unix” and then save.