Bash
在 $EDITOR 中打開命令的 bash 功能在哪裡記錄?
我最近發現,如果我們按
Ctrl
++ ,bash 在編輯器中打開目前命令(設置在or中X
Ctrl
)並在編輯器關閉時執行它。但它似乎沒有記錄在頁面中。E``$VISUAL``$EDITOR``man
我現在發現了。在問這個問題之前,我應該更仔細地閱讀它。
該
man
頁面說:edit-and-execute-command (C-xC-e) Invoke an editor on the current command line, and execute the result as shell commands. Bash attempts to invoke $VISUAL, $EDITOR, and emacs as the editor, in that order.
正如在接受的答案下的評論中所討論的那樣,擁有無需立即執行的編輯器功能非常方便/安全。
添加此項以
.bashrc
使綁定禁用執行。Ctrl
xe
_edit_wo_executing() { local editor="${EDITOR:-nano}" tmpf="$(mktemp).sh" printf '%s\n' "$READLINE_LINE" > "$tmpf" $editor "$tmpf" READLINE_LINE="$(<"$tmpf")" READLINE_POINT="${#READLINE_LINE}" rm "$tmpf" } bind -x '"\C-x\C-e":_edit_wo_executing'