Emacs - Using "Select All" in Function (how to find the function bound to a key)
I'm trying to figure out Elisp, and I've hit a roadblock.
I want a function that will Indent the entire file. Right now, I'm selecting the whole file (C-x h) and then doing M-x indent-region (which does have a shortcut key).
I'd like to combine that in to a single keypress, but can't figure开发者_如何学C out how to do C-x h in a function.
Thanks
To find what Emacs will do when you invoke a certain key combination, prefix that with: C-h k. In your case, you'd type:
C-h k C-x h
which yields
C-x h runs the command mark-whole-buffer, which is an interactive compiled Lisp function in `simple.el'.
It is bound to C-x h, . (mark-whole-buffer)
Put point at beginning and mark at end of buffer. You probably should not use this function in Lisp programs; it is usually a mistake for a Lisp function to use any subroutine that uses or sets the mark.
Note: You can also use C-h K (note the K is capitalized), which will jump you to the documentation for the command.
It is worth noting that you don't want to use the mark and point in non-interactive code; you want (indent-region (point-min) (point-max))
, not (save-excursion (mark-whole-buffer) (call-interactively indent-region))
, even though the effects are similar.
(Not to ruin your fun, but the whole sequence will look something like (global-set-key (kbd "C-M-r") (lambda () (interactive) (indent-region (point-min) (point-max)))
.)
精彩评论