2011-11-22 1 views
2

나는 slime 모드를 사용하여 repl에 있다고 가정 할 수 있습니다. 내가 (예를 들어, f4) 기능 키를 만들 수있는 방법repl를 죽이고 emacs의 버퍼에서 홱 잡아 내리기 위해 키를 바인딩하는 방법

,이 작업을 수행합니다 :

  1. 가 (당신이 C-up 또는 C-down으로 얻는 것)을 마지막으로 역사 항목을 죽일;
  2. 상위 버퍼로 이동.
  3. 홱, 파일에 버퍼 저장;
  4. 다시 repl로 이동하십시오.

나는 Emacs와 Lisp의 완전한 초보자이기 때문에 단계별 가이드로 단계별로 작성하십시오.

+1

매크로가 필요합니다. 매크로 시작 키 매크로와 B. 키 바인딩 – aartist

답변

9

가장 쉬운 방법은 emacs macros을 사용하는 것입니다.

왜? 정확히 무엇을하고 싶으니까? 매크로는 입력 한 키 시퀀스를 저장합니다. emacs에서 한 번만 수행하고 누른 키의 순서를 저장할 수 있습니다.

그래서, F3 또는 C-x (를 사용하여 매크로 (당신이 REPL 버퍼에있는) 기록을 시작, 다음 M-p C-a C-k C-u - C-x o C-y C-x o 같은 것을 만들 다음 F4 또는 C-x)을 입력 (난 그냥 키 시퀀스에 대한 요청을 번역). 매크로를 실행하려면 F4을 다시 누르거나 C-x e을 누릅니다.

C-g으로 엉망으로 만든 경우 매크로 기록을 중단 할 수 있습니다. 당신이 엉망으로 만들었고 오류 메시지가 보내지거나, 매크로 기록 (때로는 실망 스럽거나) (또는 이것은 단지 F4을 붙잡기 만하면 잘 작동하는 매크로를 만들 수 있기 때문에) 평가가 중단되면 반대가 적용됩니다.

나중에이 매크로를 사용하려면 M-x name-last-kbd-macro으로 이름을 지정할 수 있습니다. 이렇게하면 M-x <your macro name> (<your macro name> - 매크로 이름)을 입력하여 명령으로 사용할 수 있습니다. 이렇게하면 향후 세션을 위해 저장되지 않습니다. 이름을 지정하면됩니다.

명명 된 매크로를 저장하려면 .emacs 파일에있을 때 M-x insert-kbd-macro을 사용하십시오. 이렇게하면 현재 위치에 elisp 코드가 삽입되어 명령 이름에 바인드 된 매크로가 실행됩니다 (이맥을 시작할 때마다 실행됩니다).

키에 바인딩하려면 M-x에서 매시간을 시작하여 .emacs 파일에 삽입하십시오 : (global-set-key [f12] '<your-macro-name>). 키를 therethere으로 설정하는 방법에 대한 자세한 내용을 볼 수 있습니다.

매크로에 대한 나쁜 점은 한 번에 전체 매크로가 아니라 모든 단계를 실행 취소한다는 것입니다. 그러나 누군가가 매크로를 가지고 있다면 해결할 수 있습니다. 조건이나 반복을 사용하여 좀 더 진지한 것을 만들고 싶다면 경로를 elisp로 전달해야합니다. 그냥 C-h k 주위. C-h f, C-h a, C-h b과 같은 도움말 키도 사용하게됩니다.

+0

또 다른 단점은 저장된 매크로를 편집하는 것이 문서화되고 주석 처리 된 Lisp 편집보다 덜 매력적이라고 ​​가정하는 것입니다.그러나 거기에 도착하기 전까지는 매크로가 확실한 답이며, 저장된 매크로를 연구하면 Lisp 세계에 대해 배울 것입니다. – tripleee

+0

@treepleee 글쎄, 매크로 시스템은 나를 위해 힘을 편집하는 이맥스 (emacs)의 큰 부분이며, 그것을 마스터해야한다. 이름 지정 및 저장이 아닌 매일의 일일 빠른 편집 작업에 사용됩니다. 5 ~ 6 줄의 코드를 가지고있을 때 매크로처럼 좋은 일을 할 수있는 어떤 것도 모른다. 같은 방식으로 편집해야한다. (예를 들어, C++에서''const &''를 추가한다.) 한 줄로 만들고 다른 사람들에게 적용하십시오. 그리고 하나의 매크로를 명명하고 다른 매크로의 일부로 사용하면 정말 어려운 편집을 할 수 있습니다. 그러나 그렇습니다. 저는 매크로 시스템을 빠른 편집을위한 시스템으로 간주합니다. 오히려 손으로 무언가를 쓰는 언어입니다. – desudesudesu