TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Emacs Modernization: Simple Changes Emacs Should Adopt (2006)

112 pointsby AJRFover 3 years ago

23 comments

Decabytesover 3 years ago
I posted a link here to a Reddit post that said “if you could change one thing about emacs what would it be?” It had almost 200 comments. Some answers definitely touched on these points. But for the most part, what Emacs users wanted was for the Gnu Emacs maintainers to do was…<p>1. Switch out Elisp for a Common Lisp or Scheme<p>2. Update the way Emacs Ui Core so it used standard GTK or something better. (The current implementation uses a lot of ugly hacks to support a subset of GTK)<p>3. Ability to scroll without bringing point along with me so I can quickly check something off screen then just continue typing where I left off.<p>4. Improve threading so that things like TRAMP didn’t freeze when you were connecting<p>5. Fast&#x2F;Arbitrary graphics support<p>I think for most Emacs users it’s a performance thing. Though the improvements to the GUI code would go a long way to making it easier to make Emacs be more user friendly.<p>In terms of this article. I think all of this is possible in a separate distribution of Emacs right now. Emacs will never turn on most of these things by default. But maybe if a version of Emacs that makes these changes becomes wildly popular, the current maintainers would be more amenable to it.<p><a href="https:&#x2F;&#x2F;old.reddit.com&#x2F;r&#x2F;emacs&#x2F;comments&#x2F;padv22&#x2F;if_you_could_change_one_thing_about_emacs_what&#x2F;" rel="nofollow">https:&#x2F;&#x2F;old.reddit.com&#x2F;r&#x2F;emacs&#x2F;comments&#x2F;padv22&#x2F;if_you_could_...</a>
评论 #28338529 未加载
评论 #28340765 未加载
评论 #28338936 未加载
评论 #28338256 未加载
评论 #28338576 未加载
评论 #28339851 未加载
评论 #28338978 未加载
tsuujinover 3 years ago
I agree with basically everything in this article. Emacs needs new users, and to get them we need to reduce the barriers and user friction. In fact, increasing adoption through reducing user friction is a very well known topic in software design; this shouldn’t really be a topic for debate.<p>But god help you if you suggest changing Emacs to conform with modern standards. I still maintain that the worst part of Emacs is the vocal minority of evangelicals in the community.<p>I’ve been using Emacs as a daily driver for years, but it also took me years to adopt fully because the mental overhead of learning new terms for things I already knew drove me to ask for help from the community, and the community routinely made me not want to be any part of it.<p>It sucks, because most of the community is fine, but the very loud voices of a minority group of purists who have built their identities around being “Emacs people” are incredibly aggravating.
评论 #28342477 未加载
wiz21cover 3 years ago
been using emacs for several years... What could be improved is speed. Too many times it doesn&#x27;t see some keys combinations I hit. Screen redraw should be faster too (I spend a lot of time in front of it so that kind of &quot;detail&quot; is actually important). Loading big files is slow. Editing long lines is slow. Of course it doesn&#x27;t happen often but when it happens it&#x27;s annoying. Emacs could also propose options to better align on common behaviors (for example C-left&#x2F;right arrow) doesn&#x27;t behave like in other editors.<p>It could also be more &quot;discoverable&quot;. There are hundreds of functions so that 100% of my needs are covered. But every now and then, when I want to find a command, I DuckDuckGo it... It&#x27;d be nicer if somehow there would be an assisted navigation in the commands (or a pointer to that assistance I&#x27;ve been sorely missing :-))<p>But I like it anyway. &#x27;cos it&#x27;s faithful, community grown, etc.<p>And if I had time I would contribute. But emacs is an old platform so there are many choices buried in and reaching the level of knowledge necessary to contribute is probably very high...
评论 #28337599 未加载
评论 #28337039 未加载
评论 #28342219 未加载
评论 #28336904 未加载
评论 #28337589 未加载
评论 #28342499 未加载
评论 #28337733 未加载
mlang23over 3 years ago
The title is rather strange considering Emacs is Free Software. Forks are fine. So why not UX forks. But demanding changes to the original without going through the dev process as everyone else would need to do is rather weird. &quot;X should do Y&quot; seems to be the new way of treating eachother...<p>If you ask me, Emacs is fine as it is. In fact, I have been bitten by two changes over the time which come from the &quot;better UI&quot; camp. matching-paren-mode stopped to do the jumping cursor thing, which I totally rely on working with a braille display. I luckily caught this during the dev process and managed to submit a patch which adds a flag to force the &quot;old&quot; behaviour. And frankly, the guy who forced transient-mark mode on the world needs to hugs till he feels the pain. I am always bewildered when something I just marked suddenly vanishes just because I hit del. Move cursor a bit and DEL suddenly does something different again.<p>IOW, I am a long-time Emacs user, and really, stop breaking the world just because you think something needs to be &quot;modernized&quot;. Breaking the user experience of long-term users in order to cater to newbies is rather rude to those who have invested considerable time to learn the system so they can use it as effectively as possible.
评论 #28341593 未加载
b5nover 3 years ago
Lately there&#x27;s been a lot of talk about what Emacs needs, written mostly by people who don&#x27;t understand Emacs.<p>Emacs is more of a journey than an application. It&#x27;s similar to a blacksmith forging their own tools - Emacs is the metaphorical ingot, waiting to be transformed and molded by the user.<p>If you&#x27;re happy with what you&#x27;re using then you don&#x27;t need Emacs, and Emacs doesn&#x27;t need to appeal to that crowd. Emacs isn&#x27;t a VSCode competitor, it&#x27;s something entirely different, and it&#x27;s waiting for those who desire transcendence - shedding the limits imposed by other tools.<p>You can install and use Emacs as quickly as any other application, but to truly reap its benefit you must go deeper. I don&#x27;t see the need to cater to people who clearly want something else, those tools already exist, please leave Emacs to those of us who appreciate it for what it is.<p>I disagree with all the reccomendations made in this article, all these changes are easy to implement, and the user is encouraged to do so - one of the main selling points of Emacs.<p>That doesn&#x27;t mean there is not room for improvement, Emacs is still constantly improving. Additionally, I&#x27;ve encountered many instances where a colleague or friend introduces me to some new feature in their preferred application, the majority of the time it&#x27;s a feature that&#x27;s been available in Emacs for years if not decades.<p>I&#x27;d prefer we continue to focus on the needs of Emacs users rather than the wants of non-emacs users. Emacs will still be waiting for them when they&#x27;re ready.
评论 #28340442 未加载
mleonhardover 3 years ago
I&#x27;ve been using Emacs for 17 years. I want every change suggested in the article, especially &#x27;redo&#x27;. A few additional ones:<p>- After pressing Alt-X, show a list of recently used commands. Allow moving between them with the up&#x2F;down keys. Show a docs pane which explains what the command does, how to use it, and has an example. For new users, pre-populate the recently-used commands list with common commands. This is like the auto-complete &quot;intellisense&quot; function that saves me so much time when using JetBrains &amp; VSCode.<p>- When opening&#x2F;saving a file and typing the path, automatically show the directory contents and hi-light entries that match the path. Show recently opened files and directories in bold. Scroll the listing with PGUP&#x2F;PGDN&#x2F;mouse-wheel. I often use emacs to open log files which contain long unique prefixes which are error-prone to type. Allow using the mouse &amp; arrows keys to select the file.<p>- Auto-save and auto-format. I love this mode when editing Rust code with CLion. It gives me something I&#x27;ve wanted for a long time: to write code without thinking about formatting. There&#x27;s probably already some complicated way to get this to work in Emacs. Ideally, emacs would check if appropriate tools (rustfmt) are installed and make it just work automatically.<p>- Allow using ENTER to add newlines to a search-replace command. I can rarely remember whether it&#x27;s CTRL-Q, CTRL-J, or both and frequently make mistakes.<p>- Allow writing Emacs commands in popular languages like Python 3 or JavaScript. Include a tutorial for each supported language. The lisp bigots will be angry about this.<p>- Create a public issue tracker for emacs, ideally on GitHub. This will let users help each other and participate in setting issue priorities. Include a code of conduct. Do not auto-lock old issues like Flutter Team does. Old issues are findable by search engines. Workarounds and error messages change over time. When issues are unlocked, users will add comments like &quot;The fix now requires change X. Here&#x27;s the new command that worked for me ...&quot; Locking old issues saves the dev team some effort but destroys a lot of the utility for users.
评论 #28341537 未加载
评论 #28342571 未加载
roenxiover 3 years ago
Interesting commentary. I do think this is a little harsh on the poor Emacs undo system.<p>I can&#x27;t really push back on the idea that Emacs&#x27; undo system is excessively confusing, because I use Emacs and I don&#x27;t understand it. I usually save text in a second buffer if I think I&#x27;ll need it later.<p>But the solution should be to improve the UI rather than remove functionality. Consider what magit did to a similar problem in git - git is powerful with a weirdly crippled CLI. Magit adds a great ... Emacs User Interface? EUI? and all is well.<p>There is a probably a similar solution to the Emacs Undo problem.
评论 #28337488 未加载
评论 #28337337 未加载
评论 #28337519 未加载
评论 #28338484 未加载
medo-bearover 3 years ago
i initially hated emacs&#x27; non-CUA bindings. now my thoughts are opposite and because i spend so much time in emacs, when I need to go to CUA it&#x27;s quite annoying. i agree that CUA should be made default, but with immediate option on start-up to use original emacs bindings. i think it will put off far fewer people
titzerover 3 years ago
FTA:<p>&gt; Thus, every program had to be learned individually and its complete user interface memorized. It was a sign of expertise to have learned the UIs of dozens of applications, since a novice user facing a new program would find their existing knowledge of a similar application absolutely no use whatsoever.<p>Hello, web, looking at you. Except that no UI is stable long enough that people ever bother mastering it.
toolsliveover 3 years ago
what a lot of people fail to realise is that emacs key bindings *are* consistent with other tools. Take a look at bash (or the korn shell): begin of line (C-a); end of line (C-e); kill rest of line (C-k). Emacs key bindings are the same.<p>Not everybody grew up using windows.
评论 #28338520 未加载
评论 #28340247 未加载
评论 #28338608 未加载
评论 #28338773 未加载
dalyover 3 years ago
I&#x27;ve been using emacs for 35+ years. It does everything I need to do. If it doesn&#x27;t, it has lisp. And then it does.<p>I only use fundamental-mode.<p>Emacs, like lisp, is &quot;clay for the mind&quot;. You can adapt it to any task easily.
评论 #28340480 未加载
评论 #28339149 未加载
评论 #28341561 未加载
mark_l_watsonover 3 years ago
I bought the Emacs Manual from Richard Stallman and friends, so many years ago, and I still rely on it, especially with Mosh+tmux for working in remote servers.<p>Off topic, but I have been trying to figure out why Emacs startup got faster and editing seems snappier on an M1 MacBook. The M1 is generally faster but not enough to account for the difference. Maybe some engineers at Apple in some way optimized the Emacs that ships with macOS? The speed up has increased my use of Emacs locally on my laptop.<p>EDIT: I love Common Lisp, but probably it is not worth the effort to replace Emacs Lisp.
评论 #28338725 未加载
brlewisover 3 years ago
I&#x27;d be interested to see an exhaustive list of computer programs that are as old as emacs that people still complain about today.
ashton314over 3 years ago
Inspired in part by this article, I put together a quasi-Emacs distribution for my wife who is a writer. It turns on several of the suggestions in this article by default, such as CUA mode, etc.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;ashton314&#x2F;amethyst" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ashton314&#x2F;amethyst</a>
sullyj3over 3 years ago
Title could probably use a (2006)
评论 #28337490 未加载
pjmlpover 3 years ago
Not sure what might still be missing, but I add the ones from XEmacs for graphical tooling integration, that might still be missing.<p>By the way, Gosling now rather uses IDEs.
评论 #28340958 未加载
acomjeanover 3 years ago
I used Aquaemacs on my work machine. It wasn’t perfect but it really did integrate well with macOS. the command key doesn’t overlap with and native emacs commands which helped.<p>Im using IDEs more these days but still drop text into emacs if on a remote terminal or need to use it’s macro feature.<p>Installing emacs plugins or extending the application always seems daunting and seems to always involve manual king editing a list config file….
ycstohleyover 3 years ago
Do nothing. It&#x27;s awesome.
giancarlostoroover 3 years ago
I would love Emacs to get a facelift in the UI aspect. I like what Neovim is doing for UI stuff. Maybe Remacs can head a similar direction.
评论 #28338754 未加载
cheezymoogleover 3 years ago
To makes Emacs popular again, the core team needs to realize that their actual competitors are desktop environments, window managers, and automation tools rather than text editors and IDEs at this point. Programmers know what they want in an editor--the general populace doesn&#x27;t (beyond a bare minimum of having it work like Google Docs or Microsoft Word). Emacs doesn&#x27;t need to change at all, it just needs tools that go a few levels deeper in its philosophy. That is to say, first make Emacs capable of controlling non-Emacs GUIs and piloting web browsers. Second, improve automation tooling that so that individuals can make and share no-code macros for simple tasks. EXWM, an Emacs-based window manager has already taken a great first step towards accomplishing this.<p>Emacs is a keyboard macro editor stuck in a mouseless era where Lisp Enlightenment was still a thing. It&#x27;s great, but it&#x27;s niche. Most people don&#x27;t actually want or need that (or to be more specific, they don&#x27;t know that they need or want it).<p>The way to directly grow the user-base is to get the general population on board Emacs first, then evangelize for the idea underlying open software afterwards.<p>You do that by solving the problems that they already have more efficiently than their present solutions. Org-mode really nailed it in this department. I switched to Emacs for org-mode, but stayed for vanilla Emacs and EXWM. If Emacs were just Emacs, I&#x27;d probably be using a different editor. Without definitive hooks, Emacs is esoteric, opaque, and frightening to the general population, if they know about Emacs at all besides vim&#x27;s evil rival. They just don&#x27;t need Emacs in its current state.<p>What they do need is something that makes it trivial to automate the dumb and repetitive tasks that they have to do every day on a computer using a browser. This is no longer shell or plaintext processing for the majority of non-IT users. It&#x27;s interfacing with GUIs. They need middleware to automate interfacing with kludgy enterprise software. They need middleware to speed up internet browsing.<p>If Emacs were a blank slate project today, fulfilling the same type of needs, I could see it being a mashup of EXWM, Selenium, and AutoIt. Its killer features would be a guarantee that the same controls (that the user selected from a common set e.g. Microsoft Word, Firefox, Vim, Emacs, etc.) worked functioned between applications. Having the ability to record mouse and keyboard macros without ever needing to see a line of code, but also providing the ability to drive using the DOM, OCR, or whatever niche smart interface is needed would be a second killer feature. These coupled with the already standard Emacs and EXWM features would attract a ton of new users that would actually have a compelling reason to learn how to use it and then later adopt to the Emacs paradigm.<p>EXWM is already 70% of the way for a minimum viable product for something like this. It just needs to be bundled with more mature macro tooling beyond 90s relics like xdotool and xautomation along with a distro with sane defaults. Having a single abstraction layer to control everything from userland on through web platforms would be a dream for accessibility and returning a semblance of control to users.
h2odragonover 3 years ago
Why should emacs have to adopt <i>your</i> changes (or mine)?<p>Make a &quot;Modern-Emacs&quot; and make it what <i>you</i> want, make it something you and others can love. Maybe others will love it enough to contribute, maybe no one but you will ever use it. Either way is great, and you still have your ideal tool.
erlkonigover 3 years ago
TL;DR * Don&#x27;t change any of the naming, Emacs&#x27;s naming is either better than what the article proposes, or cannot be changed everywhere it would need to be * Don&#x27;t push for CUA copy&#x2F;paste unless there&#x27;s a plan for where to put both the C-x and C-c keymaps, and NOT on Alt (more info below) - if you have one, add a menu item to turn it and similar things on together, with help about it. * Add to the top of NEWS (C-h n) how to kill the NEWS buffer<p>The article&#x27;s point that Emacs&#x27;s use of &quot;frame&quot; and &quot;window&quot; are quirky is true, but running it on a true terminal would mean the standard use of a the word &quot;window&quot; wouldn&#x27;t even apply. However, since few people do that now, I agree that &quot;window&quot; to describe the view of Emacs overall on a terminal, or in a desktop window, and &quot;pane&quot; for the subsections (NOT &quot;frame&quot;) sounds reasonable. EXCEPT that this would break the name usage in a staggeringly large amount of LISP code, and thereby add cognitive dissonance when reading code, documentation, function calls and so on. So sadly, I think being resigned to being consistent instead of having different terminology for a beginner vs advanced user is a better call.<p>I&#x27;ve mapped keys for Alt, Meta, Super, and Hyper to my keyboard. Since Alt key (and AltGr) are, as far as I know, notionally for typing glyphs that aren&#x27;t on the keyboard, it would be stupid to mix the Alt and Meta concepts - those need to be on different keys. All the article is doing by arguing that Alt should be hardwired in to the default emacs keymap is going down the same annoying path we did with backspace-vs-delete: Eternally confusing two different things over a keyboard layout peculiarity NOT shared by all users.<p>Yes, the Scratch buffer should default to text mode. Experienced users who like the current default can configure for it.<p>C-k and C-y are named mnemonically, so unless one wants to move copy to &quot;Ctrl+c&quot; and paste to &quot;Ctrl+p&quot; (which are both harder to read, btw, thana C-c and C-p), don&#x27;t break one feature (mnemonic names) for another feature only some people prefer. Also, the kill-ring system does NOT work like copy+paste, and there are a number of complexities around X cut buffers the article author may not be aware of where something you kill&#x2F;copy may not end up in the buffer the other app can yank&#x2F;paste.<p>There also nothing wrong with &quot;buffers&quot; - a editor with a concept lacking in the UX many other editors is certainly allowed to apply a single consistent name to it. It&#x27;s unfortunate that this use of the word is unique to software (compare &quot;buffer zone&quot; in normal English)... &quot;stash&quot; at least had a concrete meaning to non-devs (&quot;working copy&quot; doesn&#x27;t work since the in-RAM could be the original, &quot;draft&quot; doesn&#x27;t work because it may have been saved to disk, etc, etc). &quot;slate&quot; would have been an amusing choice. As with the discussion on &quot;window&quot;&#x2F;&quot;frame&quot;, changing &quot;buffer&quot; consistently would be a nightmare.<p>To the user complaining about copy&#x2F;paste&#x2F;etc not being all together, they are in contrast, bound to mnemonically reasonable keys. Also, Dvorak. Also, a huge number of PC users don&#x27;t use the Ctrl+{C,V,X} anyway, and don&#x27;t understand that complaint to begin with.<p>&quot;Keybind&quot; is a pretty commonly used term in PC games, and is a superset of &quot;Keyboard shortcut&quot; since it&#x27;s understood by PC gamers to include mouse buttons and so on as well. It&#x27;s notionally hard to apply &quot;keyboard shortcut&quot; to the act of binding a function to a <i>mouse</i> key, so the &quot;keyboard shortcut&quot; falls short of the concept and will just cause confusion. Now saying a key is &quot;bound&quot; to an action may be confusing, sure, and what&#x27;s funny is that saying a key is &quot;tied&quot; to an action would probably make sense to most users. Yet those are synonyms. Go figure.<p>Having taught users how to use editors in Unix for years, my students only complained about one thing in Emacs - getting stuck in NEWS and not knowing how to get out. Usually this happened <i>before</i> they knew how to kill&#x2F;switch buffers. Nothing else really bothered them, and they largely learned by using the in-editor tutorial. (those users were also taught vi, which is unquestionably harder to get started in, though vim today now points users at a tutorial)
bitwizeover 3 years ago
Emacs has already been rewritten as a completely modern application in a modern programming language (JavaScript). It&#x27;s called Visual Studio Code. We can now safely deprecate the original.