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.
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.
> _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 :-)
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.
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.
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.
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).
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.
43 comments
[ 4.5 ms ] story [ 94.8 ms ] threadhttps://teddit.net/r/emacs/comments/padv22/if_you_could_chan...
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.
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?
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.
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 :-)
You _can_ use dired like midnight commander.
See the tutorial http://emacsrocks.com/e16.html
https://www.gnu.org/software/guile/manual/html_node/Emacs-Li...
I'm sure, if today (or twenty years ago) GNU Emacs would be written, Guile might be chosen as implementation / extension language.
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.
[1] https://deathwish.info/2020/08/01/pgtk-nativecomp/
[1] https://www.youtube.com/watch?v=8SkdfdXWYaI