将文本复制到剪贴板

时间:2014-01-16 00:45:15

标签: macos vim zsh

我正在编写一个Makefile,其任务是将文本内容从给定文件复制到计算机的实际剪贴板中。

我认为有一种方法是使用特殊的启动命令运行vim(选项-c'命令')。所以我想到了

vim -c '%w !pbcopy | q'

这不起作用,因为!pbcopy会提示回车(我认为)。无论如何,在运行时Vim告诉我

zsh:1: command not found: q

shell returned 127

Press ENTER or type command to continue

吸收。

我能用其他任何方式吗?要么在这个双vim命令中解决回车问题,要么只是找到另一种方法从我的终端复制我的文本(我使用Zsh)。

提前致谢!

3 个答案:

答案 0 :(得分:2)

引用pbcopy(1)

  

pbcopy获取标准输入并将其放在指定的粘贴板中。如果没有粘贴板          如果指定,默认情况下将使用常规粘贴板。输入被放入粘贴 -          除非以Encapsulated PostScript(EPS)文件头开头,否则将其作为纯文本数据          富文本格式(RTF)文件头,在这种情况下,它作为其中一个放在粘贴板中          那些数据类型。

所以你只需要执行命令pbcopy < file

熟悉Unix命令man,可以访问命令的手册页。如果您熟悉它,那么很容易为自己得到这些问题的答案。

答案 1 :(得分:2)

你根本不需要Vim;你正在做的就是在世界各地旅行,只是为了从前廊取回报纸。

解释Vim错误:有些Vim命令可以链接在一起,例如: :version | help,但有些命令可以采用任意参数(包括|命令分隔符),因此链接不是直接可行的。正如您在:help :|所看到的,:write !命令就是其中之一。您可以通过将命令包装在:execute(允许链接)中来解决此问题:

:execute '%w !pbcopy' | q

答案 2 :(得分:0)

您可以使用xclip:

cat file | xclip -i -selection clipboard