편집: 위성 프로그램 "emacs -nw"를 찾을 수 없습니다.

편집: 위성 프로그램 "emacs -nw"를 찾을 수 없습니다.

내가 설정해놨어

$ echo $EDITOR
emacs -nw

왜 여기서 찾을 수 없는지, 이 문제를 어떻게 해결할 수 있는지 알고 싶습니다. 감사해요.

$ sdiff -o sdiff.out f1 f2
1 2 3                                 | 2 3 4
%e1
sdiff: subsidiary program 'emacs -nw' not found

$EDITOR옵션 중 하나에 문제가 있는 이유 와 sdiff소스 코드의 어디에 필요한지 모르겠습니다 . 내 생각엔 바로 여기인 것 같아http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n459

prog = getenv ("EDITOR");
if (prog)
  editor_program = prog;

그리고 여기http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1035

execvp (editor_program, (char **) argv);

또는http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1018그리고http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1024. 이 프로그램이 무엇을 하는지 잘 모르겠습니다.

비교를 위해 다음은 잘 작동합니다.

$ eval "$EDITOR"

답변1

분명히 sdiff이라는 프로그램을 실행하려고 시도했지만 emacs -nw해당 프로그램이 존재하지 않았습니다. 당신의 의도는 sdiff파일 뒤에 옵션을 사용하여 전화를 거는 것입니다.emacs-nw

이 동작은 보기를 통해 확인됩니다.sdiff 소스 코드, 이는 sdiff기본 편집기를 argv[0]에 직접 채우며, 이를 설정하고 emacs가 열리는지 관찰하여 작동하는지 <space><dash>nw확인할 emacs수도 있습니다 .sdiffEDITOR=emacs

Emacs를 열 때 해당 옵션이 필요한 경우 래퍼 스크립트를 만드는 것이 좋습니다.

$ cat emacs.sh
#!/bin/sh

vi "$@"

물론, 농담이에요. 다음을 사용합니다:

$ cat emacs.sh
#!/bin/sh

emacs -nw "$@"

...그런 다음 설정EDITOR=/path/to/that/emacs.sh

관련 정보