2009-10-22 9 views
15

私はElispを理解しようとしており、私はロードブロッキングを打ちました。Emacs - 関数内の "Select All"を使う(キーにバインドされた関数を見つける方法)

ファイル全体をインデントする関数が必要です。今、ファイル全体(C-x h)を選択してから、M-xインデント領域(ショートカットキーがあります)を実行しています。

私はそれを1つのキー押しに組み合わせたいと思いますが、どのように行うかを理解することはできません。C-x hを関数に入れてください。 C-H kを

おかげ

答えて

21

が持つこと接頭辞、あなたが特定のキーの組み合わせを呼び出すとき、Emacsは何をするかを見つけるために。あなたのケースでは、次のように入力したい:

のCx hがコマンド マーク-whole-bufferの、 `simple.elで インタラクティブコンパイルLisp関数で実行さをもたらし

C-h k C-x h 

を'

これは、C-x h、 に結合している。 (マーク全体バッファ)

バッファの最初にポイントを入れ、最後にマークを付けます。 おそらく、この関数をLispプログラムで に使うべきではないでしょう。 通常、Lisp関数の間違い は、使用するサブルーチンを使用するか、 がマークを設定します。

注:ます。また、コマンドのドキュメントにあなたをジャンプしますC-HのKを(Kが大文字であることに注意)、使用することができます。

+0

あなたの先生に感謝、Chのkが、私は任意のドキュメントなしで、 – MattBelanger

+0

及びCH Cのリターンだけで機能を見つけることができなかったものですヘルプバッファを開くことなく。そして、C-h C-hはこれらの状況に適しています。 – quodlibetor

12

非インタラクティブコードでマークとポイントを使用したくないことに注意してください。効果が似ているにもかかわらず、ではなく、(indent-region (point-min) (point-max))が必要です。

(あなたの楽しみを台無しにしないが、全体のシーケンスが(global-set-key (kbd "C-M-r") (lambda() (interactive) (indent-region (point-min) (point-max)))ようになります。)

+0

バッファ/インデント領域全体にマーキングするよりも、あなたの方法が好まれますか?私は違いが何であるか分からない。 – MattBelanger