Vim和Emacs的优缺点是什么?


372

您将如何比较这些编辑器?各自的优缺点是什么?

[ 注意 ]那些“讨厌一个人而爱另一个人”或没有使用这两者的人并不想回答。


1
M-! emacs RET就像在Google上搜索“ google”一样
-Seamus


27
我很惊讶没有人提到XKCD 378
tedder42 2014年

9
请注意,这些问题永远不会困扰于与真正的WYGIWYG编辑器Ed进行比较!
Mark K Cowan 2014年

4
@ tedder42然后,您最好声明“ Mel” ...
Tobias Kienzler 2014年

Answers:


420

我会同时使用这两种方法,尽管如果必须选择一种,那么我会选择哪一种。不过,我将尝试在一些问题上进行客观比较。

  • 随处可用?如果您是使用Unix系统的专业系统管理员,或者是嵌入式设备(路由器,带有Busybox的智能手机,…)上的高级用户,则需要了解vi(而非Vim),因为它在所有Unix系统上都可用,并且大多数类似于Unix的系统,无论是台式机,服务器还是嵌入式系统。对于普通用户而言,此参数是无关紧要的:Emacs可以轻松地用于每个台式机/服务器操作系统,并且由于它支持远程编辑,因此无论如何都可以在台式机上使用它。

  • 肿?Emacs曾经幽默地代表“八兆字节并不断交换”。现在,在我的机器上,每个Chrome浏览器需要100个打开文件的内存,就像Emacs需要100个打开文件的内存一样,我什至不会提到Firefox。在21世纪,Emacs膨胀只是一个神话。

    功能膨胀也不是问题。如果您不使用它,则不必知道它的存在。当您不使用Emacs功能时,它们将不受影响,并且文档井井有条。

  • 启动时间:Vi(m)支持者抱怨Emacs的启动时间。是的,Emacs的启动速度很慢,但这没什么大不了的:每个会话一次启动Emacs,然后使用来连接到正在运行的进程emacsclient。因此,Emacs的缓慢启动主要是一个神话。

    有一个例外,那就是当您登录到远程计算机并想在那里编辑文件时。启动远程Emacs通常比启动远程Vim慢。在某些情况下,您可以使Emacs在Screen内运行。您也可以从Emacs中编辑远程文件,但是如果您在终端中的ssh会话中,它确实会中断流程。(从XEmacs 21或GNU Emacs 23开始,您可以从终端内正在运行的X实例打开Emacs窗口。)

    转过桌子,我观察到Vim的加载时间明显长于Emacs(vim -u /dev/nullvs emacs -q.)。诚然,这是在一个奇怪的平台(Cygwin)上。

  • 初始学习曲线:这因人而异。迈克尔·莫罗泽克的图表使我发笑。认真地说,我同意Vim的学习曲线比其他任何编辑器都要陡峭,尽管使用gvim可以减轻这种情况。

    既然我消除了Emacs的两个神话,就让我消除一个视觉上的神话:模式编辑器使用起来并不难也不痛苦。它有一点习惯,但过一会儿感觉很自然。如果要重新设计vi(m),我肯定会保留这些模式。

  • 渐近学习曲线: Vim和Emacs都具有很多功能,并且使用多年后,您将不断发现新功能。

  • 生产力:这是一个非常困难的话题。vi(m)的支持者认为,您几乎可以在不离开首页的情况下做所有事情,这使您在最需要的时候效率更高。支持Emacs的人反驳说Emacs有很多不经常使用的命令,因此不必保证键绑定,但是在需要它们时非常方便(必填xkcd参考)。
    我个人认为,除非您有打字障碍,否则Emacs最终会取胜(即使如此,您也可以将Emacs配置为仅要求按键序列,而不要求像Ctrl+ letter 这样的组合)。起始行键很不错,但它们通常并不能胜任,因为您必须切换模式。我不认为有什么Vim可以做显著 比Emacs更有效,反之亦然。

  • 可定制性:两种编辑器都是可编程的,并且两者都有大量可用的软件包。但是,Vim是使用宏语言的编辑器。Emacs是用Lisp编写的编辑器,带有一些特定的原语。当您尝试做一些作者没有想到的事情时,Emacs会获得惊人的胜利。这并非每天都会发生,但多年来会不断累积。

  • 不仅仅是编辑器:Vim是编辑器。Emacs不仅仅是一个编辑器:它还是一个IDE,一个文件管理器,一个终端仿真器,一个Web浏览器,一个邮件客户端,一个新闻客户端,……这是好事还是坏事都在争论之中。但是您可以将Emacs用作单纯的编辑器(请参见上面的“功能膨胀”)。

  • 作为一个IDE:Vim和Emacs都支持许多编程语言和其他文本格式。除了语法着色和自动缩进之类的基础知识之外,它们还具有高级IDE功能,例如代码和文档交叉引用查找,辅助插入和重构,集成版本控制以及启动编译并跳至第一个错误的功能。

    Emacs比Vim更好的一个领域是与异步子进程的交互。那是当您开始长时间编译并希望在编译器搅动时在同一编辑器实例中执行其他操作时。或者,当您想与Read-eval-print循环进行交互时-Emacs确实对此表示赞赏,Vim仅提供笨拙的hack。尽管如此,事实证明,新的vim 分支Neovim已解决了该问题,并实现了其他在Vim中未实现的错误修复。


34
我不同意“不仅仅是编辑”这一点。Vim也有许多插件,包括将其转变为文件管理器或IDE的插件(例如vim-latex)。
rozcietrzewiacz 2011年

7
这让我感觉很小……
gnometorule

10
@rozcietrzewiacz:是的,但是您可以在Vim中浏览网页吗?阅读电子邮件?检查您的RSS feed?我认为您无法否认Emacs的功能更加强大,尽管该功能的有用性取决于您要寻找的东西。
musicfreak '02

3
@Bananguin Emacs在涉及与REPL交互的任何方面都比较出色。例如,Proof general非常好(当然,这是一个非常狭窄的应用程序域)。Emacs擅长做以前没有人想到的事情:Emacs Lisp比Vim的宏语言好得多。Emacs倾向于对缩进的源代码提供更好的支持,但我不认为缺少库没有太大的Vim缺陷(对Vim的支持通常仅限于语法突出显示)。
吉尔斯2013年

5
@MichaelHampton那你一定很年轻。1985年为8 MB。到现在为止,我认为它应该是八千兆字节,除非没有人注意到Emacs的内存使用量,因为它不到一个浏览器选项卡。
吉尔斯2014年

267

我将发布我认为每种方法的主要优点:


Emacs具有更多的扩展,可以执行与文本编辑器无关的任务,例如浏览文件系统或使版本控制混乱,而扩展则与文本编辑器无关,例如阅读RSS feed。如果您想要一个环境而不只是一个文本编辑器,那么Emacs将比Vim更好。我也认为Emacs更容易学习,尽管有些人会相信:

编辑学习曲线漫画

特别是,我认为Emacs新手用户比Vim新手用户更快


另一方面,Vim无疑是更快的。看来这是争论的核心部分,但我认为根本没有竞争。我认为自己是Emacs的流利用户,对于我认识的对Vim具有同等认识的夫妇,我无法匹敌。问题是,对Vim掌握足够多的知识的人非常之少(在我经常与之交谈的约30个人中,使用Vim的人当中,我认为只有一个非常擅长此事)。可能的速度增益与您实现的实际速度增益之间有很大的差距。Emacs用户将几乎与Vim用户的99%一样快,并且(正如我在Emacs部分中所述),Emacs的初始用户可能会比Vim的初始用户快


8
嗯...我知道vim有多个版本控制插件。并且其中一个插件支持所有流行的系统。...如果emacs具有更多功能...您需要多少个插件来做同样的事情?
xenoterracide

13
@xeno我不知道vim到底有什么插件,所以也许VCS是一个不好的例子,但是我非常有信心Emacs的插件要比vim多得多,因为vim不赞成“一个程序可以完成所有工作”的理念。
Michael Mrozek

4
有人可以解释一下上面给出的emacs图是什么意思吗?怎么解释呢?
Andrew-Dufresne

27
这是一个“无聊的笑话”……这是因为当您学习emacs时,最终您也将开始创建emacs。(因为Emacs实际上只是用Lisp解释器编写的大量编辑宏/例程。)
ocodo 2010年

15
+1速度与经验比较好,但也许99%有点极端。我的意思是vim并不是“很难”掌握的,它只需要几年时间;)
Johan

81

有一个vi可用的每个Unix系统上(或差不多),但是你不能说这个任何其他编辑器。这是imo学习和熟悉的第一大原因vi(请注意,“ vi”不是“ vim”)。我从未见过Emacs在默认安装中可用。

我并不是说不要使用Emacs或这是使用Vim的唯一原因,但是当您希望能够使用不是您自己的Unix系统时... vi是通用语言的一部分。


1
我是一个vim用户,但是我经常发现它很难使用vi,很可能是由于END键(vim支持它,但vi不支持,或者默认情况下vi不支持)
phunehehe 2010年

25
@phunehehe如果我尝试使用nano,则会在文件中得到一堆ijkloOah ...直到我意识到我无法将其用于导航。我不使用箭头键进行导航。
xenoterracide

5
对于通过狡猾的连接连接到速度较慢的服务器,这要加倍:保证它们具有的一个编辑器(我认为它在Unix规范中)是vi,而vi的命令模式使通过较少的击键编辑文件变得更加容易每次击键需要几秒钟才能显示在屏幕上。当然,步骤1通常是在安装vim:)
Gaurav 2010年

12
@phunehehe我不使用esc。我使用ctrl + [它执行相同的操作;)
xenoterracide 2010年

8
为Gaurav的评论+1。Vi非常适合通过慢速手机上a脚的3G连接紧急编辑配置文件。
LawrenceC

23

我认为他们都很棒。我认为任何人都可以做您可以想象的任何事情,而且它们都可以自定义,以至于您完成自定义它们时,它们都恰好是您想要的它们,没有更多或更少。

Emacs在与用户界面的可用性和一致性的ISO / IEC标准更加接近(尽管仍然不满足)的情况下在我看来是突出的,因此,您对该vim的“直觉”没有那么多花招。您与其他程序一起开发的本能一生不会对您不利。

Vim是一个完全不同的模型,在许多方面,它本身都具有优势,因为它很少依赖Cntrl / Alt序列,而是仅依赖于其模式,从而使您可以轻松地在主行和打字上快点。但是vim实际上是唯一的,除非您安装一些非常不寻常的随附软件(例如Vimperator,Jumanji / Zathura等),否则您使用vim开发的本能不会转移到其他程序,反之亦然。话虽如此,我还是自己决定了。无论好坏,您迟早都要安定下来,因为很难同时掌握两者。


1
关于“使用vim开发的本能不会交叉到其他程序”这一行的一种评论:可以将“ setediting-mode vi”这一行添加到〜/ .inputrc文件中(在支持该功能的Linux系统上) 。这将启用vi样式语法,以便在使用stdin的readline的程序中输入文本,例如bash shell本身。对于使用vim开发的编辑本能,可能存在(有时令人惊讶)相当广泛的适用性。
Christian Abbott 2015年

幸运的是,有很多人遇到这个问题,他们为许多程序构建了扩展程序,使它们更像vim
DarkWiiPlayer

21

我经常使用两者。我将Emacs视为“实时”编辑器,而我将Vim用于快速的一次性任务。从表面上看,Emacs比Vim更加肿,因此“启动”确实不像Vim那样方便,但是我还发现,从一个界面到另一个界面的用户界面哲学都支持这种范例。Emacs的功能更多,可以使您保持内部状态,使事情变得舒适舒适,因此您不必离开,而vim则更像是“ Unixy”,并且将自己视为更大的工具带的一部分。

许多人由于严重依赖bucky比特而逃离了Emacs ,但这对我来说是一个很愚蠢的理由。Emacs对Vim的真正威力是可定制性,而在Viper等威力的支持下,这确实不是问题。当然,Vim-Script提供了自己的自定义级别,例如,如果没有为您喜欢的编程语言提供适当的语法突出显示框,则可以肯定使用它,但是Emacs最终将是一个自托管的Lisp机器,并且最终,您可以做的更多,更多。仅举几个例子,在Vim 中没有像gnusorg-mode这样的工具。简而言之,Emacs不仅仅是一个编辑器,它实际上是一个该死的操作系统。

对于处理文本,我想说它们完全一样。


30
“如果Emacs拥有值得编辑的文本编辑器,它将成为一个出色的操作系统。” -我想起了这句话。
amphetamachine

@amphetamachine我没有报价。贬低emacs文本编辑器意味着什么?
tshepang 2013年

它的确意味着,尽管我通常会更刺耳地听到它。
科迪投票2015年

至于编辑器本身,我发现vim可以更轻松地编辑文本,但是我必须将可定制性交给emacs。Vimscript实在受不了。
Cody Poll

19

我花了0.02美元,因为我花了很多年时间使用emacs和XEmacs,然后才转到vim。公平地讲,我实际上在1990-1992年左右使用了vi,因此我熟悉了它的用户界面。

埃马克斯

  • Emacs被描述为一个Lisp系统,刚好被用来编写编辑器,这是有道理的。如果您愿意花时间了解环境,则可以在elisp中实现几乎任何您想要的东西。我不能说我曾经很了解它,但是我偶尔会做些粗暴的事。Emacs和Xemacs在此级别上并不完全兼容,因此第三方脚本可以在一个脚本上运行,但不能在另一个脚本上运行。

  • 据观察,由于OOS的问题,RMS和其他一些著名的Emacs黑客不得不退出程序设计,而Bill Joy,Bram Moolenaar和其他各种名人仍然在那里。Emacs的手指很难用。

  • Emacs是比vi更宽容的系统,被视为软件封装的典范示例。与Netscape一起,这是jwz对证明该定律贡献之一。

我曾经对xemacs做过的一件独特的事情是让它在计算机上运行,​​并在同一个正在运行的实例上的同一个缓冲区的不同房间的xterminal(实际上是旧用途的Sun 3/60)上打开x会话。

优点:可扩展,比人类已知的任何其他编辑器都要强大,并且可以与几乎所有主要的免费软件编程工具进行成熟的集成。

缺点:人体工程学问题,elisp不容易学习。

Vim

Disclamer-大约10年前,我从使用emacs转到vim,我习惯在基于Windows和Unix / Linux的系统上使用vim。

  • Vi及其后代具有很好的键盘宏功能,可以自动执行编辑任务。vim中的脚本编制工具没有elisp复杂,但是您可以通过支持Python,Tcl,Perl以及其他一些系统来构建它。我只是偶尔为vim编写脚本(.vimrc文件之外)。

  • 与emacs相比,Vim的占用空间较小,但是如今这并不是什么大问题。

  • Vim的文档和在线帮助都相当不错。Emacs有相当不错的在线文档,但是我不认为它像vim一样全面。

  • Vim继承了vi的古怪模态用户界面,但现在可以像无模编辑器一样运行,因为您可以在插入模式下导航。在Windows上,它的行为与Windows应用程序非常相似。

优点:良好的键盘宏功能,良好的可扩展性和脚本编写,但不及emacs。Vim或vi派生的编辑器是大多数(如果不是全部)Unix或通用Linux发行版的标准配置。可以说是更好的人体工程学。

缺点:模态用户界面让习惯于Windows UI的人们感到很奇怪。如今,vim的问题越来越少了。


我很喜欢阅读您的答案,但错过了决定因素。是什么让您从emacs切换到vim?
Erik B

这只是有机的-再加上vim的键盘宏工作得很好。
ConcernedOfTunbridgeWells

1
该死的,作为一个年轻的程序员,人体工程学的观点非常吸引人。这可能只是解决了我选择学习VI和VIm而不是Emacs的选择。
Didier A.

15

我通常使用Vim,但它们都是出色的编辑器。

学会使用vi是令人讨厌的,但是我通过了学习并学会了喜欢它。我最沮丧的时刻是当按下Caps Lock键时。您可以尝试使用gVim,但是vi和Emacs的最大优势之一就是可以将整齐的东西放在手,同时又可以将手放在键盘上,而gVim可以让您继续使用鼠标。(同时学习玩流氓类游戏使我有了使用光标移动键的练习,但有时会导致我尝试在文档中沿对角线移动。)

Emacs可能更容易接近。它是无模式的,并且您不会通过按大写锁定键来搞砸自己。对于现代高级用户来说,通过按下字母并按下控制键来控制编辑器的想法对于普通的高级用户来说应该不会太陌生,尽管对于典型的Windows / Mac OS X用户而言,执行操作的实际键似乎是疯狂的和任意的。同样,从长远来看,允许您使用鼠标的版本不会给您带来什么好处。

两者都需要一定程度的专业知识才能有效使用。与记事本不同,您不能坐下来进行编辑。

两者都是可配置的,尽管对我来说,在同一个Lisp中编写扩展可以使编辑器使用起来更加顺畅。(Emacs,通常是分发者,实际上并不是一个编辑器。它是一个为文本处理量身定制的Lisp环境,带有许多预先编写的软件,包括一个编辑器。更好的编辑器。”)

我通常使用Vim,因为经过广泛的培训后,感觉会更容易。这可能是由于模式系统的优势,在这种模式下,用一根手指在主行附近可以使用大量命令,或者称为“鸭蛋综合症”,这在编辑人员中非常有用:一旦您学到了好命令,通常就可以坚持下去对它。

使用任何一个都不会出错。



9

我碰巧认为上面的“ vim是模式的”注释是不正确的。Vim有命令。您可以执行“ 11aNow现在是所有好男人的时间了..”,最后在文件中添加11行相同的新文本行。那是命令,而不是模式。但是,Vim命令与Emacs命令实际上存在非常基本的区别。我不确定是否可以描述它,但是10年前Eric Fischer在TTY驱动程序中结合了Emacs风格的行编辑,并发表了一篇关于它的论文:

http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf

他发现Emacs样式行编辑与vi样式根本不同。

因此,Emacs具有一个优势,很多其他东西(bash,gnuplot,zsh,ksh和其他我无法想到的东西)最终都实现了Emacs风格的行编辑。

我应该注意,我一直都在使用Vim。我只是偶尔使用Emacs的用户。


1
set -o vibashzsh不太难运行(或放在一个rc文件),在我看来。
moon.musick

@ moon.musick-当然不是,我一直都这样做。只是,默认情况下gnuplot,Postgresql psql,MySQL mysql和大量其他接口都或多或少地执行Emacs模式。如果只有Oracle可以sqlplus进行命令行编辑……不,不。对于大公司,这将是太多了。他们有发展趋势!
Bruce Ediger 2014年

是的,大多数inputrc情况下都是为shell工具做的,但是后来我想知道半秒钟,为什么j从终端切换到Mendeley Desktop后,为什么不向下滚动,例如,Mendeley Desktop,而他们又被要求多次vim绑定。不幸的是,它无法涵盖所有​​内容并拥有一致的环境。
moon.musick

2
@BruceEdiger我高度怀疑,开发商mysql(1)psql(1)gnuplot(1),也python(1)perlconsole(1)lftp(1)smbclient(1)确实很多互动节目的担心键绑定的行编辑。所有这些软件都只使用GNU Readline,并且GNU Readline的默认模式是(毫无疑问)类似于GNU Emacs的。set editing-mode vi 在您~/.inputrc和voila中–所有这些工具都具有类似于vi的键绑定。
德米特里·亚历山德罗夫

9

由于尚未明确说明,因此我要补充一点,没有比经过稍微修改的Emacs发行版更好的编程环境(盒子中的Lisp,SLIME等)。我所有的编程需求(99%)都在Vim中得到满足,但是对于我编写的所有Lisp库和例程,我都必须启动Emacs才能完成生产工作。


8
有时我不知道这是说Lisp还是Emacs,以及它的好坏……
Kevin Cantu 2010年

8

我使用Vim / gVim。

我曾经使用过Emacs,但是我发现gVim在较慢的机器上通常可以更快地运行,此外,由于其POSIX要求,几乎在任何地方都可以使用vi。

当使用Vim或gVim时,我经常使用鼠标,我认为它的支持很棒。

我开始使用Emacs,因为它对于新手用户来说更容易使用。由于某种原因,我发现使用nano容易出错,并且在某个时候,我意识到使用vi更舒服。

现在,这是一种混合。我也经常使用Eclipse和gedit。但是,Vim仍然是我最喜欢和最常用的编辑器。


7

尽管我都不擅长使用gVim和Emacs,但它们都足以发挥作用。我可以肯定地说的一件事是,Vim和gVim在Windows 7笔记本电脑(我必须在工作中使用)上运行得更快。在Windows机器上,Emacs有一个奇怪的习惯,即“暂停”一分钟,甚至在继续接受键盘输入的同时也变得无响应,然后才匆忙吐出键盘缓冲区中累积的所有内容。在Mac OS或Linux中不会发生这种情况。尽管如此,我发现大部分时间我都在所有平台上使用Vim或gVim,所以我不必停下来思考正在使用和调整的编辑器。就是说,在纯* nix环境中,我可能会留在Emacs上,因为我发现无模式编辑稍微自然一些。

底线:在我看来,两个编辑器的功能都足以应付任何和所有文本编辑需求。该选择应基于实际考虑因素(例如平台实现细节)和工作方式。


3

Emacs和Vim之间的主要区别是人体工程学。如您所知,有腕管综合症。如果您拥有CTS并提倡CTS,Emacs将会非常“危险”。Vim-不,您可以在许多地方了解到这种差异。例如,在Vim中,您只能用一根手指编辑文本。在Emacs中-您不能:)


3
甚至没有证明CTS实际上与键盘使用有关。尽管从表面上看似合理,但有些链接显示CTS实际上是由遗传因素引起的,而不是其他任何原因。因此,尽管它仍然可以帮助少打字时,你已经有CTS,我不认为有任何证据说,一个编辑器导致 CTS比另一种更。
康拉德·鲁道夫2012年

-2

我使用vi/ nvi(不vim),因为它简单且不引人注目。

vim爱蜂鸣声如此之高,因此难以关闭,而且似乎不太明显。 在最终找到有关该方法的埋藏式参考之前,我不得不实际移除了内置PC扬声器:)

set vb t_vb=

另外我不使用语法着色,对我来说灰色对黑色是最美丽的。

也许我太愚蠢以至于无法弄清楚那种纠结多键的emacs方式,我记得的唯一三个键组合是CTRL-ALT-DEL。


-2

“ Vim和Emacs的优缺点是什么?” - 哈!

我主要将专业人士留给其他人。

两者的缺点是它们都是老派。多年来,我已经使用了大约50种不同的编辑器,从基本行编辑器到超快速汇编代码编辑器(一种是VEDIT),再到精美的GUI编辑器,其中一些优于其他。我什至编写了自己的特殊编辑器ForthStar,并对其进行了修改,以编辑一棵btrieve叶子,具有多个索引以进行强大的搜索,例如立即查找刚编辑的最后叶子,或快速查找代码组件或叶子父级或孩子。

我认为vi和emacs比宗教更重要。建立它们的创造力已经大步向前,新的支持缺乏重新发明它们的勇气和技巧。

是的,Emacs可以做很多事情,但是由于lisp(一种优美而又过时的语言)的使用,它的速度有所降低。

两者都卡在困难的键盘布局中。Emacs至少可以通过识别出Alt键而不是旧版Meta来适应用户。就像WordStar一样,在进行快速键入时,保持CA CB与CA B的距离不值得。最好仅使用任一键组合触发的键。是的,您可以更改键绑定,但是以后您会一团糟。

Vi很聪明,但缺乏强大的搜索和替换功能,就像在Notepad ++中一样,它可以向您显示所发现的内容,它使您可以扩展它并有选择地以彩色方式应用它,仅此而已。

目前,几乎所有其他GUI都可以使用鼠标滚轮进行缩放。Emacs GUI似乎无法正常工作。凯特(Kate)的好招呼在哪里?

多年来,我最喜欢的键盘布局是Wordstar的光标菱形。至少它很容易学习并且立即有意义。我最讨厌的是WordPerfect,它增加了复杂性,似乎有点基于emacs。

面对这些日子,当今世界大多数地方都拥有GUI。不管您喜欢与否,文本编辑器都停留在他们的时代。

我认为最好有一个通用的编辑器,该编辑器可以轻松地在emacs,vi,wordtar或任何键布局之间切换,而又不会失去它所提供的更强大的命令。真正的程序员必须使用各种编辑工具。为什么没有一个能够满足我们需要的编辑器来完成工作,而不是强迫我们进入他们的工作方式?


由于该问题要求利弊,因此无法回答该问题。据我所知,它只提到其他编辑器比Vi和Emacs更好。
Kusalananda

任何问题的答案都可以,直到它们回答了问题,并且与之前的答案本质上是不同的。“看起来不错”。
peterh '18

Q显然要求缺点。我还提到了一些优点。
椭圆视图
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.