vim - zsh 函数退出后搞砸了提示

标签 vim find zsh prompt

我使用 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 下运行命令时,其标准输入将连接到 /dev/nullvi 可能没有预料到这一点。文本编辑器通常应该在没有 I/O 重定向的情况下运行。尝试一下,看看它在您的终端上是否有相同的效果。我打赌确实如此:

vi somefile </dev/null

您需要使用 xargs 以外的其他方法来解决此问题。也许像这样:

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

关于vim - zsh 函数退出后搞砸了提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817256/

相关文章:

linux - 发现在脚本中不起作用,在终端提示符下工作

find - phpstorm 8 在没有项目的文件和文件夹中查找

find - 获取目录中最近 30 天内修改的所有文件

shell - 在 Zsh 中缩短我的提示

vim 在 tmux 上通过 ssh 滚动缓慢

VIM:更精确的 C/C++ 代码解析解决方案?

ruby-on-rails - 为什么,rails 服务器没有在 zsh 终端中运行?

python - zsh:/usr/local/bin/pipenv:错误的解释器:/usr/local/opt/python/bin/python3.7:没有这样的文件或目录

vim - Vim-在PHP文件上激活HTML代码段

javascript - 如何让 vim-snipmate 的 console.log 使用双引号而不是单引号