And to go along with that, some things like GNU Make still requires tabs, which is definitely annoying when you have your editor set to autoconvert. And some sects like Go or Python don't technically REQUIRE one or the other, but still try to aggressively purge the heretics.
Is this actually a problem? Every editor I've ever used has detected that I'm writing a makefile and has changed the indentation to tabs automatically.
go fmt
Controversy solved for one language ;)[0]: https://clang.llvm.org/docs/ClangFormat.html
[1]: https://github.com/google/google-java-format
The go language has /a/ (single) correct formatting syntax.
In my experience, m4 is an arcane bit of software that surprisingly few people know about and one that frankly should have been replaced years ago.
Personally, I try to never use autoconf because of this.
So, none of the above, in itself. It is a historical anomaly which has been preserved.
I.e., you can also use a single `tab` on an over-indented line to correct indentation.
Your point stands, of course.
I've had this in basic code editors for... 10 years or so? It's hardly an emacs thing.
I hear it all the time. People saying things like "I use vi/vim instead of an IDE because I can do X" where X is a feature that every IDE worth using has had for 10 years.
I've literally had someone say that they use vi/vim because it does syntax highlighting. What were they using before? Notepad? gedit? Even gedit has syntax highlighting.
"Oh, I use this magical vim plugin that lets me hit this magical key combination and all my code gets automatically formatted." Yeah, but Visual Studio, PyCharm, Eclipse, and basically any other IDE do that out of the box. No plugins necessary.
I don't think I've ever seen someone describe a feature that vi/vim/emacs has that an IDE doesn't (EDIT: Other than the fact that every *nix system is going to have vi, but that's just an argument for knowing how to use it, not one for preferring it over an IDE if one is available). It's like iPhone versus Android about five years ago, where the iPhone fanboys/girls would praise Apple for their innovation for implementing features Android had over a year prior.
Emacs can seamlessly access files over ssh, ftp and/or sudo.
Emacs lets me add custom hook commands to run before a file is saved (to check a file’s syntax using an external command), and after it’s saved (to signal reloading of the file to the relevant process).
Emacs also includes my mail reader, my diary, my organizer, a spreadsheet, an stack-based algebraic calculator, etc. but those may be unfair comparisons. :)
Note: All of the above are part of the built-in functionality of Emacs. Third-party extensions can of course do anything.
That being said I don't think it's that big a deal but I've seen some fucking vim wizards churn out code faster than what's reasonable for human beings
As far as I'm aware multicursors are a superset of block editing (i.e. multicursors can emulate block editing but the reverse is not true), so many (most?) modern IDEs can at least emulate block editing.
Maybe this has changed in recent years, but in the past whenever I tried IDEs I would be amazed that they didn't have keyboard macros.
Not that it's hard, it's just that other editors haven't done it (that I've seen).
Emacs still has a quirk that stands out :)
It's already a must-have editor plugin for myself and any underlings. It's real nice.
More languages should provide standardized ways of writing and formatting code. It makes everything easier - from diffing to subjectivity.
In what way? It looks like a fairly standard formatter to me.
This issue has long been solved programmatically
and it is a waste of mindspace to deal with it
any other way.
I beg to differ. Aligning code is an art form. And different people like different styles. Your "whatever" approach is one. And there are many others.Ultimately, the spaces vs. tabs debate really comes down to which policy is less likely to result in mixed tabs/spaces. If people use tabs, it seems inevitable that some spaces will sneak in there as well. If people use spaces, tabs are unlikely to sneak in. Obviously that's a combination of common default editor configs and human behavior, but that's just how it works out in practice.
Except for Go programmers.
It works because it allows everyone to configure their code editor to have tabs be whatever width they want without messing up how it looks for other people.
But it's futile. Unless there's a git hook setup or you're using Python 3 which throws errors when tabs and spaces are both used for indentation, you're gonna end up with source files with both being used.
The problem is, everyone's editor "does it for" them, but everyone wants to use a different editor. And there are interoperability issues when one person's editor produces tabs and another produces spaces.
It's a relatively minor tower of babel situation.
“There's a good part of Computer Science that's like magic. Unfortunately there's a bad part of Computer Science that's like religion.” - Hal Abelson
I don't worry about indentation because emacs does it for me. However, if this is your personal pet peeve then you should provide all of your developers / contributors with a plugin, script or other utility that formats their code to your standards. This issue has long been solved programmatically and it is a waste of mindspace to deal with it any other way.