Hacker News new | past | comments | ask | show | jobs | submit login
If you could change one thing about Emacs what would it be? (reddit.com)
33 points by Decabytes 27 days ago | hide | past | favorite | 42 comments



I would add more obfuscation and slowly make it impossible to learn. Have the emacs veterans talk about the old days slowly making it seem like all you had to do was install emacs and you were so productive that emacs wrote the programs for you! Then eventually the word emacs turns into an adjective describing the perfect program. To the point that instead of "Turing complete" we say "Emacs complete" then years in the future someone will ask "WTF is emacs?" and they will simply say it's god.


All the UI code. It is a legacy created for text-terminal. It works in a graphic environments due to hacks, but it is sad.

If emacs was built on top of a decent ui-toolkit, with nice widgets, like checkboxes, buttons, menus, scrollbars (i do not know how to use emacs' scrollbars). With panes (windows in emacs' terms) resizeable with mouse (one more pain point: I need to resize them maybe once per month, and I never quite remember how it may be done).

UI of emacs is bad, it is terrible. It missed completely 30 last years of UI progress.


What platform do you use it on? My default install has a GTK menu bar, tool bar and scrollbars, as well as windows that can be resized by mouse.


They might want the customize-* stuff to use "prettier" buttons and checkboxes.


I think there is some work done with the pure gtk branch. Some context can be found here [1].

[1] https://deathwish.info/2020/08/01/pgtk-nativecomp/


This is why I like it. If it had all that junk, people would use it. The whole point is that everything in it is text, so you can treat everything the same. If you want a checkbox, you get some text. Widget? Some text. You have literally every other tool if you want dialog boxes flying in your face.


It also has the perk that you can still use everything from a terminal, which is still useful for when you want to use it from a phone (i.e. via termux).


(namespacing-so-the-functions-and-variables-dont-need-these-sorts-of-prefixes)


That would complicate hot-reloading though. Currently you can just modify a function and reload it by re-executing its defun. If you implement smarter namespacing, reloading it would require knowing what namespace it belongs to. You'd have to do the modification in the original file instead of anywhere (like the *stratch* buffer), or put the modified definition in some kind of construct that specifies the namespace it belongs to.

Also, finding the documentation and definition of a given symbol under the cursor would also get more complicated.

Having everything in one global namespace has its perks.


Common Lisp has both namespacing (even package-local-nicknames!) and hot-reloading by re-executing its defun. Emacs Lisp isn't too far off Common Lisp, and whatever allows CL to have this (mostly the reader, and of course, the package system) is also easy to support in Emacs Lisp.


Have it be in a standard Scheme or CommonLisp instead of EmacsLisp so that it actually benefited those communities with reuse.


For as much as I like the grand dame of programming languages, I don't think it would be the best substitute for Emacs Lisp. CL is a fairly large language and takes considerably time to learn. An unnecessary burden for someone just wanting to customizes his/her editor. Further, an Emacs in CL obviously requires a CL interpreter/compiler. I'm afraid this limits portability as e.g. SBCL, arguably the best open source CL compiler, supports only a handful of environments. CLISP was pretty portable, but the project seems dead.

I'm sure, if today (or twenty years ago) GNU Emacs would be written, Guile might be chosen as implementation / extension language.


Scheme isn't large. There are many portable, fast implementations.


Are we talking about GNU Emacs then? There seem to be a few Emacs or Emacs-like editors in various state of completion / deterioration implemented in CL. Hemlock comes to mind and Climacs.


Guile Scheme would be great for this purpose.


Better idea, use Guile's built in Emacs lisp engine:

https://www.gnu.org/software/guile/manual/html_node/Emacs-Li...


No because then it is still using EmacsLisp which is dynamically scoped. The idea is really to move it over to a traditional lexically scoped Scheme.


Gerbil Scheme is quite nice too.


Preemptive multithreading.


Multi-cursor/multi-selection as a built-in thing. I'm aware that you can kind of hack this together, but all of Emacs assumes that there will be one selection and one cursor, so hacks don't really integrate nicely with the rest of Emacs.


Unify all font-locking and textual manipulation on treesitter. See neovim.


The ability to read comments without being told to install the app or fuck off to r/popular.



Do you have the same problem on old.reddit.com?


That's exactly where that problem happens the most. Reddit has been pushing the and the new version so aggressively lately that it's really upsetting.


Adding a decent text editor would be nice... :D


Evil mode?


Déjà vu -- I think there was a recent Emacs HN post, with the exact same couplet.



I'd improve its ability to load and edit large files.


Have a dual pane file manager built in. Dired seems design for single pane operation.

Ensure that etags is compulsorily bundled with emacs, I am remembering that in a few distro's etags missing despite installing the emacs package.

Change the default scrolling mode.


> Have a dual pane file manager built in. Dired seems design for single pane operation.

You _can_ use dired like midnight commander.

See the tutorial http://emacsrocks.com/e16.html


> _Ensure that etags is compulsorily bundled with emacs, I am remembering that in a few distro's etags missing despite installing the emacs package._

My understanding is that Exuberant Ctags provides an etags binary, as well, and you're likely to want to use it as it supports more languages. Maybe Debian (and its derivatives) can make use of the "alternatives" system to redirect etags to the "best" installed version. Or the one the user prefers :-)


Choose: a) voice assist b) computational methods ui c) visualisation


This is actually an amazing talk[1] about doing voice coding in Emacs, over 8 years ago.

[1] https://www.youtube.com/watch?v=8SkdfdXWYaI


The users? /s


Ouch.


RMS?


Endow it with a decent editor.


VIM bindings everywhere, not only for text editing but for all core editor functions.


I’d be happy if the existing bindings just behaved closer to how they do in vim. As with all vim binding plugins there’s always slight differences that drive muscle memory mad.


I'm not a hardcore vimmer, but I use evil-mode religiously and use vim for my sysadmin work on remote servers.

I've never noticed a difference between evil-mode's behavior and vim's, while I usually get extremely frustrated with Vim plugins for IDEs.

Can you tell me what differences you've run into between vim and evil-mode?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: