What is so good about emacs?

What is so good about emacs?
gedit is great for general stuff i.e. lists and Atom is god-tier for Programming.

Other urls found in this thread:

github.com/arakashic/chromatica.nvim
twitter.com/AnonBabble

I too use gedit and not emacs or vim, they are useful because the customization of keybinds if memorized can allow for really fast automation in many aspects but the skill curve is very steep. Personally I never found it was worth my time to memorize either or's set up

by the time i would learn to use emacs i could just develop something in normal text editor or IDE instead

Emacs supports almost all features you could want, including powerful abstract ones. You can shape it to work the way you want, more extensively and flexibly than Atom. You have three decades of great programmers creating features they personally could use available. It's similar to Atom's power, but older and larger and more flexible.

If you program a lot the cost of learning it is very small compared to what you gain.

You can do everything text related in a single portable environment, so you can share one configuration across all your computers without issue.

I haven't been using emacs as long as some here, but Spacemacs is an excellent starting point, especially if you are coming from vim. If you already know vim even if you have zero emacs knowledge you can start using spacemacs without any issue. Everything is integrated extremely well and you can use hybrid mode for a combination of vim and emacs bindings. Some might call it bloat, but this is emacs we're talking about and you could always remove what you don't use if you wanted.

You get all the features you get in the other editors, syntax, completion, Git, etc. and the ergonomic bindings from spacemacs make everything accessible within 2-3 keystrokes. And you can always just M-x and start typing to find the command if you don't know how to do something.

And it's just cozier than other editors.

Also, nothing beats org mode. Some may come close, but org mode is king of the productivity tools.

I have to use Windows for work, so use Emacs as a portability layer because I'm too lazy to learn different programs for a task on different OSs. Gnus for mail, rcirc for IRC (+ a bitlbee server for IM), mu.el for MUDs, org-mode for docs, eww for simple text-mode browsing (which is sufficient for a surprising amount of my needs). And I occasionally edit text.

Former spook. Had to write transcripts of spooky stuff. Transcripts are super formal, lots of rules, basically humans working hard to make something easily digested by military coders, Ada, and wooden computers.

Some admin left Emacs installed on the network, in some temporary directory. I found it. Saved it. Wrote tedious-spooky-transcripts major mode.

No more copying retyping a long timestamp when the last digit changes. Type only the changed digits, let Emacs complete it. No more in indenting. No more lots of stuff. Hello autocompleting coded stuff from databases.

vim is nice. I use vim 99% of the time. If your task can benefit from a major mode, nothing else compares to Emacs.

It's also a nice Lisp environment. Just import cl or else kill yourself.

If you're used to Unix shells, try eshell. It's actually more similar to rc (the Plan 9 shell) than to sh, but it should be more comfortable than what Windows offers natively. It implements a few standard Unix utilities and even piping. You can call system commands, Emacs functions as if they're shell commands (like find-file), and even plain elisp, with shell loops and other constructs. You can even redirect command output into a buffer the same way you'd redirect it into a file. I never used it on Windows but I heard it's especially nice there.

Try running Atom over ssh.

Literally cancer tier

I went from Notepad++ -> Geany -> Nano/Vim -> Emacs -> Vim -> Emacs over the span of 9 years. In all that time, emacs really offers a complete environment that you can rely on being there. I've had some excellent vimrc's though, and these days you can nearly turn Neovim + vim-plug into something that is pretty close to offering the features of emacs without portability being too painful.

I think the entire structure of Emacs needs to be evaluated and replaced with a from-scratch system written (mostly) in Guile rather than Elisp, though Larceny, Racket, and Common Lisp are all faster than Guile still (and aren't fucking AGPL).

Since you've used both Emacs and VIM, and you sound very unbiased about them, would you say that both editors are on par with each other, or are there major things that one still does better then the other?

Pretty much. You can configure both to do just about whatever you want, but Elisp is far more powerful than VimL which is why there are many large programs that run entirely in Elisp in emacs.

Try both and see which mindset you like more: Emacs and it's chords, or Vim and modal editing.

I have considered giving Emacs another go, it's been awhile since I tried to use it.

I'll admit that I don't know much about the power of VimL, and correct me if I am wrong, does python support in Vim bring it more on par with Elisp?

Vim/Neovim have support for Python, Ruby, Lua, and some others so you can write plugins in whatever language you want. The idea is that if you want to ensure being able to migrate your configuration between different host operating systems (or are permissions restricted) you can open emacs and do pretty much everything you need/want.

Any argument in favor or against either emacs or vim is circlejerking as they both can mimic/copy each other with heavy configuration, but Emacs is a platform for development and Vim is an editor.

I'm not the one you were talking to, but I am a Neovim user. VimL (also called VimScript) and Emacs Lisp (ELisp short) are both Turing-complete, so they are equally powerful. The question is how easy it is to do what you want in a language.

VimL evolved from a configuration language, which makes it very easy to use for configuring the editor, but it's rather awkward to use for writing code that is not strictly related to the editor. That's why Vim supports other languages like Python for writing plugins, but you will still need at least a thin glue layer of VimScript. Vim needs to be compiled with support for that language, but as long as it's something common like Python that should be not an issue.

Neovim takes the idea further by allowing plugins to be written in any language, but you will need to "teach" the language to communicate with Vim. In the case of Python you need to install a Python package (type pip install neovim into your terminal) before you can use Python plugins. This means you can add support for any language without re-compiling Neovim. So if someone were to write a Guile module you could then install it and run Neovim plugins written in Scheme (a Lisp dialect). Neovim has allowed for some really cool stuff that is impossible in Vim, such as Chromatica, a plugin that syntax-highlights your code based on semantics rather than keywords, using Clang and doing it all asynchronously (i.e. your editor does no block while it re-colors your buffer)
github.com/arakashic/chromatica.nvim

So the choice boils down to how portable the plugins are. Emacs Lisp is the standard plugin language of Emacs, so any plugin written in it will always run on any system where you have Emacs. The same goes for VimL, but if you want to use any other language with (Neo)vim you will have to either re-compile Vim or install the corresponding language bindings. For Python that's in practice a non-issue, but for a rarely used language (e.g. Lua) it can be an issue.

sage for slight off-topic

That's amazing, thanks for your detailed post. I appreciate it user!

I figured as much about the circle jerking. I knew a bit about Emacs and portability, but I wasn't 100% sure to what extent it was.

Apples and oranges
Sage for emacs vs.

ABORT ALL MISSIONS
I NEOVIM NOW

The old editor-wars did actually have a point, but it was about Emacs and vi, not Emacs and Vim. Vim is "VI iMproved", but it's actually a whole new editor that happens to use motions of vi. Back in the editor-wars days there was a big difference between Emacs and vi: Emacs had the full power of Lisp, but that made it very large and slow to the point where it could take several minutes to start up Emacs. vi was very small and fast, but it was impossible to script, so any new feature you wanted had to be implemented directly in the C source code and then the entire editor newly compiled. This was very much an either/or type of tradeoff reflecting the environments the different editors were born in. Emacs came from the realm of academia and workstations, while vi had to be usable from home over a phone like when accessing a remote machine.

These days the differences are negligible and it really is just a circle-jerk. Computer have become faster and memory larger to the point where the size of Emacs is a joke today, especially compared to the bloat of IDEs and other modern editors (one can still question the practice of including every stupid plugin and the kitchen sink with every installation, but that's not strictly part of the editor). On the other hand, Vim has taken the lessons of Emacs about being scriptable and a lot of features that seemingly come out of the box are actually plugins that ship with Vim (e.g. support for various file types are just standard plugins) and Neovim is making it even more scriptable. Both editors are slowly converging to the point where the choice is going to be pretty much arbitrary.


Just FYI, Chromatica is only for the C family: C, C++, Objective-C and Objective-C++. It uses Clang for the heavy lifting. Maybe this might change in the future, I don't know.

Thanks, I tried this a while ago but never really got into it. I found it slow once the transcript got to be a few thousand lines--I guess I need to look for a way to throw away very old lines. Another thing I keep meaning to do is learn magit properly instead of using the git command line. Then I think I could uninstall msys2 altogether.

Why did you need to make another shit thread when there's already several threads up discussing text editors, especially emacs? Dumbshit

bump.

M-x customize-variable eshell-output-filter-functions
;; Click on eshell-truncate-buffer
M-x customize-variable eshell-buffer-maximum-lines ; if you like