比如复制一个文件 在 iterm 黏贴为完整路径, 在其他输入框内黏贴为文件名. 黏贴到 QQ 输入框又以文件形式发送了.
有如上困惑的原因是 现在想通过 terminal 复制图片到 clipboard 的 buffering 里 折腾了一晚上没法实现. 但是看了一些第三方的 剪切板管理工具是可以实现的.
1
xshwy 2016-10-24 00:05:58 +08:00 1
猜测这个应该是各个 APP 自己设定的
猜测复制粘贴的时候,是复制的文件的完整路径,到了各个 APP 粘贴的时候,由各个 APP 来实现是 读取完整路径 还是 读取文件发送 |
2
bao3 2016-10-24 00:17:44 +08:00 1
这是每一个 app 自己的行为。。。看它是怎么解析复制的内容,比如 Terminal app ,它一定不会让你把整个文件复制上去,只会接受路径。比如 mail app 它一定不接受路径而是直接把文件放进去当附件,但是 outlook 则是既不接受路径也不接受文件,而只接受文件名。。。同一次复制,不同的 app 对它的解析是不一样的。
|
3
LevineChen OP @xshwy 这不合理 你的意思是字符串路径么? 如果是 app 怎么知道我是真的复制了字符串还是一个路径.
|
4
Trim21 2016-10-24 00:22:31 +08:00 via Android
@LevineChen terminal 没有必要让你粘贴一个文件吧
|
5
df4VW 2016-10-24 00:23:44 +08:00
@LevineChen 判断下文件存不存在不就好了。大哥你确定不是来找茬的?
|
6
XiaoxiaoPu 2016-10-24 00:48:07 +08:00 via iPad 1
剪贴板里的东西是富媒体信息, app 自己去解析,可以选择性的丢弃一部分。比如,你在网页上复制,在备忘录里粘贴会保留格式,在终端里就只保留纯文本了。
|
7
AnyOfYou 2016-10-24 00:57:12 +08:00 1
剪贴板数据里包含元数据来描述内部信息的类型。
我一般用这个 function ,最终还是调用 AppleScript 实现的。 copyfiletoclipboard () { local filefullpath filefullpath=$(realpath $1) osascript -e 'on run args' -e 'set the clipboard to POSIX file (first item of args)' -e end "$filefullpath" } 可以用,但是多文件的 Copy 会有问题。 |
8
fatestigma 2016-10-24 01:11:53 +08:00 1
macOS 的剪贴板应该是 NSPasteboard 吧。可以多看看这个的文档: https://developer.apple.com/reference/appkit/nspasteboard
在终端复制图片还是用 AppleScript 最方便吧。如果 pbcopy 好像不能记住文件类型 |
9
execute 2016-10-24 10:12:42 +08:00 1
同意一楼二楼的回答,实际上楼主的描述在 Windows 下也是一样的,不同程序下 Ctrl+v 的效果不同。
|
10
LevineChen OP |