如何在ZSH中将xonsh与edit-command-line一起使用?

时间:2019-08-20 22:35:45

标签: zsh zsh-zle xonsh

我想使用edit-command-line在ZSH中打开一个编辑器缓冲区,并使缓冲区的内容由xonsh执行。 可以干净地做到这一点吗?

ZSH lets you edit a command line using your editor中的edit-command-line命令,然后可以由ZSH解释器执行。 对于复杂的多行命令尤其有用。

xonsh是使用Python作为脚本语言的Python驱动程序外壳。 编写复杂命令时,我更喜欢Python而不是ZSH语言。

额外的信用:告诉编辑者使用Python语法突出显示而不是ZSH会很好。

谢谢!

注意:我可以通过以下方式调用xonsh,但这很丑陋,语法高亮显示是错误的:

echo "
<python code>
" | xonsh

1 个答案:

答案 0 :(得分:0)

在vim中,您可以使用ex命令:w !xonsh,该命令会将文件传递到xonsh的stdin。

或者您可以制作一个小脚本,该脚本使用mktemp生成一个临时文本文件,在退出文本编辑器后对其进行写入,然后使用xonsh / python执行该脚本。与Bash的Ctrl + x,Ctrl + e相同的策略。