在 $EDITOR 中打开命令的 bash 功能记录在哪里?

在 $EDITOR 中打开命令的 bash 功能记录在哪里?

我最近发现,如果我们按Ctrl+ X Ctrl+ E,bash 会在编辑器中打开当前命令(在$VISUAL或中设置$EDITOR)并在编辑器关闭时执行它。

但页面中似乎没有记录man。是否有记录?如果有,在哪里?

答案1

我现在已经发现了。在问这个问题之前我应该​​更仔细地阅读它。

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.

答案2

正如已接受答案下的评论中所讨论的,拥有编辑器功能非常方便/安全不立即执行

添加此.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'

学分:https://superuser.com/a/1601690/266871

相关内容