2013-07-16 3 views
0

인수 사용자 정의 이맥스 함수를 호출 $ 1 인수 (내 file.tex의 대상 행 번호)를 사용하면됩니다.내가 내 .bash_rc에서이 기능을 가지고

내가이 명령했다 그래서 이맥스에서 직접 실행하고 싶습니다 : 나는 함수에 인수 $ 1 전달할 수있는 방법

(defun ForwardXdviSearch()
(interactive)
(shell-command (format "bash -ic %s" (shell-quote-argument "latex -src J[HCI]*.tex; for i in J[HCI]*.dvi; do xdvi -sourceposition \"$1 ${i/.dvi/.tex}\" $i; done ;")))
)

을 때 "Mx Function"으로 불러내시겠습니까?

+0

하는 – phils

답변

2

인수를 읽으려면 특수 양식 interactive을 사용해야합니다. 이 테스트되지 않은 코드와 같은 뭔가 :

(defun forward-xdvi-search (line-number) 
    (interactive "nForward to line: ") 
    (shell-command 
    (format "bash -ic %s" 
      (shell-quote-argument 
      (format "latex -src J[HCI]\*.tex; for i in J[HCI]\*.dvi; do xdvi -sourceposition \"%d ${i/.dvi/.tex}\" $i; done ;" 
        line-number))))) 

@phils에 의해 제안 된 개선과 편집

+1

interactive''interactive' 읽기 번호에 대한 코드가 f를 사용할 수 있도록 "','채널을 읽을 수 있는지 확인 nForward to line : " – phils

+0

나를 위해 작동하지 않습니다. 나는 잘못된 인수의 수를 얻는다 : (lambda (line) (interactive) (쉘 명령 (bash -ic % s 형식 (쉘 - 인용 인수 "latex -src J [HCI * * tex; $ 1 $ {i/.dvi/.tex} \ "$ i; done;"))))))), 0' –

+0

@phils 오른쪽! 나는'C-h f interactive'를 직접 읽었어야했다 :-) 당신의 제안으로 코드를 업데이트했다. – juanleon

관련 문제