Mac에서 파일을 emacs
편집하는 데 사용하고 싶지만 평생 동안 그렇게 할 수는 없습니다. 파일에서 다음 구성 설정을 모두 시도했지만 아무 소용이 없습니다.sudoers
visudo
sudoers
Defaults editor = "/usr/bin/emacs"
emacs
인트로 화면을 보여줍니다Defaults editor = "/usr/bin/emacs visudo"
"visudo"라는 새 파일을 생성합니다.Defaults editor = "/usr/bin/emacs sudoers"
sudoers 파일을 열지만 읽기 전용 버퍼로 사용합니다.EDITOR="/usr/bin/emacs"
셸에서 실행 (또는export
내 파일에 저장~/.bash_profile
)한 다음 다음을 실행하면visudo
소개 화면이Defaults env_keep+="EDITOR"
표시됩니다.emacs
Defaults editor = "emacs"
editor
변수는 다음으로 시작해야 한다고 말합니다 ./
Defaults editor = /usr/bin/emacs
인트로 화면을 보여줍니다Defaults editor = "/usr/bin/emacs -u matt"
인트로 화면을 보여줍니다
기본적으로 내가하는 일은 아무것도 작동하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
저는 macOS High Sierra(10.13)를 실행하고 있습니다.
답변1
문제는 다음과 같이 visudo
실행된다는 것입니다 . Emacs는 '--'를 '인수 끝'으로 해석하지 않고 그 뒤의 모든 내용을 다른 편집기처럼 파일 이름으로 해석하지 않지만 대신 소개 화면을 표시합니다. 내가 아는 가장 쉬운 방법은 래퍼입니다.emacs
/usr/bin/emacs -- /etc/sudoers.tmp
bash-3.2$ sudo cat > /usr/bin/emacs-visudo-wrapper.sh << 'EOF'
#!/bin/sh
set -eu
ARGS=()
for var in "$@"; do
[ "$var" != '--' ] && ARGS+=("$var")
done
exec /usr/bin/emacs "${ARGS[@]}"
EOF
bash-3.2$ sudo chown root:wheel /usr/bin/emacs-visudo-wrapper.sh
bash-3.2$ sudo chmod 755 /usr/bin/emacs-visudo-wrapper.sh
bash-3.2$ sudo cat >> /etc/sudoers << 'EOF'
Defaults editor = "/usr/bin/emacs-visudo-wrapper.sh"
EOF