为什么“找到文件名| xargs vim“引起奇怪的终端行为?

前端之家收集整理的这篇文章主要介绍了为什么“找到文件名| xargs vim“引起奇怪的终端行为?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我做“找到50local.policy | xargs vim”时,我得到错误“Vim:Warnung:Die Eingabe kommt nicht von einem Terminal”(翻译:Vim:警告:输入不是来自终端)。

我可以使用vim成功编辑,但是当我关闭它后,我的终端表现得很奇怪(我不能输入字母,当我进入shell提示符时,只需重复一遍。
当我用“xargs gedit”做它不会造成这些问题。

我使用Ubuntu 11.10与Gnome 3和Gnome终端3.0.1。

Vim希望连接到一个真实的终端并发送适合的代码

重置终端

reset

最简单的解决方法

locate 50local.policy | xargs gvim

Rationale gui vim doesn’t require a terminal

除此以外:

vim $(locate 50local.policy)

Rationale vim is started directly connected to the terminal (instead of as a child process under xargs which in turn runs in a subshell with stdin/stdout connected to pipes instead of a terminal). It is like saying

06003

另外

你可以通过不用vim启动vim来避开这个问题,但是从vim中添加参数!事实上,运行shell比运行vim时更好。

在vim中:

:args `locate 50local.policy`
:rewind

这将参数列表设置为从命令之间的shell命令返回的文件; :回滚然后转到该列表中的第一个文件
如果您正在编辑多个匹配项,请尝试:

:w|next

这个命令序列(由|分隔)将当前缓冲区写入文件,然后转到args列表中的下一个文件

原文链接:https://www.f2er.com/bash/387828.html

猜你在找的Bash相关文章