运行命令并继续在 Bash 中编辑它

运行命令并继续在 Bash 中编辑它

return运行命令并清除命令行。可以跳过清晰的部分吗?因此,命令被执行,但命令行和光标位置被保留,以便您可以继续编辑它。

另一种方法是从历史记录中调用命令,但需要更多击键并且会丢失光标位置

答案1

你可以使用内置的bind获取当前行缓冲区并在给定的快捷方式上对其进行评估,例如绑定到ctrl + j

bind -x '"\C-j": eval "$READLINE_LINE"'

只是进行了表面测试,使用它需要您自担风险;)

读行函数operate-and-get-next接近你想要的,但不完全是这样。

答案2

好吧,假设您正在使用 Bash,我不知道这样的命令行功能。但另一方面,您可以将命令行包装到脚本中,并保留带有编辑器的第二个 shell 来编辑脚本,同时使用第一个 shell 运行脚本。这样您就不会松开光标并随意操纵命令进行调试。

您甚至可以 tmux 或 screen 将当前 shell 一分为二,一部分运行编辑器,另一部分运行编辑器,所有内容都在同一个窗口上。

答案3

默认情况下,Zsh 中可以通过ESC-a( ⌥-a) 键绑定使用此功能 – 请参阅accept-and-hold命令

相关内容