Vim输入不是来自终端

20
which django-admin.py | vim
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: Finished.

最简单的方法是什么? 并且实际上使vim打开“/usr/local/bin/django-admin.py

基本上,我想在我的个人博客http://wayneye.com/vim上托管自动安装的定制vim,您可以通过导航到它来查看shell脚本,它只包含以下命令:

git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim \
curl -L -o ~/.vimrc https://raw.githubusercontent.com/WayneYe/WayneDevLab/master/wayne.vimrc \
vim +PluginInstall
当我运行curl http://wayneye.com/vim | sh命令时,我遇到了“终端未输入错误”,请问如何修复?

1
相关:使用xargs调用Vim后终端出现故障 在Vim SE上。 - kenorb
3
这段代码的意思是,在终端中输入which django-admin.py | xargs -o vim,它将在Vim编辑器中打开django-admin.py的路径。 - Mark Simon
3个回答

23
为了从标准输入读取内容,你需要在命令行中使用-参数来明确告诉VIM这一点。所以在你的情况下,应该这样做:
which django-admin.py | vim -

简单的问题是,当你使用文件名和 which 命令时,你期望它显示路径,还是 django-admin.py 是一个存在于路径中的可执行文件?如果是后者,那么没问题。


这个可以运行,先生还有一个问题,我想在我的个人博客http://wayneye.com/vim上托管自动安装的定制vim,您可以在那里看到shell脚本,当我执行curl http://wayneye.com/vim | sh时,我得到了“输入不来自终端错误”,请问我该如何解决? - Wayne Ye
我不是很确定这个问题。让我调查一下,然后再回复你 :) 在此期间,如果它对你有帮助,请考虑接受它作为答案。 - Shrayas
我实际上修改了我的问题,因为运行vim安装sh确实是我想要的。 - Wayne Ye
2
这将标准输入作为文本文件打开,例如 echo 1 | vim - 将打开一个名为“-stdin-”且内容为“1”的文本文件。 - localhostdotdev

9
您可以尝试以下方法:
% vim "$(which django-admin.py)"

只要which命令能够找到django-admin.py并且没有别名,那么它应该能够正常工作。

4

一个非常简单的方法是:

vim `which django-admin.py`

我其实知道这个,但是我无法解决“curl wayneye.com/vim | sh”的问题。 - Wayne Ye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接