MapaDelSitio CambiosRecientes Noticias ÁreaElisp WikiCómo

WishList

Última vez editado

Resumen: shamelessly advertise

Añadido:

> ** I've just written a mode that does this, among other things: [[Multipoint]]. It's not very good.


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

      • 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

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).

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.

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.

    • 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’
    • It does in Emacs 22.
  • 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.

Mode Wishes

These are wishes for new modes or for changes to modes existing in Emacs.

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.

Programming Wishes

Below are wishes related to Emacs support of computer programming, not about programming Emacs. Those are filed above under extensibility.

    • 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

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.

    $ gconftool-2 --get /desktop/gnome/interface/gtk_key_theme
    Emacs

Archive

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