20

display-startup-echo-area-message triggers this little advertisement unless you're using customize and have set it there or have it set in your user-init-file (because it actually goes ahead and scans this file for something looking like that, see the definition of display-startup-echo-area-message for the gory details). There is a way to replace it with ...


18

What existing command gets the current file buffer's file name like this? Unfortunately there is no ready made command for this, but we can make one as follows: (defun name-of-the-file () "Gets the name of the file the current buffer is based on." (interactive) (insert (buffer-file-name (window-buffer (minibuffer-selected-window))))) The magic is ...


15

If you are writing C/C++/Java/Emacs Lisp/Python, then semantic-sticky-func-mode will do what you want. NOTE: This seems to be working with CEDET from Git, not stock CEDET currently in Emacs 24.4. To get Emacs from Git: git clone http://git.code.sf.net/p/cedet/git cedet And load CEDET first above everything else in your init file: (load-file (concat ...


15

C-y does work, but you can also paste into the minibuffer from the default register using dotspacemacs-emacs-leader-key instead of dotspacemacs-leader-key, in which case you can use: leaderre" or leaderrereturn. Alternatively, you can search and paste the contents from any register: for example leaderre phrase you remember. Personally, I've just set ...


13

Just add this code in your init file: (defun disable-key-chord-mode () (set (make-local-variable 'input-method-function) nil)) (add-hook 'minibuffer-setup-hook #'disable-key-chord-mode)


13

From the manual, M-p moves to the previous item, and M-n moves to the next.


12

You are confusing a few things, here. First, RET is not a physical (keyboard) key. It is a logical key -- the Emacs way of writing what your physical Return or Enter key typically sends to Emacs: a Control-M character (which Emacs also writes as C-m, when describing the Ctrl + m key sequence). And if your physical Return or Enter key sends something else, ...


11

C-] (command abort-recursive-edit) does what you want.


10

Popup Minibuffer at the Center Here’s a way to do exactly what you asked: display the minibuffer at the center of the screen. Have a separate frame for the minibuffer Position it at the center Raise this frame whenever the minibuffer gains focus. That is relatively easy to achieve, and is what you’ll get with the oneonone.el package (as @Drew points out). ...


10

Text scaling zooms the text of a particular buffer, everywhere that the buffer is displayed. What you want to do is zoom a particular frame and not just scale the text of a particular buffer. Commands zoom-in, zoom-out, and zoom-in/out of library zoom-frm.el let you do both of these things easily and incrementally. From the keyboard, command zoom-in/out ...


10

No need to read *Messages*. Here's how error handling works in Elisp: (defun bar () (error "asdf")) (defun foo () (condition-case e (bar) (error (message "Caught an error: %S" e))))


10

As others have indicated, and as was explained in the page you link to, output messages to the echo area are logged in buffer *Messages*. Clicking in the echo area brings up *Messages*, where you can copy text normally. In the minibuffer, which is for input (as opposed to the echo area, which is in the same place, and which is for output), if you use normal,...


8

Rather than read-char I recommend read-key. The difference is that read-key obeys all the usual remappings such as input-decode-map and function-key-map, so it will work properly in a tty.


8

This is because isearch does not use the minibuffer to read input from the user, rather it simply updates the echo area with the characters entered during isearch. Please note that the minibuffer and the echo area are different. From the GNU Emacs Manual The echo area is used for displaying error messages (see Errors), for messages made with the message ...


8

Use minibuffer-setup-hook: (defun foo () (insert "ABCDE")) (add-hook 'minibuffer-setup-hook 'foo) As @Basil mentions in a comment, depending on your use case you can alternatively use macro minibuffer-with-setup-hook (assuming it is available in your Emacs version). It adds a function temporarily to minibuffer-setup-hook, then executes the code in its ...


8

find-file uses the buffer-local default-directory value as the default filename (see also find-file-read-args), so all you need to do is bind that value for the scope of the call to find-file: (let ((default-directory "/home/")) (call-interactively 'find-file))


8

One solution for that narrow case is to dynamically set save-silently for that invocation specific invocation. Try: (run-at-time nil (* 5 60) (lambda () (let ((save-silently t)) (recentf-save-list)))) You might alternatively use advice to globally accomplish the same thing. See Advising Functions in the Emacs ...


7

If you use library Icicles then you can use M-. at any time from the minibuffer to insert a thing-at-point from the buffer. You can repeat M-. to either (a) append subsequent such things from the buffer or (b) change the kind of thing, inserting a different kind instead (cycling through thing types). This is explained at Icicles - Inserting Text from Cursor....


7

This is very similar to the question Is there a way to disable the “buffer is read-only” warning?, so a very similar answer seems appropriate. You can disable these messages by setting command-error-function to a function that ignores signals buffer-read-only, beginning-of-buffer, and end-of-buffer. (defun my-command-error-function (data context caller) "...


7

As was pointed out by @phils the "Wrote file" comes from write-region. If you don't use the inhibit-message variable introduced in Emacs 25, you could replace the original write-region with a function that sets VISIT to neither t nor nil nor a string. As the docstring of write-region tells us, this will avoid displaying the message. In the following example ...


7

I wrote about this once. The code: (defmacro ivy-quit-and-run (&rest body) "Quit the minibuffer and run BODY afterwards." `(progn (put 'quit 'error-message "") (run-at-time nil nil (lambda () (put 'quit 'error-message "Quit") ,@body)) (minibuffer-keyboard-quit)))


7

Sure. Set variable completion-ignore-case to t. Put this in your init file: (setq completion-ignore-case t) C-h v completion-ignore-case: completion-ignore-case is a variable defined in C source code. Its value is nil Documentation: Non-nil means don't consider case significant in completion. For file-name completion, read-file-name-completion-ignore-...


6

Try this: (add-hook 'minibuffer-setup-hook (lambda () (local-set-key (kbd "TAB") nil)))


6

You can turn on which-function-mode by doing M-x which-function-mode RET To make the setting permanent, add (which-function-mode 1) to your init-file. From the documentation: Toggle mode line display of current function (Which Function mode). [...] Which Function mode is a global minor mode. When enabled, the current function name is ...


6

Minibuffer at the top Displaying the minibuffer at the middle of the screen is complicated. A reasonable alternative (which you may or may not find more readable) is to move it to the top. You can configure the location (or existence) of a frame’s minibuffer with the minibuffer frame parameter in the initial-frame-alist variable. Separate Frame Setting ...


6

minibuffer-setup-hook is used only when the minibuffer is set up, i.e., activated, not when it is deactivated. minibuffer-exit-hook takes effect when the minibuffer is exited. There is also minibuffer-inactive-mode-hook. But although those do initiate the color change (as shown by adding (debug) at the beginning of the hook function, and then stepping ...


6

You can hit M-e to edit the current search term. This runs the command isearch-edit-string. You can then type C-s to resume the search. To get a list of all key bindings available during isearch, type C-s (to enter isearch) and then C-h b. You can also get some documentation by typing C-s C-h m (describe-mode). Here's some basic key bindings from that ...


6

As you seem to have already noticed, a function need the interactive form before it can be bound to a key. interactive doesn't just tell Emacs the function is a command, it is also tells Emacs where to get the functions arguments from. From C-h f interactive: Specify a way of parsing arguments for interactive use of a function. For example, write (...


6

Just use a string with faces. (message (propertize "foo bar" 'face 'highlight)) Or use a different face, which has a red foreground. Or use a face property list: (message (propertize "foo bar" 'face '(:foreground "Red")))


6

It's not obvious how to find out what face it is. The usual way is to put your cursor on some text and then use C-u C-x = but that's harder to do in the minibuffer. The other way I know of is to use M-x list-faces-display to see all the defined faces, and then you can look for something that has the same colors as the text you want to change. In this case ...


Only top voted, non community-wiki answers of a minimum length are eligible