user@laptop:~$ locate file.ext | xargs vim -p
Vim: Warning: Input is not from a terminal
2 files to edit
user@laptop:~$
在 vim 中找到文件并修改它们后,我想保存它们并继续在 unix 控制台中工作,但我无法这样做。
关闭 vim 后控制台就停止了。任何按键均无活动。唯一的解决方法是关闭控制台选项卡并创建一个新的。我该如何解决这个问题?
答案1
尝试以不同的方式运行:
vim -p `locate file.ext`
reset
或者您可以在 vim 会话后尝试运行命令,将终端选项重置为默认值:
locate file.ext | xargs vim -p; reset
答案2
这是我在通过 Cygwin 上的管道命令退出 vim 后所做的。
stty sane {enter}
当然,你不会看到输入的内容,但按下回车键后,tty 将恢复运行。这很麻烦,但有效。
我不喜欢这里的其他解决方案,因为我经常运行比文件查找更复杂的查找。我可能会这样做:
egrep -ri [pattern] * | sed -e 's:\:.*::g' | grep -v ^Binary | sort | uniq | xargs vim
在我的工作中(有 10 年历史的快速移动代码库),这种搜索非常常见,以至于我将前五个命令放在一个 shell 脚本中,然后通过管道传输到 vim。
答案3
Vim: Warning: Input is not from a terminal
管道本身并不是终端,但是您尝试过吗fg
?