4 ms·
I've been using Emacs for 17 years. I want every change suggested in the article, especially 'redo'. A few additional ones: - After pressing Alt-X, show a li
by mleonhard 5y ago
I've been using Emacs for 17 years. I want every change suggested in the article, especially 'redo'. A few additional ones:
- After pressing Alt-X, show a list of recently used commands. Allow moving between them with the up/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 "intellisense" function that saves me so much time when using JetBrains & VSCode.
- When opening/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/PGDN/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 & arrows keys to select the file.
- Auto-save and auto-format. I love this mode when editing Rust code with CLion. It gives me something I've wanted for a long time: to write code without thinking about formatting. There'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.
- Allow using ENTER to add newlines to a search-replace command. I can rarely remember whether it's CTRL-Q, CTRL-J, or both and frequently make mistakes.
- 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.
- 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 "The fix now requires change X. Here's the new command that worked for me ..." Locking old issues saves the dev team some effort but destroys a lot of the utility for users.
- tgbugs 5y ago> especially 'redo' undo-redo is in emacs-28 now, though not the default behavior. > Allow writing Emacs commands in popular languages like Python 3 or JavaScript. For js see https://github.com/emacs-ng/emacs-ng https://github.com/emacs-ng/emacs-ng Integrating additional runtimes into the Emacs core, especially ones that also have a single main thread are likely to be a complete nightmare. There are already insane and undebugable performance issues with things that run on the main graphics event loop or on timers. If elisp can somehow be made multi-threaded there might be a chance. However, there is SO much elisp code that assumes synchronous ordered execution that will break in subtle and unexpected ways when that restriction is lifted I expect it will take even longer than the transition to lexical scoping (and that is just in the core). I would love to be wrong though. With respect to Python, the cpython runtime and semantics for redefinition are likely even more nighmareish because it is so easy for classes and instances to become out of sync and you wind up having to restart the whole environment just to clear out the bad state or risk creeping insanity. Also the churn in the Python ecosystem is likely far too high for Emacs to be able to maintain. So there are both technical and process mismatches. You could always run python in a separate process and use message passing though. Work to support LSP certainly paves the way for it, and elpy has fully interop with python as well, so you could use that machinery to operate on buffers in languages beyond python. So if all this is possible why isn't anyone doing it?
- BeetleB 5y ago> After pressing Alt-X, show a list of recently used commands. I would recommend people install/enable some of the nicer completion packages. Helm does this, for example. Personally, I wouldn't recommend helm, but I suspect all the "major" completion modes do this. Even ido/smex, I believe, does this, and it comes with Emacs (you still need to enable it, though). Also, I suspect if you use Doom or Spacemacs this will be the default. > When opening/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/PGDN/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 & arrows keys to select the file. I think all of this is configurable, but I'm also sure 95% of users don't want to spend too much time configuring. The default interface sucks - the problem is that there's no "improvement" that the majority likes, so the default remains a bit barebone. For example, I don't like some of your suggestions (although they are "objectively" OK). Likewise you wouldn't want it the way I have it. > Auto-save and auto-format. You could put a setting in your config file to enable this. Most people don't want it, though. Even in other editors. > Allow using ENTER to add newlines to a search-replace command. I believe this is configurable - I did something similar for a different input. But ... how do you propose someone then achieve the current effect of ENTER? > 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. I would like this, but it's very challenging. I even switched to Leo Editor which was inspired by Emacs and is the closest thing you'll get to Emacs: An extremely configurable editor that you can script in Python - you can dynamically change the UI, etc. It's the equivalent of Emacs but for Python users. You may want to look into it. Unfortunately, despite being "mature", its documentation isn't the best, and it's hard to compete with all the Emacs packages out there. I gave up and decided to learn elisp - much easier than porting every Emacs feature I liked to Leo. But Leo really has its strong points. The literate programming capabilities it is based on still haven't been replicated in Emacs - I've not found anything as good in that regard as Leo. I still occasionally fire up Leo when I find Emacs lacking. > Create a public issue tracker for emacs It occurred to me that anyone could create a Github project just for Emacs issues. It would be useful even if Emacs developers don't look at it. Currently people do it with StackExchange.