zsh函数在退出后将提示搞砸



我使用oh my zsh进行自定义,提示看起来像这个

┌─[naveen@bblpt005] - [~] - [Wed Jan 11, 03:16]
└─[$] <> 

我在我的.zshrc中定义了一个函数来查找文件并在Vim中打开它们。

vf() {
     find . -name "$*" | xargs vi;
}

该功能按预期工作,但当我退出Vim时,提示被搞砸了,显示为

┌─[naveen@bblpt005] - [~] - [Wed Jan 11, 03:20]
                                           └─[$] <> 

Ctrl-D和其他Ctrl键组合也停止工作。我必须使用reset命令修复它。

如何修改函数以避免这种情况发生?

xargs下运行命令时,其stdin连接到/dev/nullvi可能没有预料到这一点。文本编辑器通常应在没有I/O重定向的情况下运行。试试这个,看看它是否对你的终端有同样的效果。我敢打赌:

vi somefile </dev/null

您将希望通过使用除xargs之外的其他方法来解决此问题。可能是这样的:

vi $(find . -name "$*")

最新更新