Bruce Byfield 发布的文章

由于安全问题越来越严重,Linux 发行版需要在安装程序中突出显示基本安全选项,而不是让用户稍后手动添加这些选项。

十二年前,Linux 发行版努力使安装变得简单。在 Ubuntu 和 Fedora 的引领下,它们很早就实现了这一目标。现在,随着对安全性越来越关注,它们需要稍微转变下方向,并在安装程序中突出显示基本安全选项,而不是让用户稍后手动添加这些选项。

当然,即便是在最好的情况下,说服用户来设置安全功能都是困难的。太多用户甚至不愿意添加如非特权用户帐户或密码这样简单的功能,他们显然更喜欢用重装或者以每小时 80 美元的价格咨询专家来减少风险。

然而,即便一般用户不会专门注意安全,但他也可能会在安装过程中注意。他们可能永远不会再想到它,但也许在安装过程中,当他们的注意力集中时,特别是如果有可见的在线帮助来解释其好处时,他们可能被说服选择一个复选框。

这种转变也并不伟大。许多安装程序已经提供了自动登录的选择 - 这对于不包含个人数据的安装来说或许是可以接受的功能,但更可能会被那些觉得登录不方便的用户使用。同样感谢 Ubuntu,它选择加密文件系统 - 至少在主目录中是这样 - 它已经成为许多安装程序的标准。我真正建议的也是这样的。

此外,外部安装程序如 Firefox 已经无缝合并了隐私浏览,而 Signal Private Messenger 则是一个可替代标准 的 Android 手机和联系人的应用程序。

这些建议远不算激进。它只需要意志和想象力来实现它。

Linux 安全第一步

应该将什么类型的安全功能添加到安装程序呢?

首先是防火墙。有许多图形界面程序可以设置防火墙。尽管十七年的经验,但是就像拜伦对柯尔律治的形而上的思想的讨论一样,我有时还是希望有人能来解释一下。

尽管出于好意,大多数防火墙工具对 iptables 的处理看起来都很直接。有一个现在已经停止维护的加固系统 Bastille Linux 可以用于安装一个基本的防火墙,我看不出为什么其他发行版做不到同样的事情。

一些工具可以用于安装后处理,并且对于安装器而言可以毫无困难地添加使用。例如,对于 Grub 2,这个大多数发行版使用的引导管理器包含了基本密码保护。诚然,密码可以通过 Live CD 绕过,但它仍然在包括远程登录在内的日常情况下提供一定程度的保护。

类似地,一个类似于 pwgen 的密码生成器也可以添加到安装程序设置帐户的环节。这些工具强制可接受密码的长度、以及它们的大小写字母、数字和特殊字符的组合。它们许多都可以为你生成密码,有些甚至可以使生成的密码可拼读,以便你记住密码。

还有些工具也可以添加到安装过程的这个部分。例如,安装程序可以请求定期备份的计划,并添加一个计划任务和一个类似 kbackup 的简单的备份工具。

那么加密电子邮件怎么办?如今最流行的邮件阅读器包括了加密邮件的能力,但是设置和使用加密需要用户采取额外的设置,这使常见的任务复杂化,以至于用户会忽略它。然而,看看 Signal 在手机上的加密有多么简单,很显然,在笔记本电脑和工作站上加密会更容易。大多数发行版可能都喜欢对等加密,而不喜欢 Signal 那样的集中式服务器,但像 Ring 这样的程序可以提供这种功能。

无论在安装程序中添加了什么功能,也许这些预防措施也可以扩展到生产力软件,如 LibreOffice。大多数安全工作都集中在电子邮件、网络浏览和聊天中,但文字处理程序和电子表格及其宏语言,是一个明显的恶意软件感染的来源和隐私关注点。除了像 Qubes OSSubgraph 这样的几个例外之外,很少有人努力将生产力软件纳入其安全预防措施 - 这可能会留下一个安全漏洞空缺。

适应现代

当然,在意安全的用户也许会采取一些安全的方法,这样的用户可以为自己负责。

我关心的是那些不太了解安全或不太愿意自己做修补的用户。我们越来越需要易于使用的安全性,并且亟待解决。

这些例子只是开始。所需要的工具大多数已经存在,只是需要以这样的方式来实现它们,使得用户不能忽略它们,并且能够不用懂什么就可以使用它们。可能实现所有这些只需要一个人月而已,包括原型、UI 设计和测试等等。

然而,在添加这些功能前,大多数主流的 Linux 发行版几乎不能说是关注到了安全性。毕竟,如果用户从不使用它们,那怎么会是好工具?


via: http://www.datamation.com/security/why-linux-installers-need-to-add-security-features.html

作者:Bruce Byfield 译者:geekpi 校对:Bestony, wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

换操作系统对每个人来说都是一件大事——尤其是许多用户根本不清楚操作系统是什么。

然而,从 Windows 切换到 Linux 特别地困难。这两个操作系统有着不同的前提和优先级,以及不同的处理方式。结果导致 Linux 新手容易混淆,因为他们在 Windows 上面得到经验不再适用。

例如,这里有 7 个 Windows “难民”开始使用 Linux 的时候会犯的错误(没有先后顺序):

7. 选择错误的 Linux 发行版

Linux 有几百个不同的版本,或者按他们的称呼叫做 发行版 distribution 。其中许多是专门针对不同的版本或用户的。选择了错误的版本,你与 Linux 的第一次亲密体验将很快变成一个噩梦。

如果你是在朋友的帮助下切换的话,确认他们的建议是适合你,而不是他们。有大量的文章可以帮助到你,你只需要关注前 20 名左右的或者列在 Distrowatch 的即可,就不太可能会搞错。

更好的做法是,在你安装某个发行版之前先试试它的 Live DVD。Live DVD 是在外设上运行发行版的,这样可以允许你在不对硬盘做任何改动的情况下对其进行测试。事实上,除非你知道怎么让硬盘在 Linux 下可访问,否则你是不会看到你的硬盘的。

6. 期待什么都是一样的

由于经验有限,许多 Windows 用户不知道新的操作系统意味着新的程序和新的处理方式。事实上你的 Windows 程序是无法在 Linux 上运行的,除非你用 WINE 或者 Windows 虚拟机。而且你还不能用 MS Office 或者 PhotoShop —— 你必须要学会使用 LibreOffice 和 Krita。经过这些年,这些应用可能会有和 Windows 上的应用类似的功能,但它们的功能可能具有不同的名称,并且会从不同的菜单或工具栏获得。

就连很多想当然的都不一样了。Windows 用户会特别容易因为他们有多个桌面环境可以选择而大吃一惊——至少有一个主要的和很多次要的桌面环境。

5. 安装软件的时候不知所措

在 Windows 上,新软件是作为一个完全独立的程序来安装的。通常它囊括了其它所需的依赖库。

有两种叫做 FlatpakSnap 的软件包服务目前正在 Linux 上引进类似的安装系统,但是它们对于移动设备和嵌入式设备来说太大了。更多情况下,Linux 依赖于包管理系统,它会根据已安装的包来判断软件的依赖包是否是必需的,从而提供其它所需的依赖包。

笔记本和工作站上的包管理本质上相当于手机或平板电脑上的 Google Play:它速度很快,并且不需要用于安装的物理介质。不仅如此,它还可以节省 20%-35% 的硬盘空间,因为依赖包不会重复安装。

4. 假想软件会自动更新好

Linux 用户认为控制权很重要。Linux 提供更新服务,不过默认需要用户手动运行。例如,大多数发行版会让你知道有可用的软件更新,但是你需要选择安装这些更新。

如果你选择更新的话,你甚至可以单独决定每一个更新。例如,你可能不想更新到新的内核,因为你安装了一些东西需要使用当前的内核。又或者你想要安装所有的安全性更新,但不想把发行版更新到一个新的版本。一切都由你来选择。

3. 忘记密码

许多 Windows 用户因为登录不方便而忘记密码。又或者为了方便起见,经常运行一个管理账户。

在 Linux 上这两种做法都不容易。许多发行版使用 sudo 来避免以 root 登录,特别是那些基于 Ubuntu 的发行版,而其它发行版大多数是安装为禁止 root 运行图形界面。但是,如果你在 Linux 上成功绕开了这些限制,请注意你的大部分 Linux 安全性优势都会无效(其实在 Windows 上也不推荐这样做)。

对了,你是不是在安装程序上看到一个自动登录的选项?那是在不常用的情景下使用的,例如不包含隐私信息的虚拟机。

2. 担心没有碎片整理和杀毒软件

Linux 偶尔需要进行碎片整理,不过只有在恢复分区或者分区差不多满了的时候。并且由于固态硬盘越来越火,碎片整理正在变成过去时,尽管固态硬盘确实需要在任何操作系统上定期运行 trim

同样地,只有当你安装的 Linux 经常传输文件给 Windows 机器的时候,杀毒软件才是一个主要问题。很少有 Linux 病毒或恶意软件存在,并且日常使用非 root 用户、使用强密码、经常备份当前文件就已经足够阻止病毒了。

1. 认为自己没有软件可用

Windows 上的软件是收费的,大多数类别由一家公司独占——例如,办公套装 MS Office 以及图形和设计的 Adobe。这些条件鼓励用户坚持使用相同的应用程序,尽管它们错漏百出。

在 Linux 上,故事情节不一样了。只有少数高端程序是收费的,而且几乎每一类软件都有两三个替代品,所有这些可用的软件都可以在 10 分钟或者更短的时间内下载好。如果一个替代品不合你口味,你可以删掉它然后毫不费力就可以再装一个其它的。在 Linux 上,你几乎总会有选择。

过渡期

可能没有那么多建议可以让 Windows 用户充分准备好切换到 Linux。即使说新用户应该保持开放的心态也是没什么用的,因为他们的期望总是太高,以至于许多用户都没有意识到自己有如此高的期望。

Linux 新手可以做的最好的事情就是调整心态,并且花一点时间来适应它们。过渡期会需要一些功夫,不过,从长远来看,你的多次尝试终会得到回报。


via: http://www.datamation.com/open-source/7-mistakes-new-linux-users-make.html

作者:Bruce Byfield 译者:OneNewLife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux用户不了解一点开源硬件制造相关的事情,他们就会经常陷入失望的情绪中。

商业软件和自由软件已经互相纠缠很多年了,但是这俩经常误解对方。这并不奇怪 -- 对一方来说是生意,而另一方只是一种生活方式。但是,这种误解会给人带来痛苦,这也是为什么值得花精力去揭露这里面的内幕。

一个逐渐普遍的现象:对开源硬件的不断尝试,不管是Canonical,Jolla,MakePlayLive,或者其他公司。无论是评论员或是终端用户,通常自由软件用户都会为新的硬件平台发布表现出过分的狂热,然后因为不断延期有所醒悟,直到最终放弃整个产品。

这是一个没有人获益的怪圈,而且常常滋生出不信任 - 都是因为一般的Linux用户根本不知道这些新闻背后发生的事情。

我个人对于把产品推向市场的经验很有限。但是,我还没听说谁能有所突破。推出一个开源硬件或其他产品到市场仍然不仅仅是个残酷的生意,而且严重不利于新进厂商。

寻找合作伙伴

不管是数码产品的生产还是分销都被相对较少的一些公司控制着,有时需要数月的预订。利润率也会很低,所以就像那些购买古老情景喜剧的电影工作室一样,生产商一般也希望复制当前热销产品的成功。像Aaron Seigo在谈到他花精力开发Vivaldi平板时告诉我的,生产商更希望能由其他人去承担开发新产品的风险。

不仅如此,他们更希望和那些有现成销售记录的有可能带来长期客户生意的人合作。

而且,一般新加入的厂商所关心的产品只有几千的量。芯片制造商更愿意和苹果或三星这样的公司合作,因为它们的订单很可能是几十上百万的量。

面对这种情形,开源硬件制造者们可能会发现他们在工厂的列表中被淹没了,除非能找到二线或三线厂愿意尝试一下小批量生产新产品。

他们也许还会沦为采购成品组件再自己组装,就像Seigo尝试Vivaldi时那样做的。或者,他们也许可以像Canonical那样做,寻找一些愿意为这个产业冒险的合作伙伴。而就算他们成功了,一般也会比最初天真的预期延迟数个月。

磕磕碰碰走向市场

然而,寻找生产商只是第一关。根据树莓派项目的经验,就算开源硬件制造者们只想在他们的产品上运行自由软件,生产商们很可能会以保护商业机密的名义坚持使用专有固件或驱动。

这样必然会引起潜在用户的批评,但是开源硬件制造者没得选,只能折中他们的愿景。寻找其他生产商也不能解决问题,有一个原因是这样做意味着更多延迟,但是更多的是因为完全免授权费的硬件是不存在的。像三星这样的业内巨头对免费硬件没有任何兴趣,而作为新人,开源硬件制造者也没有影响力去要求什么。

更何况,就算有免费硬件,生产商也不能保证会用在下一批生产中。制造者们会轻易地发现他们每次需要生产的时候都要重打一次一模一样的仗。

这些都还不够,这个时候开源硬件制造者们也许已经花了6-12个月时间来讨价还价。等机会终于来了,产业标准却已经变更,于是他们可能为了升级产品规格又要从头来过。

短暂而且残忍的货架期

尽管面对这么多困难,一定程度上开放的硬件也终于推出了。还记得寻找生产商时的挑战吗?对于分销商也会有同样的问题 -- 还不只是一次,而是每个地区都要解决。

通常,分销商和生成商一样保守,对于和新人或新点子打交道也很谨慎。就算他们同意一个产品上架,他们也轻易能够决定不鼓励自己的销售代表们做推广,这意味着这个产品会在几个月后很有效率地下架。

当然,在线销售也是可以的。但是同时,硬件还是需要被存放在某个地方,这也会增加成本。而按需生产就算可能的话也将非常昂贵,而且没有组装的元件也需要存放。

衡量整件怪事

在这里我只是粗略地概括了一下,但是任何涉足过制造的人会认同我形容为行业标准的东西。而更糟糕的是,开源硬件制造者们通常只有在亲身经历过后才会有所觉悟。不可避免,他们也会犯错,从而带来更多的延迟。

但重点是,一旦你对整个过程有所了解,你对另一个开源硬件进行尝试的新闻的反应就会改变。这个过程意味着,除非哪家公司处于严格的保密模式,对于产品将于六个月内发布的声明会很快会被证实是过期的推测。很可能是12-18个月,而且面对之前提过的那些困难很可能意味着这个产品永远都不会真正发布。

举个例子,就像我写的,人们等待第一代Steam Machines面世,它是一台基于Linux的游戏主机。他们相信Steam Machines能彻底改变Linux和游戏。

作为一个市场分类,Steam Machines也许比其他新产品更有优势,因为参与开发的人员至少有开发软件产品的经验。然而,整整一年过去了Steam Machines的开发成果都还只有原型机,而且直到2015年中都不一定能买到。面对硬件生产的实际情况,就算有一半能见到阳光都是很幸运了。而实际上,能发布2-4台也许更实际。

我做出这个预测并没有考虑个体努力。但是,对硬件生产的理解,比起那些Linux和游戏的黄金年代之类的预言,我估计这个更靠谱。如果我错了也会很开心,但是事实不会改变:让人吃惊的不是如此多的Linux相关硬件产品失败了,而是那些虽然短暂但却成功的产品。

注:本文翻译和校对时,误将“free software”翻译成了“免费软件”,得 @比尔盖子V 的指正,应该翻译为“自由软件”。有关“免费软件”和“自由软件”的辨析,可以参考如下:

自由软件的英文为“free software”。“free”在英文中有“自由”(freedom)、“免费”(free of charge)的双重含义,因此![]()自由软件要如何分辨“自由软件”(free software)和“免费软件”(freeware)呢?

自由软件运动的创始人——理查德·斯托曼提供了以下的定义:

“free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”,中文译文:自由软件的重点在于自由权,而非价格。要了解其所代表的概念:你应该将“free”想成是“free spech”(言论自由)中的“free”(自由),而不是“free beer”(免费啤酒)中的“free”(免费)。

更精确的说,自由软件代表电脑使用者拥有选择和任何人合作之自由、拥有掌控他们所用的软件之自由。在GNU宣言(GNU Manifesto)中包含了斯托曼在一开始对自由软件使用定义的混淆。——来自百度百科


via: http://www.datamation.com/open-source/what-linux-users-should-know-about-open-hardware-1.html

作者:Bruce Byfield 译者:zpl1025 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在过去的15年内,Linux桌面从一个还算凑合的边缘化解决方案集合发展为一个独特的创新来源和选择之一。它的标准特点中有许多是要么不适用于Windows系统,要么就只适合作为一个专有的扩展软件。因此,使用Linux愈发变得不仅是一个原则问题,也是一种偏好。

然而,尽管Linux桌面不停在进步,但是仍然存在差距。一些特点正在丢失,而一些已经丢失了,还有一些令人惊喜的附加功能可以轻易地提升桌面体验,而不用挑战用户的容忍度。

比如说,以下是7个有利于Linux桌面发展的改善建议:

7. 简单的Email加密技术

如今,各种Email阅读器从Alpine到Thunderbird再到Kmail,都带有Email加密技术。然而,关于它们的文档手册通常是不存在或者非常简陋。

但是,即使你了解加密理论,但是使用起来仍然很困难。这些控件通常分散在配置菜单和选项卡中,需要为所有你需要和想要的设置进行一次彻底的搜索才行。如果你未能进行适当的加密设置,通常你找不到任何有用的反馈。

易用性方面最接近的是 Enigmail ,它是一个带有面向初学者的设置向导的Thunderbird扩展。但是你一定要知道怎么用Enigmail,新的加密设置菜单埋藏在撰写窗口里一级菜单下,和其他选项混在一起,这让日常用户很迷惑。

不管是那种桌面环境,如你所知的,你应该对邮件加密,今天对安全和隐私的媒体不断报道让你知道加密有多重要。

6. 虚拟工作空间缩略图

不需要额外的显示器,虚拟工作空间提供了更多桌面空间。然而,尽管它们很实用,但是虚拟工作空间的管理并没有在过去十年发生改变。在大多数桌面上,你能通过每个工作空间上的pager程序(一个提供很少指示除了它的名字和数字的简单矩形框)来控制它们 -- 或者,在Ubuntu的Unity 环境中,可以指出哪个工作空间是当前激活的。

确实,GNOME和Cinnamon能提供出不错的视图,但是它们的实用性受限于它们需要显示屏大小的事实。而 KDE 写出内容列表则和主流的图形桌面不太协调。

一个比较不错的解决方案应该是鼠标悬停在足够大的缩略图上来获取正常的视图,这样就精确地查看每个工作空间上的东西了。

5. 一个合用的菜单

现代型桌面很久之前就已经舍弃了级联子菜单铺满整个桌面的经典型菜单了。如今,一般的电脑都有太多的应用程序以至于不能适应这样的模式。

糟糕的是,没有什么主要的替代品能与经典型菜单一样方便。把菜单根植于一个单一的窗口,其效果是不理想的,因为你要么必须截掉子菜单要么就用鼠标不断地调整窗口大小。

但是全屏幕菜单的产品还要差,这意味着你甚至要在开始工作之前就调整屏幕,并且哪个搜索框其实只在你已经知道什么应用程序可用的情况下才有用 -- 这种情况下你还不如直接用命令行。

坦白地说,我不知道拿什么来解决这个问题,OS X下的spinner racks吗?我可以肯定地说,所有现代型菜单产品在桌面上呈现出一个个精心构造的图标似乎更是一个合理的选择。

4. 一个专业的、实惠的视频编辑器

多年来,Linux已经慢慢地填充了软件生产力上的空白。然而即便如此,它仍然缺少价格合理的视频编辑软件。

问题不在于没有这样的自由软件。Maya 是动画产业的标准之一,但是问题在于这样的软件的售价达数千美金。

另一边,比如Pitivi或者是Blender这样的免费软件, 它们的功能性 -- 尽管它们的开发者足够的努力 -- 只能保证基本功能。虽然取得了进步,但还是和用户们所期望的相去甚远。

尽管我听说一些非主流的厂家使用的是原生态Linux视频编辑器,原因通常是因为他们抱怨其它编辑器不好,但其余的人更愿意减少麻烦,从而在其它操作系统上对视频进行编辑。

3. 一个文档处理器

有一个极端是,那些需要进行文字处理的用户,Google Docs就让他们满意了;而另一个极端是对于那些排版设计的专家来说,Scribus是唯一比较可行的应用。

这两种极端之间还有一层,是那些比如那些写作很长的文本的文件的出版商和作家。这类用户有些是由基于Windows的 Adobe FrameMaker 来服务, 有些则由基于Linux的LibreOffice Writer来服务。

不幸的是,这些用户显然不会优先考虑LibreOffice,Calligra Words, AbiWord或者是任何其它的办公套件。应该提供给用户的办公套件的特色功能包括:

  • 为每个文件建立引用书目数据库。
  • 表格的样式能和段落与字符保持一致。
  • 除了页眉和页脚,带有持续性内容的页面样式,在每次使用样式时都一样。
  • 交叉引用存储格式,以便不需要每次都手动创建。

无论是LibreOffice还是其它同类应用,提供这些特色功能与它们是否可用是并不相干的。但是没有它们,Linux桌面对于一群潜在的用户来说就是个不完善的东西。

2.彩色标题栏

浏览器的扩展软件向我们展示了彩色编码标签对于工作空间的作用。打开了八九个标签后,它的标题栏就看不全了,所以颜色通常是最快区分标签关系的方法。

同样的系统也能用到桌面上。更好的是,彩色编码也许可以按会话保存,允许用户同时打开某个任务所需的所有应用。到目前为止,我知道没有任何一个桌面有这个特点。

1. 图标栏

多年以来,Stardock公司一直销售着一个名叫 Fences 的扩展软件,它用来分类和组织桌面上的图标,你能用它给每个组取名并且可以把每个图标都放在一起。另外,你可以指定不同的文件类型自动加入到一个组里,并且按个人需要来隐藏和整理。

换句话说,fences让用户整天在桌面上干的事情自动有序地分组排列。然而,除了一两个小功能与KDE的文件夹视图类似之外,fences的功能仍然没有出现在Linux桌面上。这也许是因为开发人员把注意力放到移动设备上作为灵感来源,而使用fences无疑是传统工作站桌面的一大特征。

我个人的列表

我做了这种列表之后,让我震惊的是这些不多的改进都是普适性的,其中几项改进将会吸引大量特定的用户,只有一个是来自专有软件的移植,其中一个至少是修饰性的而不是功能性的。

这一观察表明,对于普通用户来说,Linux能添加的功能已经所剩无几了。作为一个通用的桌面,Linux从几年前到现在都很多元化,到今天,用户能从超过半打的主流桌面中选择出一个来使用。

当然这不意味着,一些专家就不会有其它意见。另外,没有人会关心不断变化的需求会不会使改进令人满意。但是它意味着这份充斥着改进建议的名单上的许多项目将会高度个人化。

所有这些都是为了抛砖引玉:你认为还有什么其它的对桌面有益的建议吗?


via: http://www.datamation.com/open-source/7-improvements-the-linux-desktop-needs-1.html

译者:ZTinoZ 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

NeoBundle 是一个 Vim 的插件管理器,以 Vundle 为基础(Vundle 是一个基于 Pathogen 的 Vim 插件管理器)。在之前的文章中,我非常不推荐使用 Neobundle,原因是它当时还处于高速开发阶段(LCTT:意味着不稳定、变数大),并且当时它的英文文档很少。现在,已经过了一年多了,这两个问题都早已不再是问题。

我们为什么要使用插件管理器?Vim 支持大量插件,但是由于它没有严格定义框架,插件的文件可以胡乱分布在不同目录下,导致用户管理起来会很困难(LCTT:当然,前提是你有很多插件,还有点小小的强迫症,觉得理一理这些插件心里会舒服点)。而一款插件管理器能让管理变得简单许多。Pathogen, Vundle 和 NeoBundle 的工作就是为不同插件建立一个目录,然后将这些目录扔到 ~/.vim/bundle 目录下。这个文件整理方法可以让你方便彻底地删除插件,使用 'rm -rf <插件目录>' 或直接在文件管理器里面把插件所在的目录删除就可以了,绝对绿色环保无残留。同时,这种方法还能最大程度避免插件与插件之间的不兼容性。

NeoBundle 是一个基于 Vundle 的项目,如同 Vundle,它们都可以安装和升级插件。然而 NeoBundle 的说明文件上明确指出:“NeoBundle 不是一个稳定的插件管理器,如果你想要一个稳定的,请选择 Vundle”。最新的 release-note 上也有警告“可能会造成兼容性问题”——这是一个开发者写的注解,说明这个管理器还不能让人放心使用。

所以,我们为什么要使用 NeoBundle?它都不能保证稳定运行!好吧,它还是有可取之处的。Vundle 只支持 Git 这种版本控制系统,而 NeoBundle 可以支持 SubversionMercurial。另一个原因是如果你不想插件升级时破坏你的 Vim 生态环境,你可以锁住 NeoBundle,让它只使用某个插件的固定版本。

另外,NeoBundle 创建者,Shougo Matsuishita(LCTT:名字看着像日本人),正在将它的命令接口添加到其他插件项目,以便减少他们的命令使用量。现在 NeoBundle 支持3种插件:unite.vim,Vim 使用的文件和缓存管理器;vimshell.vim,Vim 使用的脚本程序;vimproc.vim,运行于 vimshell.vim 中,用于对异步事件的支持。上面说的都是特殊案例,缺少英文文档,所以用户希望有人能完善它们。在正式使用它们之前,我们需要把注意力先集中在一些基本操作上。

安装并初始化 NeoBundle

NeoBundle 支持 Vim 7.2.051 或更高版本,需要 git 和 cURL(用于下载文件)。你可以手动下载 NeoBundle,也可以使用 cURL 下载它在 GitHub 上的库。在你的 home 目录下使用如下命令,可以将 NeoBundle 插件下载到 .vim/bundle/neobundle.vim 目录里,然后 NeoBundle 就能管理它自己了。

curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh

你还需要修改 .vimrc 文件。NeoBundle 的 GitHub 主页提供一个 .vimrc 范本,但是直接使用这个范本,NeoBundle 需要你安装5个可能不需要插件。如果不需要它们,你可以使用下面的最小配置:

if has('vim_starting')
set nocompatible    
set runtimepath+=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()
filetype plugin indent on

上述配置的作用是:启动 NeoBundle 并且像其他插件一样升级自己。NeoBundle 默认从 GitHub 下载并升级,如果你正好在使用 GitHub,你只需要为这个插件指定维护者的用户名和路径。在上面的配置中,NeoBundleFetch 只需要指定为“Shougo/neobundle.vim”,而不是完整的 GitHub 路径。如果你想使用其他网站,比如是 Subversion 或 Mecurial 的网站,你就需要添加完整的 URL。

如果你想安装其他插件,你可以使用下面的命令:

curl -k https://github.com/[项目维护者]/[插件路径] > ~/.vim/bundle/[插件路径]

举个例子:你想安装 vim-abolish,一个超级 NB 的文本搜索和替换插件,就使用下面的命令:

curl -k https://github.com/tpope/vim-abolish > ~/.vim/bundle/abolish

如果要让它自动升级,在 NeoBundleFetch 那行下面添加一行:

NeoBundle 'tpope/vim-abolish'

再介绍一个小技巧:你可以为插件指定一个分支或版本号。什么意思?NeoBundle 只会使用这个插件的某个分支或版本,而忽略其版本更新。如果你使用的某个插件处于高速开发过程,你就可以使用这个技巧,避免用到有 bug 的插件版本。举个例子:

NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }

还有一个技巧:在 .vimtc 文件内添加一行关于“NeoBundleCheck”的属性。NeoBundle 会根据配置检查没安装的插件,并提示你安装它们。你也可以使用命令“:NeoBundleInstall”(LCTT:这是要在 Vim 编辑器的命令模式下输入)来安装或升级插件。

NeoBundle 用法

很多 NeoBundle 命令用起来和 Vundle 类似,但命令的名字不一样。下面是 NeoBundle 命令的用法:

  • :NeoBundleUpdate:安装或升级插件,如果你手动把一个插件的目录删除了,这个命令会重新安装这个插件。在这个命令后面加上插件名称,就只升级一个插件;不加参数,会将所有己安装但没被记录在案的插件给记录下来。:NeoBundleInstall 命令效果相同。
  • :NeoBundle {REPOSITORY URI} [[REVISION}] [,OPTIONS}]]:将一个插件锁定到固定版本,防止胡乱升级。
  • :NeoBundleList:列出所有未初始化的插件。
  • :NeoBundleClean:进入交互界面,删除插件。

这些命令在配合 unite.vim (LCTT:就是上面举过的32个例子之一)使用时,效果会稍微有些出入。你可以使用“:help neobundle”命令了解更多信息。

是否使用 NeoBundle,自己决定

NeoBundle 是强大的工具,正处于高速开发状态。任何处于这种状态的项目,都会被帖上“有前途”和“不稳定”两个标签,看你自己怎么选。如果你想要最新的稳定版本的插件,NeoBundle 能够把 Vundle 和 Pathogen 甩出几条街。

然而在线帮助文档已经给出警告,它不是个稳定的产品,不及时更新版本可能造成一些插件运行出错。最后,你需要在 .vimrc 文件为你的 Neoundle 和其他插件指定一个稳定的版本。记住这警告,然后你可以在使用这些尖端技术产品时游刃有余。


via: http://www.openlogic.com/wazi/bid/348084/Managing-Vim-extensions-with-NeoBundle

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出