development

Emacs에 (반복 명령)이 있습니까?

big-blog 2020. 6. 24. 07:06
반응형

Emacs에 (반복 명령)이 있습니까?


자주, 나는 제안과 문서를 파헤쳐 서 다음과 같은 것을 찾고 있습니다.

(반복 명령)

방금 실행 한 마지막 C 또는 M 명령을 수행하십시오 (fn 키로 리바운드)

또는 때로는 관련 :

(마지막 기능 설명)

내가 실수로 어떤 키 입력을했는지, 그 결과가 내 트릭에 추가하고 싶습니다. describe-key는 가까이 있지만 입력 한 내용을 알아야합니다.

나는 믿을 수있는 조수에게 너무 많은 것을 요구하고 있는가?


' describe-last-function ' 과 관련하여 :

last-command마지막으로 한 일을 나타내는 기호로 설정된 변수 가 있습니다. 따라서이 생략 스 니펫은- (describe-function last-command)즉시 일어난 일에 대한 문서를 가져와야합니다.

그래서 당신은 describe-last-function그렇게 사소한 일을 할 수 있습니다

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

그 elisp를 .emacs넣거나 동등하게 넣으면 Mx describe-last-function이 있습니다.

관심이있는 이후 몇 개의 키를 누르거나 마지막 명령을 수정 한 작업을 수행 한 경우 해당 command-history기능이 유용 할 수 있습니다. Mx command-history로 얻을 수 있습니다.


repeat.el표준 Emacs 배포판에 포함 된 Emacs Lisp 패키지 가 반복 기능을 제공합니다 . 에서 repeat.el의 설명서 :

이 패키지는 인수를 포함하여 모든 명령이 무엇이든 이전 명령을 반복하는 명령을 정의합니다. 이 명령은 키 Cx z에 연결됩니다. 이전 명령을 한 번 반복하려면 Cx z를 입력하십시오. 바로 다음에 두 번째 반복하려면 z 만 입력하십시오. z를 반복해서 입력하면 명령을 반복해서 반복 할 수 있습니다.

반복 명령에 대한 추가 정보를 보려면 C-h F repeat RETEmacs에서 입력하십시오 .


마지막 명령 반복

C-xz

일단 누른 z후에는 그 후에 누르십시오 ( C-x다시 누를 필요없이 ).


으로 명령을 반복 하고 계속 반복하여 C-x z누르십시오 z.

repeat-complex-command키 바인딩에서 구할 수 있는 약간의 충격적인 사람 C-x ESC ESC.


또한 M-x view-lossage마지막으로 입력 한 백 키 (?)를 표시합니다. 따라서 명령이 어디에 있는지 볼 수 있습니다. 내가 지금 내가 사용할 것으로 M-x command-history생각 되는 것을 알기 전까지는 내가 사용한 것입니다 C-h w.


나는 확실하지 않지만 아마도 이것을 찾고 있습니까?

명령 C-xz( repeat)은 Emacs 명령을 여러 번 반복하는 다른 방법을 제공합니다. 이 명령은 이전 Emacs 명령을 반복합니다. 명령을 반복하면 이전에 사용한 것과 동일한 인수가 사용됩니다. 매번 새로운 인수를 읽지 않습니다.

이맥스 매뉴얼, 8.11 명령 반복


이것도 도움이 될 것입니다 ... From emacs Help verbatim :

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.

개인적으로 나는 Sebastian의 아이디어가 유용하다는 것을 알았습니다. 작동하는 버전은 다음과 같습니다.

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

이것은 오래되었지만 Google 팝업은 Emacs 프롬프트에서 입력 한 마지막 명령을 검색하려고 할 때 이것을 먼저 게시합니다. 이 답변들 중 어느 것도 나를 위해 일하지 않았으므로 나중에 내가 그랬던 것처럼 넘어 질 수있는 사람들을 위해 2 센트를 넣기로 결정했습니다. Portacle을 사용하고 있지만 여기서 찾고있는 것을 찾았 으므로 다른 설정으로 작업하기에 충분히 일반적이기를 바랍니다. 어쨌든, 나를 위해 일한 것은 역사를 사용 C-↑하고 C-↓순환하는 것입니다. 사용 M-p하고 M-n잘 작동했지만 Bash를 사용하기 때문에 화살표를 사용하는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/275842/is-there-a-repeat-last-command-in-emacs

반응형