开发者

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜