为什么计划9使用“ snarf”而不是“ copy”?


29

当您观看有关Plan 9及其acme编辑器的演示时,您可能会注意到复制的名称是narf(不幸的是,我无法找到任何有意义的解释)。

为什么会这样呢?

有什么理由吗?是否已完成为此功能创建唯一名称的操作,因为副本可能不是最佳名称?


参考文献:

  • 维基百科(链接)

    Snarf,在Blit和Plan 9窗口系统中用于“复制”操作的术语。

  • cat-v.org(链接)

    单击鼠标中键还有另一个菜单。剪切和粘贴很容易解释,Snarf只是“计划9”一词的“复制”。

  • 9fans邮件列表(链接)

    在Plan 9和/或Mac OS X下通过plan9port使用acme,是否都可以在acme中打开“文件”,以显示acme snarf缓冲区的当前内容?

    /dev/snarf
    

    因此,看起来好像有一个snarf缓冲区和一个名为的文件(显然该缓冲区必须有一个文件)/dev/snarf

  • 9term手册页(链接)

    在键盘上键入的字符将替换所选的文本;如果此文本不为空,则将其放置在所有窗口共有但与sam(1)不同的snarf缓冲区中。

    (...)

    从按钮2上的菜单中选择编辑操作。剪切操作从屏幕上删除所选文本,并将其放入snarf缓冲区;snarf将选择的文本复制到缓冲区中而不删除它;粘贴将选定的文本替换为缓冲区的内容;然后将snarf缓冲区的副本发送到输出点之后,如果缺少则添加最后一个换行符。粘贴有时会发送,并且总是将文本放置在输出点之后;这样放置的文本将完全如上所述。因此,在输出点之后粘贴包含换行符的文本时,最好先打开保持模式。

  • 探索Acme教程(链接)

    'Snarf':在大多数其他编辑器中称为复制

  • snarf的 dictionary.com定义(链接)

    • (非正式)贪婪地吃喝

    • (同时代)抢夺贪婪的东西,尤其是 没有经过同意

    • (Unix)通过网络获取一个文件或一组文件。另请参见爆炸。

  • Inferno第2部分:让我们建立集群!(链接)

    在Inferno和Plan 9中,剪贴板被不幸的名称“ snarf buffer”调用。


2
我问了一下把这个问题搁置在元的原因:meta.unix.stackexchange.com/questions/4163/...
Mateusz Piotrowski的

1
我猜这是“语言化”,就像人们说“ google it”一样,因此“ snarf”只是说“将文本放入snarf缓冲区”的一种方式。
Sergiy Kolodyazhnyy

1
@Serg但是为什么是“ snarf缓冲区”,而不是“复制缓冲区”?
Mateusz Piotrowski

@Serg您的意思是动词而不是口头表达-口头表达就是大声说。

如果我猜想可能与clojure的设计相似。在Clojure中,使用IO slurpspit文件IO snarf距离并不远。(但是clojure比Plan9还要年轻)
俗称的

Answers:


27

我偶然发现了一个相当合理的解释。在行话文件(链接)解释SNARF是这样的:

snarf:/ snarf /,vt。

  1. [在Unix社区中]通过网络获取一个文件或一组文件。另请参阅blast。这个词在1960年代后期成为主流,意思是“ 吃猪吃东西 ”。在上下文中它可能仍然具有此含义。“ 他正处于骇人听闻的黑客入侵阶段-每天通过FTP传输大量的信息。

计划9的设计者似乎认为复制不是原子动作。复制实际上是:

  • 获取您要复制的内容(封入
  • 将内容插入到想要的位置(粘贴

(另一方面,剪切是同时封存删除原始内容。)


罗伯·派克的答案

我在9fans邮件列表中问过这个问题。您可以在此处看到该线程(链接)1

这是我从罗伯·派克那里收到的答案1

该操作不是复制而是到narf。之所以称为snarf,是因为snarf是它的工作。没有设计文件。


1:正如StéphaneChazelas在评论中指出的那样,您可以使用http://marc.info/?t=147367568900005&r=1&w=2来避免创建帐户来查看列表档案的麻烦


2
现在,“ bluesnarfing”一词很有意义
cutrightjm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.