저는 Zsh와 Google과 같은 일부 CLI gcloud
를 $EDITOR
.
나를 위해 나는 그것을 다음과 같이 설정했습니다.
export EDITOR="/usr/local/bin/mvim"
해당 편집기의 별칭을 사용하여 -v
플래그를 사용하여 터미널에 vim을 로드합니다.
mac_vim="$EDITOR -v"
alias vi=$mac_vim
alias vim=$mac_vim
alias v=$mac_vim
이는 작동하지만 gcloud
CLI를 호출 하면 $EDITOR
해당 플래그가 없으므로 -v
새 터미널에서 열립니다. -v
여기에 플래그를 추가하면 이를 변경할 수 있을 것 같습니다 .
export EDITOR="/usr/local/bin/mvim -v"
그러나 명령줄에서 실행하려고 하면 다음과 같은 결과가 나타납니다.
$EDITOR text.html
zsh: no such file or directory: /usr/local/bin/mvim -v
광산을 내보낼 때 플래그를 포함할 수 있나요 $EDITOR
?
답변1
얇은 크러스트 래퍼를 사용하세요.
#!/bin/sh
exec /usr/local/bin/mvim -v "$@"
PATH
어딘가에(어딘가 또는 어쩌면 다른 곳) 숨기고 ~/libexec
해당 래퍼를 value 로 설정합니다 EDITOR
.
ZSH를 사용하면 강제로 확장할 수 있습니다.
% EDITOR='echo -E'
% $EDITOR /etc/passwd
zsh: command not found: echo -E
% $=EDITOR /etc/passwd
/etc/passwd
%
세부사항은 다음과 같습니다 zshexpn(1)
:
${=spec}
Perform word splitting using the rules for SH_WORD_SPLIT during
ZSH는 다음 문제에서 다른 셸과 충돌합니다.아니요SH_WORD_SPLIT
기본적으로 실행됩니다. 그런데 POSIX 기본값은 꽤 좋은 레이크이고 많은 사람들이 이를 잘못 사용하여 밟히고 망치게 됩니다.
% DERP="/var /nish"
% ls $DERP
ls: cannot access /var /nish: No such file or directory
% sudo bash
# DERP="/var /nish"
# rm -rf $DERP
...
그러나 쉘 토큰화를 수행하는 방법을 모르는 다양한 다른 프로그램을 호출할 수 있습니다 EDITOR
. 가장 이식 가능한 옵션은 를 EDITOR
호출하여 직접 수행할 수 있는 옵션이며 exec(3)
, 필요한 경우 스크립트는 실제로 편집기에 무엇이든 추가할 수 있습니다. 심벌 마크. 그래서 포장이 매우 얇습니다.