写入临时缓冲区的 Bash 命令

Dre*_*rew 5 bash

我记得不久前遇到过这个命令,尽管我不记得命令本身。我记得,你运行了这个命令,它会创建一个临时缓冲区,然后由默认编辑器 (vim) 编辑,并在关闭缓冲区时,将执行该命令。

例如:

$ <buffer edit command>
~ # Write bash temp script
~ for i in *; do
~     echo $i
~ done
$ file1
$ file2
$ file3
$ ...
Run Code Online (Sandbox Code Playgroud)

有谁知道这个命令是什么?这就像只在 vim 中编写 bash 脚本而不保存文件并直接运行它。

And*_*ton 12

您想将一些组合键绑定到edit-and-execute-command. 我用:

bind '"\C-e": edit-and-execute-command'
Run Code Online (Sandbox Code Playgroud)

在我的~/.bashrc. 当我按下 Ctrl-e 时,它​​会调用$EDITOR并让我编辑命令。当我保存并退出时,它会执行编辑后的命令。

  • 就是这样,这不是命令而是快捷方式,谢谢。 (2认同)
  • @Drew 仅供参考,默认组合键是 Cx Ce(即按住 Ctrl,然后先按 x,然后按 e)。 (2认同)

Joh*_*ers 6

如果您运行set -o vi(或在您的 中运行~/.bashrc),则v在正常模式下按(即,按Esc然后v)将按照您的描述调出一个缓冲区。