This page documents known bugs, brainstorms cool new features, and wishes for Emacs. (Try to keep humor in CategoryHumor…)
Note: If you want Emacs developers to consider your suggestion, don’t just post it here (but do that too), send it to the Emacs-developer mailing list: mailto:emacs-devel@gnu.org. There are also opportunities which could provide solutions to these wishes; for instance GoogleSummerOfCode
Maintaining the Page
This is a large page that is inclined to only grow larger. It needs to be continuously refactored. Wishes are organized by topic and by what degree the change would cause to Emacs. Other categorizations might also be useful to adopt.
Some wishes exist as features, or can be accomplished simply by using other parts of Emacs. These will be moved to those relevant pages.
Some unmet wishes and discussion can from time to time be moved to more relevant pages, or could be moved to archive pages of the WishList, or could be permanently deleted.
The other possibility would move wishlist items on to UserName pages, and could be linked to from this page.
Usage Wishes
- That lots more people use emacs -batch or xemacs -batch so that they use and improve command line emacs and replace usage of other languages for shell scripting. I’d prefer elisp with (require ‘cl) over scsh.
- Wish for SXEmacs - make a deb package out of it, possible on PPA
- To connect two Emacs Sessions in different machines, i mean: i have a session of emacs (with an elisp package in a freebsd box) and want to work on that but from my Aquamacs Emacs interface in my Mac. As for today i couldn’t do this, i think it is quite difficult as i want to transmit images between the two instances.--AlvaroMartinez
- On that note, I’d like to see Emacs support the type of CollaborativeEditing that SubEthaEdit has. I know there have been attempts, but they seem to have gone to ground all. [[SummerOfCode?]] 2010?
- This type of collaborative editing is possible in Emacs with Rudel. Currently the obby protocol (introduced by the Gobby collaborative editor) is supported. Support for the protocol used by [[SubEthaEdit?]] is under development. – JanMoringen (disclaimer: Rudel author)
Configuration Wishes
- An Internet service that allows users to share their Emacs configuration, including InitFiles and any associated personal EmacsLisp libraries or libraries written by others. Web and version control features should be incorporated.
- Discussion has occurred on storing .gnus and other config files on an imap server, which would make switching pretty easy. I expect some metafunction could be written that would ask the user at startup where to get the init files from. --bressen
- Let’s make a slimmed down version of GnuEmacs with only the bare-minimum EmacsLisp packages needed for quick editing. Then we would make a small package-manager boot-strap that would update the list of available
‘interactive’ functions with the associated file location. When a user or the system attempts any such feature, the package would be seamlessly installed and loaded and the attempted function called. We could use a profiler [what’s the name of that one… unsafep.el?] to initially check unknown packages, and digital signatures to stamp those we finally determined ‘safe’. – PatrickAnderson - A package manager for Emacs Lisp packages. The features that seam most important to me are a huge (browsable) list of packages and automatic dependency handling. Besides general stability of course.
Software Design Wishes
This category is a bit vague. It is the place for discussing improvements to design decisions that affect Emacs broadly. Issues are commonly related to using files generally or of what tasks Emacs is expected to do (tasks even beyond text editing for example).
- SupportForLargeFiles? - a mode, like the less command, that does not read the entire file in memory, and provides efficient navigation.
- MultiThreadedEmacs? (or ConcurrentEmacs) - one reason I haven’t switched to gnus is that everytime I try to read news, erc my irc client times out. I WANT A THREADED EMACS!
- Why, exactly? If there’s some problem with it taking too long to read out a server, for instance, it could be made asynchronous in the same way as ange-ftp or the url package.
- I wish XEmacs recognized when opening a file that is a hard link to another file that’s already open. It should just leave the one buffer I think (or have two buffers that simultaneously/automatically update each other). (Amen to this one – LathI)
- Have Emacs always use VersionControl.
- this can be done using find-file-hooks and after-save-hook if you need it
- I wish that GNU Emacs could open files of any size (Buffer size == (Unlimited or super big not only 128 or 256 MB))
- It would be really cool, if the emacs display engine would support the drawing of circles, lines, boxes. This would allow the creation of vector graphics within emacs. It would be enough to have some graphics only buffers for a start. With such an addition one could write a xfig mode. Well, I am only dreaming. – StefanReichoer
- You can create images (using
‘create-image’) and insert them into buffers (using ‘put-image’) within Emacs. You could also fix the Emacs redisplay engine such that stuff created via the XlibInterface (see PixelDrawing) do not get erased on the next redisplay. – AlexSchroeder - Whatever you do, the Emacs display engine is line-oriented, for editing text. It’s clearly not suitable as a vector graphics editor, and why should it be?
- Rather than asking emacs to become half vector-graphics editor, I’d like to see emacs support, as modules, buffers of types other than text. --TomBreton
- So in your vector-graphics example, you would write your circle, box etc drawing code, and you’d write a data structure and tell emacs that it was a type of buffer and should be displayed via your display code, all without changing emacs itself.
- And if your extension was horrendous, nobody else is bothered; if it was a niche thing, others who like it can load it or link it in and still share the rest of emacs with everyone else; and if it’s nice it’s easy to include it later in emacs proper.
- Some thoughts towards implementation:
- Each such module would supply its own data representation (Model) and display engine that would assume it was dealing with an emacs window (View), and data inspection and mutation primitives controlled via elisp (Controller).
- Some existing buffer fields would be common to all buffer types (eg buffer name, save_modified, modtime, auto_save_modified, backed_up, etc), some would be heterogeneous but retain a common structure (eg undo_list, markers), and some would become specific to text buffers (eg last_window_start, display_table, syntax_table_v).
- Like buffer, window would share some existing fields (most), structurally share some (pointm, last_point, region_showing), and some would become specific to text (start, display_table, base_line_number, base_line_pos).
- C functions that now assume a buffer is a text-buffer would check buffer type before proceeding. Fset_window_buffer (I think, looking at window.c) would know to call a non-text buffer’s own display function. – TomBreton
- I want EmacsLisp to have more primitives to speed up. I think
‘replace-regexp-in-string’ MUST BE primitive. - I want EmacsLisp to have Regexp object which contains compiled regexp.
- I want term, shell, eshell or some other terminal emulator to properly support terminfo and ncurses, so programs like aptitude would look good inside of them.
- Emacs should have FFI, thus almost everything could be implemented in Emacs.
- Implement lookahead and lookbehind in regular expresions (regexp). The
\{?: Syntax already works for non-grouping expressions, so I feel it should be extended to include \(?= and \(?! for lookahead as well as \(?<= and \(?<! for lookbehind.- Well, the python ‘re’ package does that, and then there is a package for using python as an extension language. That might be an easy implementation. But, yes (!), lookahead/lookbehind in elisp functions would be great and I would use them.
- I would like to have bonjour chat client in GNU/Emacs… And it would be wonderfoul if I could use ERC for this aim.
Portability and Internationalisation Wishes
Here is where requests for using Emacs on other software and operating system platforms or to support other human languages and compatibility issues between other Emacsen.
- I’d love to be able to remap meta so I could use it with Rainer Keuchel's emacs port to CE
- I wish I could write Arabic in Emacs
- And I wish I could write Hebrew (go BiDi?), with vowel points.
Editing Wishes
These are wishes for better support for text editing, especially writers, but not exclusively.
- I’d like copy, paste and cut command which working with the clipboard instead kill-ring. I write it for myself
(defun copy (beg end)
"Copy region into clipboard"
(interactive "r")
(if mark-active
(progn
(x-set-selection 'CLIPBOARD (buffer-substring beg end))
(setq mark-active nil)
(message "Marked text copied"))
(progn
(x-set-selection 'CLIPBOARD (buffer-substring line-beginning-position line-end-position))
(setq mark-active nil)
(message "Current line is copied"))))
(defun cut (beg end)
"Copy region into clipboard and kill"
(interactive "r")
(if mark-active
(progn
(x-set-selection 'CLIPBOARD (buffer-substring beg end))
(delete-region beg end)
(setq mark-active nil)
(message "Marked text cut"))
(progn
(x-set-selection 'CLIPBOARD (buffer-substring line-beginning-position line-end-position))
(delete-region line-beginning-position line-end-position)
(setq mark-active nil)
(message "Current line is cut"))))
(defun paste (beg end)
"Paste contents of clipboard into point"
(interactive "r")
(if mark-active
(delete-region beg end))
(insert (x-selection 'CLIPBOARD)))
But i think what it very useful function for everyone.
- I’d like Emacs to support true word wrap and other “soft” formatting. i.e. formatting that applies to the display, but not the file. For example, VisualSlickEdit has a soft indent mode where a single long line of code in the file is displayed not only word wrapped, but also indented appropriately. [Try LongLines]
- True word-wrap has been partially given to you (the indenting part of it, not so much). See the instructions under LineWrap.
- I’ve written a proof-of-concept implementation of SoftIndent --JamesWright
- I’d like to see emacs (optionally) allow a multiline modeline, which automatically resizes to accomodate all text, just as the echo area currently does.
- Gnu Emacs should have a MarginMode.
- I wish for a tabs-then-spaces option in the indentation modes (at least the C derived ones). Tabs to get to the block-level, then spaces for pretty formatting.
- I’d like to scroll a buffer with the mouse wheel and have the cursor remain at the original line, even if it goes off-screen. Emacs seems to be designed with the premise that the cursor be on-screen all the time, but could make an exception for wheel/scroll-bar events and refocus the cursor on keypress. Otherwise the user who habitually scrolls will be constantly worried of losing the cursor position… Mmm; that’s a feature to discourage excessive glancing. – DanielClemente
User-Interface Wishes
These are wishes related to interacting with Emacs or with the graphical user interface of Emacs.
- I wish emacs supported XEmacs’
modeline-click-swaps-buffer. Bonus points if also supported left->next buffer and right->previous buffer.
- Isn’t this wish satisfied by Emacs 21? From etc/NEWS:
- Mouse-1 on the buffer name in the mode line goes to the next buffer.
- Mouse-3 on the buffer-name goes to the previous buffer.
- I’d like to see ± sign on (left) margin while using hideshow mode.
- More support for One-Frame-Per-Buffer use – that is, non-
‘nil’ ‘pop-up-frames’. Currently, the ‘nil’ case is pretty much all that’s thought about during UI design and testing, IMO. Emacs is hard-code biased toward using Emacs windows instead of frames. OneOnOneEmacs is my attempt to work around some of the problems. – DrewAdams - AntiAliasedFaces.
- This is supported out of the box in GNU Emacs 23.1.
- I’d like the ‘suggested fix’ feature thats in IDEA, or something like it. IDEA parses the buffer continually when idle, lightbulb appears when the TextCursor is over some parts of the buffer where an autocorrection is possible (typically warnings, errors), pressing Alt-Enter presents a menu of tasks, typically fixes but sometimes other things (eg ‘Implement this interface’). Its spelling correction on steroids. A minor mode perhaps? Example uses: in an html editing mode suggested fixes may optionally include fixing tag spelling, closing tags, fixing text spelling, fixing text grammar, adding required attributes … emacs has all this kind of thing, but all done as separately like ispell, rather than all cooperating on a common ‘blackboard’ of tasks/fixes.
- A start at something like this is available in CSharpMode. It relies on flymake which performs a compile check, then inspects the compiler errors and proposes quick fixes in a popup menu. The fixes that are proposed are all coded into the csharp-mode extension for flymake, they are all custom-engineered. Basic common errors like a missing semicolon are handled with a menu choice, “insert a semicolon”. Almost as trivially, missing namespaces result in a menu choice like “import the XXXX namespace”. Figuring out reasonable fixes for compiler errors is not so easy, though.
- I suppose you could extend the idea to run static analysis (FxCop?, StyleCop?) on the buffer, in addition to the csc.exe compiler. Then emacs could propose somewhat more useful fixes or changes. (Eg, “use appropriate capitalization on Methods” etc.)
- Currently the csharp stuff is all very language-specific. It wouldn’t be difficult to modularize and generalize it.
- I would like to see (as an option) the ability to close a frame and have the file closed as well, making Emacs work a bit more like a Mac or Windows editor. I tend to open and close a lot of windows (currently using gnuclient and gnuserv), and this ability would be very useful for me. – ClaireConnelly
- Can’t you do that with delete-frame-hook? – KevinRodgers
- At least in XEmacs there C-x 4 0 which will kill-buffer-and-window and if there only one window in frame, frame will be killed as well. --ZajcevEvgeny
- In AquamacsEmacs, Apple-W calls
‘close-current-window-asktosave’ which will delete the current buffer and close the selected window and also its frame if it is the only window in that frame. It’s defined in the one-buffer-one-frame-mode package.
- I’d like
‘previous-matching-history-element’ to work like C-r in bash/readline, i.e. to display matches incrementally. It would be a great addition to Emacs’ excellent incremental search facilities.
- In CVS Emacs you can isearch (C-s/C-r) the minibuffer history.
- Splitting windows horizontally with
‘C-x 3’ should be generalized to the prefix key ‘C-x 6’, which is occupied by ‘2C-two-columns’ commands. Which is just silly. - Proper (file) drag and drop support integrating emacs with a KDE/Konqueror environment would be highly appreciated. Under Windows boxes, Emacs opens files dragged from the Windows Explorer quite nicely. However, under Linux systems, dragging files from Konqueror to Emacs does not work at all. This leads to a slow-down when opening new files in other directories since you have to navigate to the very same directory with Emacs find-file capabilities first, or mess around with tedious and error-prone URL copy-paste-reedit-cut-again functionality to achieve the same effects. File Drag’n’Drop from Konqueror into Emacs would be by far superior.
- There is drag-and-drop support in the development version (at the time of writing).
- You can always associate Emacs (with higher or lower priority) with the files you might want to open with it. But the whole topic of KDE-Emacs (emaKs?) integration is much wider:
- KDE menus and toolbars.
- If you use gnuserv and you like having only one frame, raising it on file opening doesn’t work fine: it doesn’t raise over other KDE windows. Or if you have the Emacs frame in one virtual desktop and you open a file from, e.g., Konqueror while in another one, you can’t make the Emacs frame (in its KDE window) come to your current virtual desktop.
- if you have Alt-F4 mapped to “close window” in KDE, it will do fine closing programs, but if you try to re-define it in Emacs for, e.g., “kill buffer and close frame”, it won’t work because it will kill the window (KDE-wise) before Emacs “reads” the keystroke.
- I’d love to start Emacs as a service (gnuserv) without any frame initially associated (starting it with --iconic) and having it represented by an icon in the “system tray” which would support drag-n-drop (well, I assume this goes rather in “utopian wishes”).
- I think if GNU Emacs can take a picture as its background, it will be very cooooooool. I know XEmacs can do this, and something called TransparentEmacs also. But TransparentEmacs is a branch and it seems that under windows it’s simply no way. Emacs can display pictures both under windows and linux, so I think it’s not a hard work to make picture backgounds. I’m looking forward to it……
- You can put a pixmap background in XEmacs (I don’t know about Emacs) with (set-face-background ‘default "pixmap"), but then the background is static, you scroll the buffer and the background doesn’t move. A nice addition will be to make the pixmap background scroll with the buffer, as commonly the web pages with an image background do.
- I wish GNU Emacs could bind ToolBar buttons to different functions based on what mouse button I used to click them. Or maybe I am just missing something.
- Good idea! Anyone know how this might be done?
- I get the impression it cannot be done currently. Unlike the mode-line, it looks like all mouse buttons have the same effect wrt ToolBar buttons. I took a look in `bindings.el’ and in various C source files (dispextern.c, xdisp.c, w32term.c, macterm.c), but I don’t see a way to fiddle with this. The C function that handles mouse clicks in the ToolBar seems to be `
[w32]handle_tool_bar_click, and it looks like the only thing tested is the down_modifier for any mouse button – all buttons are treated alike. On the other hand, the click event seems to be stored as a TOOL_BAR_EVENT along with its modifier keys (Control, Meta etc.), so maybe I’m reading the code wrong and there is a way to get at this info. I tried binding [tool-bar mouse-2] etc., but to no avail. The ToolBar seems to be treated half-way between how the MenuBar and the ModeLine are treated: the menu-bar doesn’t even recognize keyboard modifiers; the mode-line recognizes mouse buttons and keyboard modifiers. – DrewAdams
- I wish C-x s had a
‘d’ command option for running ‘diff’
- TextMate has a nice feature where you can bind the same key to different commands in different contexts (they call them “scope selectors”). For example, M-d could delete a whole sexp when on a paren, a whole word when in a non-comment word, and a whole comment when in a comment. This sort of DWIM could free up a lot of simple key combinations. Widgets and a few other packages already do somethign similar, but it would be nice to have an infrastructure tied in to text properties and/or font-lock to simplify users’ creating such bindings.
- Follow mode can only synchronize scrolling windows which content a same file. Does it possible to scrolling windows with diffrent files synchronously? – 9307420654
- There is a minor mode to apply all scrolling commands to all visible windows in the current frame. Check
scroll-all-mode for that. Or else, if you want to scroll together only 2 windows and only when you use a specific keystroke, you can do something like a function that scrolls the current window (scroll-up or scroll-down) and then the “other window” (i.e., the next one in the list of windows), with scroll-other-window (with argument '-, i.e., the symbol “minus”, for scrolling down). Then you can assign this to a keystroke, e.g., C-M-up / down.
- It would be very nice if TRAMP could work asynchronously. While saving a remote file, Emacs is frozen, which is pretty annoying. Generally speaking, Emacs would improve significantly when all the small freezes will be removed. More asynchronous operations would be very welcome!
- Emacs diplay images in tty,xterm.
Extensibility Wishes
These are wishes about Emacs lisp or generally extending Emacs.
- Closures. Oh, how I would appreciate it if Emacs had real lexical let (not the expensive workaround from the cl package) and real closures. – OliverScholz
- And while I am at it: proper tail call reduction. Sometimes it is more straight-forward to use recursion instead of a loop. -- OliverScholz (who is currently struggling with exactly this)
- I wish Emacs had Common Lisp #’format – BtTempleton
- I wish Emacs could tell me about (generate a list of) un-bound simple keychords, instead of hunting for them using C-h k.
- 1. Which key sequences are unbound depends on what the current major mode is.
- 2. This doesn’t give you a list of unbound key sequences in the current major mode, but it at least gives you a list of bound key sequences, so it is better than
‘C-h k’: `describe-bindings’. – DrewAdams - Could you automate this fishing? A cartesian join of possible key combinations in a database to come up with a Hugh Jass table, and a dash of code? --ChristopherSmith
- I’ve implemented this (with combinations determined by variables) as Lisp:unbound.el. The interesting bit in the request is the word “simple”, really. --DavisHerring
- guile2 instead of core elisp
Mode Wishes
These are wishes for new modes or for changes to modes existing in Emacs.
- Is it time for an epub mode yet? :) I mean, since emacs is an editor and all, a mode that allows you to traverse an unzipped epub “project” in much the same way TeX mode allows you to traverse the chapters of a large LaTeX project, maybe even flipping from editing mode to view/navigate mode using W3M, should be right up emacs’ alley! IMHO, being able to ZIP/UNZIP an epub is somewhere between a minor to irrelevant issue as there are other tools that already do this. There was a project started a few years ago, but it seems it kind of petered out, and was still focused on the reading, not the editing/production. And I see nothing else out there that’s focused on an epub as a working project, either. Everthing wants to read the darned thing as a finished project.
- That GNU Emacs had TabBarMode
- Could dired-listing-switches be made to work with long options, like --time-sty.le=iso? (xemacs.) --gambarimasu
- I’d like it if TarMode had a programmatic interface so I could say (find-file-in-tar "foo.tar" "bar.txt" "foo.tar!baz.txt") to open "baz.txt" from "foo.tar" in a buffer called "foo.tar!baz.txt". Currently TarMode seems to only be useful for interactive work. If only I had the time to fix it myself! – DavidOShea (if you have a solution please follow the link and email me :) )
How about:
(require 'tar-mode)
(defun tar-find-file (tar-filename filename)
"Visit TAR-FILENAME and extract FILENAME into its own buffer."
(interactive
(let* ((tar-file
(read-file-name "Visit tar file: "
nil nil t nil
(lambda (file)
(string-match "/\\'\\|\\.tar\\>" file))))
(file
(with-current-buffer (find-file-noselect tar-file)
(completing-read (format "Extract %s file: "
(file-name-nondirectory tar-file))
(mapcar (function (lambda (tar-desc)
(tar-header-name
(tar-desc-tokens tar-desc))))
tar-parse-info)))))
(list tar-file file)))
(with-current-buffer (find-file-noselect tar-filename)
(goto-char (point-min))
;; (format "^.\\{%d\\}%s$"
;; (if tar-mode-show-date 54 36) (regexp-quote filename))
(if (re-search-forward (format " %s$" (regexp-quote filename))
nil t)
(progn
(tar-extract)
(current-buffer))
(error "%s not found in %s" filename tar-filename))))
- I wish that vr-mode.el would work with both xemacs and emacs. This is an irreplaceable application for people who use speech recognition, but it only works with emacs.
- I’d like to use an outline for EmacsPresentation like JMP’s software.
- The currently available mode for php is not within Emacs and hardly maintained at the moment. The reason is that no one believes that the current php-mode.el can be included in Emacs since all the contributors has not signed papers for Emacs. So a new php-mode is badly needed. A php-mode where all the contributors has signed papers for Emacs. Anyone interested in this could read more about it in the Emacs Devel mailing list archive.
Documentation Wishes
These are wishes related to Emacs’s documentation or with the Info system.
- EmacsCommandSuggester will study the user’s actions and suggest commands they should use as alternatives.
Programming Wishes
Below are wishes related to Emacs support of computer programming, not about programming Emacs. Those are filed above under extensibility.
- we need built-in line-number in emacs .. show line-number in the left column.
- I think the tags file can be used more. When the cursor is over a word found in the tags file, The definition of it should be visible together with the path of the file it is in. This should be done real-time and I think it is not so cpu intensive (since the whole tags file is in memory, right?). Today the user has to press M-. or C-x 4 . to view the whole file and sometimes this is irritating. Moreover if the users has a new "special" window open (e.g. with C-x 4 .) it should be updated real time with whatever the cursor is on, always according to the tags file. Finally the speedbar should automagically highlight the file that the tag is found in. No matter how hard I ‘ve searched, I haven’t found yet those features in any package.
- The development version (at the time of writing) has a generalized Eldoc mode. You would write a function to assign to
‘eldoc-print-current-symbol-info-function’. Have it check ‘tags-completion-table’ to check whether the symbol is a tag.
- I’d like to have a tool that counts all C++ and commentary lines in all files marked in dired.
- word-count.el does this for a single file; it should take just a few minutes to script it to count all marked files.
- A xlock/vlock for emacs :)
- GNU screen has this feature if that’s any help.
- I’d like to able able to goto and browse functions within a buffer like I would switch buffers using iswitch-buffer or ido.
- I’d like to have format strings (%d and friends) to be highlighted in their own Face
- Write a
‘font-lock-syntactic-face-function’ which checks the contents of the region indicated by its arg when it is a string.- Hm, a short search on my local systems shows this variable only in GNU Emacs. Is it still missing in XEmacs? And how is it supposed to work? (Unfortunately the documentation is not very clear here.)
- You probably have this figured out how you want, but the following works for me. Change the regexp and face to suit your needs of course. (Please feel free to move this and/or improve the code--I don’t really have any idea what I did, but it seems to work).
(defvar format-string-regexp
"%" "*\
A regexp to match format strings. It will be match against the
string including the beginning and quotes.")
(defface format-string-face
' ((t (:background "lightyellow2" :foreground "Red" :slant
italic :weight bold)))
"Face to use when the string is a format string (e.g. for printf)"
)
(defun my-font-lock-syntactic-face-function (state)
"Fontify comments as comments and strings as strings or as formatting strings (e.g. for printf)"
;; see `parse-partial-sexp' for information about state
(if (not (nth 3 state))
font-lock-comment-face
(let* ((beg-char (nth 8 state))
(end-char (save-excursion ; There is probably a better way to do this, but I don't know it
(goto-char beg-char)
(forward-sexp)
(point)))
(string (buffer-substring-no-properties beg-char end-char)))
(if (string-match format-string-regexp string)
'format-string-face
font-lock-string-face))))
(setq font-lock-syntactic-face-function (function my-font-lock-syntactic-face-function))
- Support for Ruby on Rails development, in particular Embedded Ruby in html. Also, improved syntax highlighting.
- A Perl mode that can actually parse Perl, the way NxmlMode parses XML.
- A general recognition that an unclosed quoting construct is not a syntax error while I'm still typing it!
Other Wishes
- I’d like if the EmacsDoctor wasn’t such an ass all the time.
- I wish the EmacsDoctor would help me find bugs in my code instead of just bugs in my psychology. It should actually be pretty easy to help with Rubber Duck Debugging.
- I’d like if Emacs has a forward-byte to move in buffer by n bytes and not characters.
- I’d like Emacs keybindings for OpenOffice, something like VBacs does for Ms Word.
- There are indexed searchers like namazu, mairix, lucene, … Some are a little bit out of date, unmantained, or their multiplatform capability is not there out of the box (having to deal with dependencies, compilation, …). It would be nice to have an indexed searcher for fast searches within a project (documentation) or many org-mode files. One elisp based would be a good start (JosĂ© M.)
- Animated GIFs support in emacs-w3m.
- rcirc support of automatic reconnection.
Utopian Wishes
This is the place for wishes, that would require a complete rewrite of emacs or are in another way very very unlikely to ever happen. If you find any utopian wishes above, please move them here.
- Port Emacs to Palm OS – (emacs@mrspud.cjb.net)
- I’d like to see something akin to emacs on Palm os well. I enjoy editing text on the Palm with a keyboard but miss the basic controls (C-k, etc) available in emacs.
- Follow mode can only scrolling windows screen synchronously which contain a same file. Does it possible to scrolling diffrent file buffers or windows synchronously?
- scroll-all-mode already does this, not utopian
- “I’d like someone else to rewrite it in…”
- …C# and GTK#, working with portable.NET (or mono), and programmable in C#! :-)
- …Guile.
- … erlang (see [[ErLisp?]]) :-)
- …CommonLisp.
- …EmacsLisp (in other words, make the Lisp engine faster and then replace all the C code with Lisp).
- …Haskell ([1]: “the idea of writing an Emacs-like system in Haskell might be ill-considered but, as you also notice in the rest of your message, that doesn’t make it worthless in a long-term perspective”; [2]: “Having just presented a case for the possible rationality of the irrational decision of creating an Emacs-like IDE in Haskell, I wonder if we should not be even more irrational and contemplate the possibility of using Haskell to create a radically different kind of IDE.”).
- Emacs or Xemacs running on top of portable, standard ANSI Common Lisp (with macrology to emulate elisp enough that most packages will work). Then we can choose the back end (clisp, cmucl, sbcl, …) according to our needs, and leverage off of the incredible design and implementation work that has gone into ANSI. (Not that elisp hasn’t been incredibly great, but it’s an OLD dialect of Lisp. Time to move on, IMHO.) – (wayestuncool@yahoo).
- There actually is an emacs-like editor written in Scheme (MitSlashGnuScheme, not Guile, but that’s not the biggest of differences) called EdWin.
- emacs-like. ha. ha ha. blow away all existing elisp code. ha ha ha.
- There actually is a free software emacs-like editor written in Common Lisp called Hemlock, that comes with CMUCL. Also, just about every commercial Common Lisp has an emacs-like editor in it (at least Symbolics Genera, Xanalysis LispWorks? and MCL have them).
- I wish Emacs used both.
- One should port Emacs to Common Lisp “slowly”, i.e. in a way where at first, it runs the original emacs through a compatibility layer, and then once you get that working, you can start porting bits of C and ELisp code to Common Lisp.
- Creating some files in CL to provide ELisp compatibility. The bulk of how they ported Macsyma from MacLisp to Common Lisp was by adding a slew of functions and macros to provide compatibility. ELisp is actually closer to CL than Maclisp is, I think. The main problem was then, and will be now, to deal with dynamic scoping. Emacs is full of idioms like (defun bar () foo) (let ((foo 3)) (bar)), which returns 3 in Maclisp and Elisp, but an error in CL. Judging from the Maxima sources, this was dealt with by long lists of proclaims declaring many variables “special” (special in CL == fluid in Scheme == dynamic in general).
- One way of dealing with dynamic scoping is to redefine all binding constructs with macros to explicitly use (declare (special foo)). There should be some trick to read .el files with those macros and .lisp files without them, but I’m sure it could be done, since Common Lisp is especially suited to advanced macrology.
- Suppose that it were to become possible in this way to run ELisp files in a Common Lisp system – and I am fairly certain that could be done – then the next step would be to
- In GCL, it is possible to link C and Lisp code. GCL is probably the preferred CL. It has been hacked on with ever-increasing intensity lately. They’re getting close to full ANSI compatibility (for a longtime, the main problem with GCL was that it only went as far as CLtL?1). It uses GCC as a back end, which makes it portable and very fast, and allows for the aforementioned Lisp with C linking. It also knows how to unexec.
- Convert all the .el files to common lisp, and run them, for the time being, using emacs’s CL compatibility thingy. I don’t think that’d work so great.
- Indeed. Common Lisp doesn’t, for instance, have buffer-local variables, text properties, the Emacs character set — let alone appropriate critical section signal handling and the like…
- I’d like it if GNU Emacs would, by default, keep all of the 712 .elc files, 760 .el files, and 460 other files in .JAR format by default. See http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html The Info-ZIP project has almost all necessary code. Would developers be opposed to this?
- You could implement that yourself via a file-name handler to demonstrate how useful it is. Why not zip up your entire filesystem, though?
- I’d like to see a merger of Emacs and Xemacs. Whatever water has gone under that bridge, let it go, and pluck the best ideas of both, for, say, version 24.
- XEmacs features were considered during Emacs 21 development, though doubtless not exahustively. I don’t remember any major one we thought was worth having that didn’t get implemented/used.
- An ‘emacs: lite-mode’: I’d like to use the emacs-sty.le keystrokes, editing capability, etc. in other programs, rather than depend on emacs for everything. My ‘grand vision’ goes like this: an ‘emacs.dll’ (for Windoze), an ‘emacs.so’ (for unix-likes), etc. that other programs can link to and use for all text-editing. Then, instead of having to choose between editing in a text-area in Firefox or editing in emacs then cut&pasting, I would have Firefox link to emacs.so for its editing (input boxes, password boxes, text areas, …).
- well, you might be interested in XKeymacs
- MozEX might be useful for the Firefox case
- To use Emacs to edit HTML text areas in Firefox you can use the Firefox add-on “its all text”.
- There’s also conkeror
- Obviously there are multiple reasons why you couldn’t make a shared library from Emacs and use it like that. However widget sets and applications often support Emacs-sty.le bindings:
$ gconftool-2 --get /desktop/gnome/interface/gtk_key_theme
EmacsArchive
Add useless wishes here – wishes that can be satisfied with some code, wishes that have been implemented. If you disagree, refine the wish, and move it to the top again. On the other hand, if some of these resolved wishes attract a lot of comments, move them to their own page.
CategoryWishList