Domanda

Spesso ho scavato in documenti e documenti alla ricerca di qualcosa come il seguente solo per rinunciare a tornare al compito da svolgere:

(repeat-last-comando)

esegui l'ultimo comando C o M che ho appena eseguito (per essere rebound a un tasto fn)

o talvolta il relativo:

(descrivere-last-funzione)

quale sequenza di tasti ho appena emesso per errore, il cui effetto vorrei aggiungere alla mia borsa di trucchi. description-key è vicino, ma richiede di sapere cosa ho digitato.

Sto semplicemente chiedendo troppo al mio fidato aiutante?

È stato utile?

Soluzione

per quanto riguarda " descrivi-ultima funzione ':

C'è una variabile last-command che è impostata su un simbolo rappresentativo dell'ultima cosa che hai fatto. Quindi questo frammento di elisp - (descrivi la funzione dell'ultimo comando) - dovrebbe far apparire la documentazione per ciò che è accaduto immediatamente.

Quindi potresti creare un funzionante descrittivo dell'ultima funzione in questo modo

(defun describe-last-function() 
  (interactive) 
  (describe-function last-command))

Metti quell'elisp in .emacs o equivalente, e avrai una M-x descrivi-ultima funzione .

Se hai sbattuto su alcune chiavi o fatto qualcosa che ha modificato l'ultimo comando dal momento che ti interessa, la funzione cronologia dei comandi potrebbe essere interessante. Puoi ottenerlo tramite Cronologia comandi M-x

Altri suggerimenti

La funzionalità di ripetizione è fornita dal pacchetto Emacs Lisp repeat.el , incluso nelle distribuzioni Emacs standard. Dalla documentazione di repeat.el :

  

Questo pacchetto definisce un comando che   ripete il comando precedente,   qualunque cosa fosse, incluso il suo   argomenti, qualunque essi fossero. Questo   il comando è collegato al tasto C-x z.   Per ripetere il comando precedente una volta,   digitare C-x z. Per ripeterlo una seconda volta   subito dopo, digita solo z. Di   digitando z ancora e ancora, è possibile   ripetere il comando più volte.

Per visualizzare ulteriori informazioni sul comando repeat, digita C-h F repeat RET da Emacs.

Ripeti l'ultimo comando

C-x z

Dopo averlo premuto, basta solo premere z dopo ciò e si ripeterà (senza dover premere nuovamente C-x ).

Puoi ripetere i comandi con C-x z e premere z per continuare a ripetere.

Un po 'scioccante nessuno ha menzionato repeat-complex-command , disponibile dall'associazione dei tasti Cx ESC ESC .

Inoltre, M-x view-lossage mostra le ultime cento (?) sequenze di tasti inserite. Quindi, sarai in grado di vedere dove si trova il comando. È quello che ho usato fino a quando non ho scoperto subito M-x command-history che penso che userò con C-h w ora.

Non ne sono davvero sicuro, ma forse stai cercando questo?

  

Il comando C-x z ( repeat ) fornisce un altro modo per ripetere un   Emacs comanda molte volte. Questo comando ripete i precedenti Emacs   comando, qualunque cosa fosse. La ripetizione di un comando utilizza gli stessi argomenti   che erano stati usati in precedenza; non legge nuovi argomenti ogni volta.

Manuale di Emacs, 8.11 Ripetizione di un comando

Potrebbe essere anche questo utile ... Da emacs Help letteralmente:

C-x M-ESC runs the command repeat-complex-command
  which is an interactive compiled Lisp function in `simple.el'.
It is bound to <again>, <redo>, C-x M-:, C-x M-ESC.
(repeat-complex-command ARG)

Edit and re-evaluate last complex command, or ARGth from last.
A complex command is one which used the minibuffer.
The command is placed in the minibuffer as a Lisp form for editing.
The result is executed, repeating the command as changed.
If the command has been changed or is not the most recent previous command
it is added to the front of the command history.
You can use the minibuffer history commands M-n and M-p
to get different commands to edit and resubmit.

Personalmente ho trovato utile l'idea di Sebastian. Ecco una versione funzionante

(global-set-key "\C-r" #'(lambda () (interactive)
                                 (eval (car command-history))))

Questo è vecchio, ma Google pop-up lo pubblica prima quando stavo cercando di recuperare l'ultimo comando che ho digitato al prompt di Emacs. Nessuna di queste risposte ha funzionato per me, così ho deciso di mettere i miei due centesimi per coloro che potrebbero inciampare su questo in seguito, come ho fatto io. Sto usando Portacle, ma ho trovato quello che cercavo in qui quindi spero che sia abbastanza generico per funzionare con diverse configurazioni. Comunque, ciò che ha funzionato per me è usare C - & # 8593; e C - & # 8595; per scorrere la storia. Anche l'uso di M-p e M-n ha funzionato, ma preferisco usare le frecce dato che uso abbastanza Bash.

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