내가 설정해놨어
$ 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
수도 있습니다 .sdiff
EDITOR=emacs
Emacs를 열 때 해당 옵션이 필요한 경우 래퍼 스크립트를 만드는 것이 좋습니다.
$ cat emacs.sh
#!/bin/sh
vi "$@"
물론, 농담이에요. 다음을 사용합니다:
$ cat emacs.sh
#!/bin/sh
emacs -nw "$@"
...그런 다음 설정EDITOR=/path/to/that/emacs.sh