2012-08-27 2 views
0

내가 이맥스와 HTML 파일의 무리를 프로세스에게 문자 메시지를 보내려, 그래서 수행--find-file 파일에 -script 명령을 만들 수있는 방법이 있습니까?

find . -type f -name "*.html" | while read myFile; do 
    emacs emacs --no-site-file --no-init-file --batch \ 
    -script myScript.el --find-file "$myFile" 
done 

문제는 "$의 myFile"에 myScript.el 행동을하는 것입니다 - 그리고 수정 된 "$으로 myfile"에 저장합니다.

(add-to-list 'command-line-functions '(lambda() (and (message "ARG:'%s'" argi) t))) 

.emacs에를 -하지만 나는 .emacs를로드 할 것이다 - 그리고 난 그냥로드 필요가 없습니다

아마도 하나의 옵션은 명령 줄을 추가하는 것입니다.

아마 현명한 줄을 myScript.el에 두는 것이 좋습니다.

편집 : 난 그냥 생각

- 아직 한 번 더 옵션이 myScript.el에서 파일을 찾을 것 - 즉 find-dired 함께.

편집 2 : 나는 파일을 얻을 수 없기 내가 find-dired 접근 방식으로 문제가있어

는 표시 :

(progn 
    (find-dired default-directory "-type f -name \"*.html\"") 
    (dired-toggle-marks) 
) 

이 작동하지 않습니다.

+0

(lambda ...) sexp가 임의의 임의 목록 데이터가 아닌 함수이기 때문에 인용하지 않으려합니다. – Stefan

+0

@Stefan : 네가 맞아. 나는 왜 그것이'(add-to-list '명령 줄 함수 (lambda() (와 (message "ARG :'% s '"argi) t))')와'add -hook'와'global-set-key'는 lambda를 인용 할 수 있습니다. – Adobe

+0

나는 그것이 작동하지 않을 것이라고 말하지 않았다. 그것은 단지 나쁜 습관 일 뿐이며 인용 된 람다는 인용되지 않은 것처럼 행동하지 않습니다. – Stefan

답변

0

나는 bash 루프의 도움으로 그럭저럭 할 수 있었다. 나는 myScript.el에

(setq myFile "/home/boris/pst/wordy/edu/PreWW/_build/html/test.html") 

을 추가하고, 루프 실행 한 : 스크립트를 변경 한 후 실행

find ./_build/html -type f -name '*.html' | while read myFile; do 
    MyFile=`readlink -f "$myFile"` 
    perl -ne "s!setq myFile .+!setq myFile \"$MyFile\")!" myScript.el 
    emacs --no-site-file --no-init-file --batch -script myScript.el 
done 

합니다.

+0

@wvxvw : 나는 이맥스를 사용하고 싶다면 이맥스에서 모든 것을 스크립트하는 것이 낫다는 것에 동의한다. 나는 emacs의 찾기 어려운 것을 사용하기를 원했지만 - 질문 2 번 편집에서 보았 듯이 나는 멀지 않았다. – Adobe

관련 문제