剪贴板
SLICC 的剪贴板命令 : pbcopy, (中文(简体) ), pbpaste, (中文(简体) ), xclip, (中文(简体) ), xsel, (中文(简体) ), wl-copy 财务报告和审定财务报表 wl-paste作为 POSIX sh 内核上的脚本 /dev/clipboard 字符设备。 切出剪贴板工具的程序, 例如 gh 结束 自动取款机/剪贴板找到他们要找的人.
sccopy (挂到剪贴板上)和 scpaste (stdout 的剪贴板) 随处可见: 在 SLICC 中 pbcopy 财务报告和审定财务报表 pbpaste,并在 macOS 上, Linux 和 Windows 上,它们向平台自己的剪贴板工具(参见 在主机上) (中文(简体) ).
内核从嵌入器中解答设备 clipboard 钩子,七分之一 navigator.clipboard 在7页。 它需要前面有7个分页,以及Chrome的剪贴板阅读权限. 仅文.
安装
在 SLICC 中,软件包在 slicc.commands,所以安装它让他们进入 /usr/bin数字 :
pnpm add -g @ai-ecoverse/slicc-clipboard
它需要塑料内核1.75.0或更晚(engines.slicc-kernel) (中文(简体) ). 在一个老的内核上,没有 /dev/clipboard,每个命令除外 -h 失败 <cmd>: /dev/clipboard not available (needs slicc-kernel >= 1.75.0) 并在它读出或写出任何内容之前1号出口.
图标
| 命令 | 副本 | 粘贴 |
|---|---|---|
pbcopy | 静态 | |
pbpaste | 显示 | |
xclip | -i, (中文(简体) ), -in: stdin, 或命名的文件 | -o, (中文(简体) ), -out |
xsel | -i, (中文(简体) ), --input: 标准 | -o, (中文(简体) ), --output |
wl-copy | stdin, 或空格加起来的参数 | |
wl-paste | ,然后是新线 | |
sccopy | 静态 | |
scpaste | 显示 |
- xclip :
-selection(或-se, (中文(简体) ),-sel,(...) 取clipboard, (中文(简体) ),primary或者说secondary,或其中任何前缀(c, (中文(简体) ),clip, (中文(简体) ),p);所有三个都是一个剪贴板primary默认值.-rmlastnl(或-r)在被复制或粘贴的结尾处放出一行新行. 名为文件-是 stdin, 而 xclip 没有--,所以一个文件,名字从-需要一个路径( n)./-notes.txt) (中文(简体) ). 无-i或者说-o, xclip 副本, 除非 stdin是终端; 然后粘贴 。 员额-i财务报告和审定财务报表-o,最后一个获胜,在粘贴时文件会被忽略. - xsel:
-b编号 :--clipboard, (中文(简体) ),-p编号 :--primary财务报告和审定财务报表-s编号 :--secondary都意味着一个剪贴板.-c编号 :--clear取出空来.-n编号 :--nodetach被接受而无所作为。 没有模式, xsel 副本, 除非 stdin 是终端; 然后粘贴 。 员额-i, (中文(简体) ),-o财务报告和审定财务报表-c最后一个赢了 不需要其他论点. - wl-副本 :
-n编号 :--trim-newline将一行新线放入尾端.-c编号 :--clear空出剪贴板。 选项可能随时可能出现,直到--。 。 。 . - 粘贴:
-n编号 :--no-newline离开它添加的新线. - 缩写,缩写: 与
pbcopy财务报告和审定财务报表pbpaste在他们自己的名字. - 帮助 :
-h财务报告和审定财务报表--help(单位:千美元)-help用于xclip)打印用法行到 stdout并退出 0.
未知的选项( 或一个参数命令不取) 打印命令的错误及其用法行到 stderr 并退出 2 。 当设备失败时, 命令打印 name: 和错误给 stderr 的信息,并退出 1;例如,当标签不在前面时:
pbcopy: Permission denied
pbcopy: the clipboard needs seven's tab in front, with clipboard access allowed
在主机上
在有节点24或稍后的机器上:
npm install -g @ai-ecoverse/slicc-clipboard
printf 'hello\n' | sccopy
scpaste
或没有安装, npx -p @ai-ecoverse/slicc-clipboard sccopy。仅限 sccopy 财务报告和审定财务报表 scpaste 安装( 软件包) bin中,小节点脚本 host/);东道主自己的 pbcopy, (中文(简体) ), xclip 而其余的则永无阴影。 他们交给平台的剪贴板工具,第一个打开 PATH数字 :
| 平台 | sccopy | scpaste |
|---|---|---|
| 马科斯 | pbcopy | pbpaste |
Linux, 在 Wayland 下 (中文(简体) )WAYLAND_DISPLAY 组) | wl-copy | wl-paste --no-newline |
| Linux, X11 软件 | xclip -selection clipboard -i,则 xsel --clipboard --input | xclip -selection clipboard -o,则 xsel --clipboard --output |
| 窗口 | 动力壳 Set-Clipboard | 动力壳 Get-Clipboard -Raw |
- 文本, 以 = 字节表示 : UTF -8和一条后继的新线 在往返途中幸存了下来
scpaste没有增加什么。 在macOS上,pbcopy财务报告和审定财务报表pbpaste运行与LANG财务报告和审定财务报表LC_ALL设置为en_US.UTF-8在窗口上,powershell.exe(次数)pwsh.exe读取stdin并写出stdout作为原始的UTF-8字节,而不是通过控制台代码页;clip.exe没有使用,因为它操纵 非ASCII。 在韦兰下,wl-copy财务报告和审定财务报表wl-paste先来,然后xclip财务报告和审定财务报表xsel(通过XWayland). 其他Unix系统作为Linux处理. - 喷发: 工具以固定的正弦运行,没有外壳.
sccopy不等待背景过程xclip, (中文(简体) ),xsel财务报告和审定财务报表wl-copy留下来为剪贴板服务. - 错误 : 没有工具
PATH, (中文(简体) ),sccopy: no clipboard tool found (tried xclip, xsel)(在那个平台上尝试过的名字) 到Stderr,出口1。 一个失败的工具 它的积分通过,1号出口.-h财务报告和审定财务报表--help打印usage: sccopy(或scpaste)到 stdout并退出 0; 任何其他参数打印sccopy: unknown option: <arg>和使用线到 stderr, 以及出口 2.
在SLICC中 sh 命令获胜. 包裹有两样 bin 财务报告和审定财务报表 slicc.commands名称 sccopy 财务报告和审定财务报表 scpaste内核忽略了软件包的 bin 当同一软件包在 slicc.commands (其内容为: bin 在其所附的命令根部),所以 /usr/bin/sccopy 总是 bin/sccopy生物的底片没有显示 bin 链接 PATH,然后 pnpm add -g,生物清除 $PNPM_HOME/bin 链接 pnpm 为每个名称制作一个软件包, 并同时声明 bin 财务报告和审定财务报表 slicc.commands,因此,SLICC无节点可运行的节点脚本从不阴影 sh 这些.
设备
剧本所依赖的 /dev/clipboard (硅-内核1.75.0及后):
- 读取给剪贴板的文字为UTF-8,从一个快照,然后是EOF.
- 每个打开的文件写入缓冲器;副本发生在
close(). 科鲁蒂尔斯cat将错误报告为写入错误, 因此脚本总是通过cat从来没有一个外壳内置. - 超过 1 MiB 的复制失败
EFBIG,无效的 UTF-8 为EILSEQ,拒绝(不是在前面的标签,或者不允许)EACCES,没有剪贴板的嵌入器ENOTSUP,其他东西EIOCoreutils只看到错误,所以命令会打印它的信息(Permission denied, (中文(简体) ),Not supported, (中文(简体) ),File too large, (中文(简体) ),Illegal byte sequence, (中文(简体) ),I/O error),不是钩子. 之后Permission denied,他们增加了第二行 说做什么.
复制或粘贴 NUL 字节不支持:文本在需要修剪时会通过 shell 变量.
发展
npm install
npm run lint
npm test
npm run test:unit
npm run lint: Biome,无评论检查和其他 分页共享网络 检查,shellcheck -s sh财务报告和审定财务报表dash -n在每个剧本上.npm test: 综合测试test/integration/内核测试@ai-ecoverse/slicc-kernel/node用活活活活活活活活活活活活活活活clipboard真正的钩子/dev/clipboard:gh 的命令行,来回行走,UTF-8,一个空剪贴板,所有8个选项,EACCES, (中文(简体) ),EIO, (中文(简体) ),ENOTSUP, (中文(简体) ),EFBIG, (中文(简体) ),EILSEQ,在users: 'enforce'1.7.4.0,没有/dev/clipboard(作为依赖者)slicc-kernel-without-clipboard),和一个读取 npm 的内核bin条目,在哪里sccopy财务报告和审定财务报表scpaste一定还是sh这些.test/integration/host.test.mjs运行host/对抗假pbcopy, (中文(简体) ),pbpaste, (中文(简体) ),wl-copy, (中文(简体) ),wl-paste, (中文(简体) ),xclip, (中文(简体) ),xsel, (中文(简体) ),powershell.exe财务报告和审定财务报表pwsh.exe临时PATH,并强制通过平台run({ platform }),所以每个分支在任意的机器上都检查: 被选中的工具,它的argv,它的 stdin and stdout, macOS上的 UTF-8 语言, Windows 上的 PowerShell 脚本, 倒计时器, 一个失败的工具的 stderr, 一个空PATH和争论错误。 在 Linux 下方的 CI 上, 并带有 X 显示器, 它也会绕行 UTF-8 , 一条正后方的新线和一个空剪贴板通过 realxclip财务报告和审定财务报表xsel当它们被安装, 跳过, 说为什么,其他任何地方.test/integration/repo.test.mjs检查工作流程、发布配置和什么npm pack舰只.npm run test:unit: 单位测试test/unit/。它们将每个脚本运行在破折叠和shash下,对照使用临时文件作为设备的脚本副本(运出脚本总是使用)/dev/clipboard),以及scripts/cover.mjs转动出击xtrace包含在coverage/unit/lcov.info,旁边的节点覆盖host/,其测试使用假工具PATH。承诺前的钩子希望100%覆盖已改变的线路.
CI为 .github/workflows/ci.yml,唯一的工作流程,运行 塑料-共享网络管道 在devDependency的版本,仅在Linux上: npm run lint,则 npm test 分出两块硬币 然后拉出克劳德和克德克思的评论 合并队列需要 ci / integration 财务报告和审定财务报表 ci / review在推动 main,语义发布,并通过可信赖的出版发布到npm,来源于 ci.yml。 。 。 .
许可证
阿帕奇 - 2.0