Emacs - Utilizzo di "Seleziona tutto" in Funzione (come trovare la funzione associata a un tasto)

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

  •  05-07-2019
  •  | 
  •  

Domanda

Sto cercando di capire Elisp e ho raggiunto un blocco.

Voglio una funzione che indenterà l'intero file. In questo momento, seleziono l'intero file ( C-x h ) e quindi eseguo M-x indent-region (che ha un tasto di scelta rapida).

Vorrei combinarlo in un solo tasto, ma non riesco a capire come fare C-x h in una funzione.

Grazie

È stato utile?

Soluzione

Per scoprire cosa farà Emacs quando invochi una determinata combinazione di tasti, aggiungi il prefisso con: C-h k . Nel tuo caso, dovresti digitare:

C-h k C-x h

che produce

  

C-x h esegue il comando   mark-whole-buffer, che è un   funzione Lisp compilata interattiva in   `Simple.el'.

     

È associato a C-x h,    .   (Mark-tutta-buffer)

     

Metti il ??punto all'inizio e segna alla fine   del buffer. Probabilmente non dovresti usare   questa funzione nei programmi Lisp; è   di solito un errore per una funzione Lisp   per utilizzare qualsiasi subroutine che utilizza o   imposta il segno.

Nota: Puoi anche usare Ch K (nota che K è in maiuscolo), che passerà alla documentazione per il comando .

Altri suggerimenti

Vale la pena notare che non si desidera utilizzare il segno e il punto nel codice non interattivo; vuoi (indent-region (point-min) (point-max)) , non (save-excursion (mark-whole-buffer) (call-indent-indent-region)) , anche se gli effetti sono simili.

(Non per rovinare il divertimento, ma l'intera sequenza sarà simile a (global-set-key (kbd " CM-r ") (lambda () (interattivo) (indent-region (point- min) (point-max))) .)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top