Emacs - Utilisation de & # 8220; Sélectionner tout & # 8221; in Function (comment trouver la fonction liée à une clé)

StackOverflow https://stackoverflow.com/questions/1604597

  •  05-07-2019
  •  | 
  •  

Question

J'essaie de trouver Elisp, et j'ai heurté un barrage routier.

Je veux une fonction qui indente tout le fichier. Pour le moment, je sélectionne tout le fichier ( C-x h ), puis je fais M-x indent-region (avec une touche de raccourci).

J'aimerais combiner cela en une seule pression de touche, mais je ne peux pas comprendre comment faire C-x h dans une fonction.

Merci

Était-ce utile?

La solution

Pour savoir ce que fera Emacs lorsque vous invoquerez une certaine combinaison de touches, préfixez-le avec: C-h k . Dans votre cas, vous devez taper:

C-h k C-x h

qui donne

  

C-x h exécute la commande   mark-whole-buffer, qui est un   fonction Lisp compilée interactive dans   `simple.el '.

     

Il est lié à C-x h,    .   (mark-whole-buffer)

     

Placez le point au début et marquez à la fin   de tampon. Vous ne devriez probablement pas utiliser   cette fonction dans les programmes Lisp; il est   généralement une erreur pour une fonction Lisp   d'utiliser un sous-programme qui utilise ou   définit la marque.

Remarque: Vous pouvez également utiliser Ch K (notez que K est en majuscule), ce qui vous permettra d'accéder à la documentation de la commande. .

Autres conseils

Il est à noter que vous ne souhaitez pas utiliser la marque et le point en code non interactif; vous voulez (indent-region (point-min) (point-max)) , pas (save-excursion (mark-whole-buffer) (appel-interactivement indent-region)) , même si les effets sont similaires.

(Pas pour gâcher votre plaisir, mais la séquence entière ressemblera à (global-set-key (kbd "CM-r") (lambda () (interactif) (indent-region (point min) (point-max))) .)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top