首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xsel </tmp/xsel不适用于脚本

xsel </tmp/xsel不适用于脚本
EN

Unix & Linux用户
提问于 2012-02-27 16:21:40
回答 3查看 1K关注 0票数 2

我试图使用以下脚本:

代码语言:javascript
复制
#!/usr/bin/env bash
# Edit xselection in gvim
xsel > /tmp/xselection
gvim /tmp/xselection
xsel < /tmp/xselection

但最后一行似乎没有正确地将文件加载到xselection中。如果我在调用脚本后立即运行该行,它就会成功。我不明白为什么。我遗漏了什么?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2012-02-27 17:31:54

您忽略了这样一个事实:在退出gvim之前,对gvim的调用不会阻塞,它将立即返回。因此,xsel < /tmp/xselection在编辑文件之前正在处理它。

票数 4
EN

Unix & Linux用户

发布于 2012-02-28 15:54:47

最后,我将来自这两个/所有三个答案的信息合并到一起,生成以下内容:

代码语言:javascript
复制
#!/usr/bin/env bash
# Edit xselection in gvim

xsel > /tmp/xselection
gvim -f /tmp/xselection
xsel -i < /tmp/xselection
票数 2
EN

Unix & Linux用户

发布于 2012-02-27 19:54:04

您需要使用-i选项。(默认为-o)

代码语言:javascript
复制
xsel -i </tmp/xselection
# -o, --output   write the selection to standard output.  
# -i, --input   read standard input into the selection.*

这些光学元件在X主选项(而不是剪贴板)上工作,所以您需要通过中间单击来查看结果。在最后命令之前,我已经暂停了它。这允许我在执行最终命令之前手动选择其他文本。我中心点了一下,效果很好……而且它没有延迟的工作。

然而,在没有延迟的情况下进行测试并不能证明这一点,因为原来的选择仍然是被选择的。当然,如果您在此期间选择了其他内容,您将失去脚本的主要选择。

您的问题可能是-i选项和Paul关于gvim与脚本进程分离方式的回答的结合。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/32847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档