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
命令