How to change the EOL for all files from CRLF to LF
Asked Answered
E

5

96

In Visual Studio Code, I have changed the default EOL (end-of-line token) from CRLF to LF, but this only applies to new files. I would like to know how to change the EOL for all files at once as I have more than a hundred files and it will be hard to do it manually.

Epidaurus answered 12/3, 2018 at 5:33 Comment(2)
A
203

Run these. It works for me. Customize it with your requirements

git config core.autocrlf false 
git rm --cached -r . 
git reset --hard
Auk answered 26/11, 2018 at 5:0 Comment(6)
in my opinion this is not the solution, if someone who uses unix enviroment will have the same end of line problemsRolon
It helps though if you make changes and the files are cached.Shibboleth
The best explanation I've found of what the three commands do is this answer on how to force Git to use LF instead of CR+LF. ~ * ~ An even older reference is this suggested solution on how to let Git deal with line endings.Rabbinism
Between lines 2 and 3 it might be necessary to write git stash.Spiry
Should have been add warning to stash or commit your current change.Ballot
This is the answer that worked for me. In my case the project was configured to use CRLF line endings but I had installed Git for Windows with autocrlf false. The first line changes line endings from now on, the second line removes existing line endings in local files and the third line recreates line endings in existing files using the new autocrlf value (and will delete all local changes).Killian
S
41

To solve the problem in my project I used a Visual Studio Code extension called "Change All End Of Line Sequence", follow the process of the extension and then save all your files.

And that's it, hope it helps somebody still looking for a quick fix.

Shriner answered 25/4, 2021 at 20:10 Comment(3)
Not sure why but it's not working for me. The other thing is "Save All" (Ctrl+k) is greyed out, I cannot use it.Asymmetry
thankyou so sososoooo much for this extension. this entire proccess was one of the dumbest thing I ever did as a programmerKempf
Never would have even thought to look for an extension like this. Thanks!Photocomposition
B
38

If you have a Node.js development environment and prettier installed, one way of replacing all CRLF for LF is by running prettier --end-of-line lf --write . in the command line. Where the dot represents the entirety of your current working directory.

Another way is to set the endOfLine option to lf in the .prettierrc configuration file and place a script in your package.json like so:

...
  "scripts": {
    ...
    "format": "prettier --write ."
    ...
  }
...

Then, you just need to execute npm run format in your terminal and all files targeted by prettier in your project will be automatically changed and saved.

Bethanie answered 11/1, 2021 at 2:1 Comment(4)
Thanks for this, it got me going in the right direction but I found I had to modify the format script as I was getting a usage error about not supplying any files. I'm using express with node so my working script is "format": "prettier app.js **/*.js --write",Gonfalon
Noice! 😎 In my case, I had to convert all my Spring Boot project's Java files' EOL's from LF to CRLF. I had NodeJS already installed. So I installed prettier globally: npm install --global prettier and then executed Prettier in root directory: npx prettier --end-of-line crlf --write . (👈 this dot is mandatory) and that solved my issue.Channa
prettier --end-of-line lf --write . if you're lazy like me and want to do all project files blindlyZollverein
OMG do not do this. Now my branch says every file has changed and not just the files for my feature :(Blown
S
4

If you have PowerShell or git bash or another bash-type terminal you could use:

$ for i in *js; do vi -c "set fileformat=unix | wq" "${i}"; done

As mentioned in https://unix.stackexchange.com/questions/22604/how-to-bulk-convert-all-the-file-in-a-file-system-branch-between-unix-and-window/626954#626954.

Structure answered 13/3, 2023 at 17:9 Comment(0)
G
0

For anyone still looking, it is pretty simple if you just want it for a specific file. Saw it in this blog entry

There is a setting at the bottom bar of VSCode towards the right side which says "CRLF" or "LF", you can switch the line ending there.

Gregoriagregorian answered 6/5 at 7:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.