加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:16:08 所属栏目:安全 来源:网络整理
导读:当我做“找到50local.policy | xargs vim”时,我得到错误“Vim:Warnung:Die Eingabe kommt nicht von einem Terminal”(翻译:Vim:警告:输入不是来自终端)。 我可以使用vim成功编辑,但是当我关闭它后,我的终端表现得很奇怪(我不能输入字母,当我进入s
当我做“找到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列表中的下一个文件。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读