이것은 의도 된 것 같습니다. 그는 당시 zsh 메일 링리스트에 다음과 같이 말했습니다 :
작성된 것처럼, 이것은 편집 된 행을 실행하지 않습니다.
- 피터 스티븐슨은 (http://www.zsh.org/mla/workers/2000/msg02123.html)
이 오류는 요즘 함수의 끝에서 send-break
를 사용하여 트리거 될 수 있습니다.
실제로
, 그것은 edit-command-line
파일이 패치처럼 확장 될 수있다 :
(이 파일은 % echo ${^fpath}/edit-command-line(N)
에 의해 발견 될 수있다)
이 패치로
diff --git a/edit-command-line b/edit-command-line
index 250cac6..592fd07 100644
--- a/edit-command-line
+++ b/edit-command-line
@@ -11,7 +11,7 @@ local tmpfile=${TMPPREFIX:-/tmp/zsh}ecl$$
print -R - "$PREBUFFER$BUFFER" >$tmpfile
exec </dev/tty
${=${VISUAL:-${EDITOR:-vi}}} $tmpfile
-print -Rz - "$(<$tmpfile)"
+BUFFER="$(<$tmpfile)"
command rm -f $tmpfile
-zle send-break # Force reload from the buffer stack
+zle accept-line
는, 현재의 명령에 편집 된 내용을 다시 넣는다 행이 실행됩니다.
감사합니다. 나는 $ tmpfile && BUFFER = "$ (<$ tmpfile)"&& zle accept-line'을 만들었습니다. – Bohr