2012-11-04 2 views
0

kill-ring과 레지스터의 일부 기능을 사용하여 함수를 만들고 싶습니다.Emacs에서 레지스터와 같은 함수를 생성하는 방법

는 기본적으로 나는 페이지 다음 r은 목록 ( w r은 그 목록에있는 시점에서 단어를 넣어한다)에 지점에서 단락을 넣어해야하는 새로운 모드를 만들려고합니다.

그런 다음 i은 해당 목록의 내용을 모두 삽입해야합니다.

이 내가 레지스터를 위해 현재 가지고있는 것입니다 :

(defun Navi-register-region() 
(interactive) 
(copy-to-register ?N (region-beginning) (region-end)) 
) 

나는이 목록의 역사에 관심이 아니에요, 난 그냥 계속 현재 선택된 문자열 변수에 문자열을 대체합니다.

편집 : 그래서이

(defun Navi-word-reg() 
    (interactive) 
    (save-excursion 
      (right-word) 
      (push-mark (point) t t) 
      (left-word) 
      (kill-ring-save (region-beginning) (region-end)) 
      (defvar bla (car kill-ring-yank-pointer)) 
      ; and here I would use something to remove last item from kill-ring 
      )) 

내가 그것을 시도 할 때 오류 "잘못된 형식 인수 번호 또는 마커"비록 내가 지금 무엇을 가지고 ( interactive "r") 변수에는 다음이 포함

#("bla bla bla" 0 20 (fontified t)) 

아래 기능을 사용할 때.

(defun Navi-region-reg (beg end) 
     (interactive "r") 
     (save-excursion (kill-ring-save (region-beginning) (region-end)) 
       (defvar bla (car kill-ring)))) 

"bla bla bla"를 (를) 추출하는 방법은 무엇입니까? 아직도 ... 다른 문제는 변수 "bla"에 해당 단어를 추가 할 수 있기를 원합니다. 그게 바로 (interactive "r")로는 불가능합니다.

+0

를 삽입 질문 ... 내게 질문을 향상시킬 수있게. – PascalVKooten

+0

나는 당신에게 -1을주지 않았다. 그러나 개선에 관하여 : 두 번 질문을 읽은 후에, 나는 아직도 당신이 무엇을 아카이브하려고하는지 완전히 알지 못한다. 당신은 목록에 의해 의미합니까? 아마 당신의 기능이 어떻게 행동해야하는지에 대한 예를 들어주세요. – Thilo

답변

0

그것은 나에게 오랜 시간이 걸렸습니다하지만 여기 자신 추가 "/ 등록 죽일 링"(이다

(defun Navi-region-reg() 
    (interactive) 
    (save-excursion (left-word 1) 
      (mark-word) 
      (kill-ring-save (region-beginning) (region-end)) 
      (setq Navireg (substring-no-properties (car kill-ring))) 
      (setq kill-ring (cdr kill-ring)))) 

그리고 어쩌면 왜 -1 댓글을 추가

(defun Navi-insert() 
(interactive) 
(insert Navireg) 
) 
관련 문제