我试图使用以下脚本:
#!/usr/bin/env bash
# Edit xselection in gvim
xsel > /tmp/xselection
gvim /tmp/xselection
xsel < /tmp/xselection但最后一行似乎没有正确地将文件加载到xselection中。如果我在调用脚本后立即运行该行,它就会成功。我不明白为什么。我遗漏了什么?
发布于 2012-02-27 17:31:54
您忽略了这样一个事实:在退出gvim之前,对gvim的调用不会阻塞,它将立即返回。因此,xsel < /tmp/xselection在编辑文件之前正在处理它。
发布于 2012-02-28 15:54:47
最后,我将来自这两个/所有三个答案的信息合并到一起,生成以下内容:
#!/usr/bin/env bash
# Edit xselection in gvim
xsel > /tmp/xselection
gvim -f /tmp/xselection
xsel -i < /tmp/xselection发布于 2012-02-27 19:54:04
您需要使用-i选项。(默认为-o)
xsel -i </tmp/xselection
# -o, --output write the selection to standard output.
# -i, --input read standard input into the selection.*这些光学元件在X主选项(而不是剪贴板)上工作,所以您需要通过中间单击来查看结果。在最后命令之前,我已经暂停了它。这允许我在执行最终命令之前手动选择其他文本。我中心点了一下,效果很好……而且它没有延迟的工作。
然而,在没有延迟的情况下进行测试并不能证明这一点,因为原来的选择仍然是被选择的。当然,如果您在此期间选择了其他内容,您将失去脚本的主要选择。
您的问题可能是-i选项和Paul关于gvim与脚本进程分离方式的回答的结合。
https://unix.stackexchange.com/questions/32847
复制相似问题