2011-12-14 2 views
3

이멕스에서 여러 파일에 걸쳐 query-replace-regexp을 실행하고 싶고 수행 방법을 설명하는 this post을 찾았습니다. 지시에 따라 시도했을 때 파일 와일드 카드를 입력 한 후 오류가 발생했습니다.find-name-dired의 기본 - 대체 옵션을 어떻게 비활성화합니까?

find . \(-iname \*.vb \) -exec ls -ld \{\} \; 
Unknown option "-iname" 

불행하게도, 내가 사용하고있어 find Windows에서 MKS 툴킷에서, 그리고 그것은 -iname 옵션을 지원하지 않습니다. 내 이맥스 lisp 파일에서 "iname"을 "name"으로 바꾸고, 이맥스를 바이트 컴파일하고 다시 시작했다. 이것은 문제를 해결하지 못했고 이전과 똑같은 오류가 발생했습니다. 조금 더 파고 나면 find 명령을 사용자 정의 할 수있는 또 다른 명령 인 find-dired을 발견했습니다. 그래서 이미 검색을 수행하고이 해결 방법으로 바꿉니다.

제 질문은 : -iname 오류가 발생합니다. 왜 내 소스 파일을 편집하고, 다시 바이트 컴파일하고, 이맥스를 다시 시작한 후에도 오류가 발생합니까? 미래의 검색 및 교체를 위해 더 많은 영구 솔루션을 찾고 싶습니다. 여러 파일에서 (그리고 호기심을 만족시키기 위해).

+3

이맥스의 자체 elisp 파일을 편집하는 것은 일반적으로 나쁜 생각이며, 이맥스 버전의 설치만큼 영구적입니다. 초기화 파일 (또는 사이트 리스프 (site-lisp), 모든 사람들에게 적용되기를 원한다면)을 통해 이것을 고치고 싶을 것이다. – phils

+2

+1 @phils. Elisp에는 소스를 변경하지 않고 Emacs를 사용자 정의 할 수 있도록 설계된 'eval-after-load'기능이 많이 있습니다. 출처를 직접 변경하면 혼란 스러움이 생길 수 있습니다. Emacs 버그를보고해야한다고 상상해보십시오. –

답변

2

변수를 find-name-arg으로 변경하십시오. M-x customize-group find-dired을 실행하거나 (setq find-name-arg "-name").emacs에 넣으십시오.

내 버전의 emacs에서 초기 값은 find-dired.el에서 비롯됩니다. 해당 파일을 변경하고 다시 컴파일 했습니까?

+0

Brilliant! 잘 됐네, 고마워. 그리고 네,'find-dired.el'과'-name'을'-iname'으로 사용하는 몇 가지 다른 것들을 변경했습니다. –