2012-10-24 2 views
1

emacscygwin에 사용하면 하나의 쉘 명령은 dired 버퍼에서 매우 자주 사용합니다. !dired-do-shell-command에 바인딩 된 경우 cygstart, 예 : Word 문서 또는 Visual Studio 프로젝트 또는 기타를 열 수 있습니다.dired-do-shell-command가 '.'에서 작동하지 않는 이유는 무엇입니까? 또는 '..'?

그러나 .의 현재 디렉토리 항목에 !을 입력하면 오류 Cannot operate on이 발생합니다. ' 또는 ..'.

나는 그것을 무시하고 명령을 현재 및 상위 디렉토리에서 실행할 수 있기 전에 알아두기를 원했다. 이 제한 사항에는 어떤 이유가 있습니까?

답변

0

없이 호출된다. 이맥스의 현재 안정 버전 (24.3), 당신이 .dired-do-shell-command

+0

내 cygwin Emacs 24.3.1에서 설명하는대로 작동하여 주셔서 감사합니다. –

1

dired-do-shell-commanddired-get-filename으로 전화하십시오. 당신이 dired-얻을 - 파일 이름의 문서에 대해 살펴 경우

이 줄에 언급 된 파일의 이름을 반환, Dired에서

(dired-get-filename &optional LOCALP NO-ERROR-IF-NOT-FILEP) 

을 볼 수 있습니다.

...

선택적 인수는 NO-ERROR-IF-NOT-알기 위해 Filep 일반 파일 이름으로 '.. .' and 취급이 줄 경우 어떤 파일 이름 nil을 반환 의미한다. 그렇지 않으면 이러한 경우 오류가 발생합니다.

dired-get-filenameNO-ERROR-IF-NOT-FILEP 인수 문제는 질문을 받았다 때문에 제한이 해제되었습니다

+0

..을 사용할 수 있습니다 그리고 내 질문에

는 ... 왜'입니다 dired-얻을-filename'은'NO-ERROR없이 호출 -IF-NOT-FILEP' 인수? –

+0

dired-get-marked-files에서 호출 되었기 때문에. 이 함수는 흔히 의미가없는/etc로 표시된 파일을 복사/삭제하는 데 사용됩니다. 그리고 .. 파일들 –

+0

당신이 맞을지 모르지만 나는 그 논리에 동의 할 수 없습니다. 왜 때때로 dired-do-shell-command를 처벌 할 것인가? –

관련 문제