《拿起画笔,描绘你心中的Vim》补充说明

Ame网友的 拿起画笔,描绘你心中的Vim 引发了很多讨论。为此,把我之前准备发布的文章及邮件往来也发出来。


网友Ame非常热情地来信,标题是『请您完善Vim对中文的支持』,让我大吃一惊。经过沟通后才明白:
* 他的目标:建设更适合中文用户、非编程用户的gVim;
* 具体建议:
  * 对非等款字体(比如雅黑)的支持;
  * 非utf-8的优化;
  * 精简安装包,如ole。
  * 增加必要插件,如vimwiki。

我认为最低可以修正两处硬伤:(因为该问题在 vim 7.2 时代都解决过)

1. gVim对非等款字体的支持;
2. gVim对金山词霸取词的支持

下面是 2010-09-08 开始,Ame与xbeta的邮件往来。发出来,一是听取意见,二是寻求有编译能力的志愿者。

邮件1:from Ame

你好,我是一名善用佳软的读者,看了贵博的文章后我开始学习Vim。和您一样,我主要用Vim进行中文处理和网页编辑,因为自己也算半个小站长吧,呵呵,但是您有没有注意到呢,官方版的Vim对中文支持非常疲软。

首先它不支持非等宽字体,自然就不支持微软雅黑。虽然编译后可以。但对像我这样非程序员的群体来说,这实在是个不可能完成的任务。而有此能力的程序员,专注于代码而非中文处理,多半也无此要求。

事实上我从 http://lcuc.org.cn/node/1315 下载了编译后的72版本Vim(那还是08年的),然后从官网上找到旧版安装包,覆盖安装后虽然能从命令行打开微软雅黑(gui选择界面里还是没有),但把字体放大仔细观看还是有很多瑕疵。

例如:么,也,美 这些字,笔画上有明显的锯齿,这可称不上是完美的编辑器。

您大力推广这个强大的编辑器,实在是造福国人的举动。但是若Vim本身对中文的支持不能完美,推广也是白费力气。

请问您能否给出一个完整的解决方案呢?Vim实在非常繁复,有个性化的需求就涉及编程。如果我们是程序员,那我们可以自己解决。但若真是程序员,也不用别人来告诉我们Vim是什么,呵呵。或者您指出我们可以到哪里找到这个解决方案,也许我的做法有误。但我已经付出数十个小时在google上搜索,我相信在非程序员群体中,自己还算是有点小技术的,但是我求不得这个问题的解。

多谢您看完这封冗长的邮件 🙂 期待您的回应。

邮件2: from xbeta

Ame:

感谢你的信任。

如果说你『在非程序员群体中,自己还算是有点小技术的』,那么,我属于完全不懂编程、开发的。
所以,我的选择更少,因而结论更简单:用其长,避其短;关注其进步,正视其缺陷。

比如,字体,界面,我本身就不关注。
说到对中文最大的不便,应该是分词——比如w跳转——那我就用鼠标。
某些插件对中文支持有问题,就忍着,或不用。

如果有更大的实际需求遭遇了更大的困难,放弃vim也并非不可能。

我们的生活并非完美,Vim也一样。
我们只追求产出的完美,不要追求工具的完美。

Just use the unperfect Vim to create your best website.

邮件3: from Ame

如果可以的话,您可以倡导这件事。我只是提议。如果一件事被证明是可行的,为什么不去将其完善呢。Vim编译后可以使用非等宽字体,也能区别中文和英文使用不同的字体。有一个帖子写过编译Vim来看电子书,可见Vim的可视化是能做的很棒的。

但是随着编码,字体,配置文件的不同,Vim的使用也千差万别。至今为止,关于Vim编译的资料零星散落在网上,给不懂技术的入门者带来很大不便。我的想法是:

1.整合一个面向一般人(非程序员)的整合包。
2.如果您做不到,可以和程序员社区合作。若是我这样默默无名的小字辈去倡导,可能帖子马上就沉了。:)

可以开展一个连接一般用户和程序员社区的活动。一般用户来提出易用性,运行环境等等的提议,然后携手打造一个真正面向所有人的中文化Vim。

这个Vim包可以维护在 code.google.com 上,我本以为一定有人已经做了这个计划,但现实让我失望了。

您说有要容忍必须容忍的缺点,但据我搜索的结果这并非不能解决的问题,只是一般人很难解决而已,因此这是一个提倡程序员和一般用户互助的问题。

如果实在不行的话,只好去拜托我当程序员的哥们了 XD 其实上个礼拜我就拜托他给我编译Vim,可是他说他做项目一天只能睡四小时,唉。

邮件4: from xbeta

您说得很对,我过于实用主义和消极了。
可能我对你提出的问题的技术可行性理解也有偏差,不过现在明白了,它是可行的。
另外,我也想到了一个例子:gvim @ windows 对金山词霸取词的支持情况,在v7.2也有人解决过,但v7.3又没人编译了。

这件事乐观讲,可能1周就找到志愿者。
不太乐观讲,随着提出的问题不断增多,或需要持续超过12个月管理协调。
而我在2011年3月之前,实在抽不出多少业余时间。

你如果愿意推进,我可以为你在 http://xbeta.info 开一个账号,来发文、更新文章、回复评论,以主导此事(我会协助)。
就象最近两位网友分别主持:
* 神逸之作:国产快速启动软件神品ALTRun(征求新版功能意见中):有 500+ 讨论
* 第一篇 群雄并起——文本编辑器的武林大会:有170+ 讨论一样。

如果你有把握,就直接行动。
如果没有把握,我们可以试着把这些邮件讨论发到 http://xbeta.info 和 水木vim版,看看大家的反馈。

有意义的事,就做起来吧。
即便是半成品,也要做成有利于后人进一步加工的半成品。

多谢你的热情。

邮件5: from Ame

谢谢您的信任: ) 我也很想主持这一行动。但说真的,我虽然从半年前就通过贵博了解了Vim这一存在,但真正把它作为工作中的重要工具还是最近一个月的事。自己对Vim的所知实在太少,我觉得还是让更了解它的人来主持,才不会让项目半途而废。

您可以把它和“群雄并起——文本编辑器的武林大会”合并起来,在介绍的同时推出一个整合Vim包,这不正是顺理成章的事吗?我会成为最热心的参与者的 : )

您在写作博文的同时,肯定考虑过文章受众的问题。确定受众正是SEM(互联网营销)最重要的一步。此项目的受众我认为可以定位为:“了解一定电脑知识,有兴趣为改善效率付出一定时间和精力,有使用纯文本编辑器的需要,但不懂编程,也没有大量时间耗费在编译和调整上的人群”。

这群人如个人站长(某机构统计的2600万),大学生,非技术的IT营销人士。应该是很庞大的!呵呵。以我为例,我用Vim最大的契机,就是用Word编辑的富文本,粘贴到网页编辑器中会变得乱七八糟,因此有了使用纯文本编辑器的需要,纯文本编辑器里有一大部分又是收费的,那么免费的哪些功能强大又容易入门呢?答案出来了——Vim。

而层出不群的问题会吓跑这群人。如果word不是太难用,可能我还在用word,因为分分钟用来工作都能换来钞票,为什么要浪费在调试一个编辑器上呢。

就Vim来说,我们可以花时间去适应快捷键,花时间去写一些宏和脚本,写vimrc,因为这些能提供工作效率,但我们喜欢它能够稳定的工作,在发挥强大的自定制功能之前,首先能做好一个编辑器的本分。因为我们不是程序员嘛。像我就在自带的vimrc的尾部写入自己的代码,这样不花时间,而且绝对不会出问题。

Vim官网提供的BIG版本,的确一定程度上能做到这种易用性,但是它不够本土化,而且最重要的是:它是面向程序员定制的。

而我们需要面向普通人定制的Vim
1.一个解压后即运行的编辑器,不管XP还是win7,不管utf-8还是cp936都能完好运行,显示相同的结果。(可能需要不同的vimrc吧)而且用户最好不需要懂得什么utf,那太麻烦了 XD

要是安装的时候能自动识别环境就好了…

2.去掉c++,java支持以及什么ole,精简安装包。让它变得简单易懂(每一个部分是干什么的),强调其作为纯文本编辑器自身的功能。最多带个HTML语法支持就行了,当然这需要调查大众需求。

3.本土化。优化中文支持。(按google来的说法只要改下编译选项,在VS2010里重新编译一遍就能支持非等宽字体)我现在用修改版的gvim72虽然能调用微软雅黑,但笔画有锯齿,而且英文显示惨不忍睹…试图在vimrc中写入双字体支持,却发现需要vimrc格式为utf8,而调用雅黑需要格式为cp936囧…说真的,大多数人走到这步绝对会直接放弃了。

一个文本编辑器,字体(外在显示效果)是最基本也是最重要的部分。word的home选项卡最明显的部分放的就是字体调整。也许程序员不在乎,但是一般用户在乎。

4.加入一些必须的,配置好的插件。比如Vimwiki之类。

我只想到这么多,总之就是把它从一个面向程序员的软件,变成面向普通人的编辑器吧(加上本土化),这种感觉,呵呵。就算有一些问题短时间在技术上无法解决。大方向我认为是值得努力的。

这是一个可以长久运作的项目。我认为它和“群雄并起——文本编辑器的武林大会”是很搭的。大可以一起运作 🙂 作为一个下属的技术项目。

拿起画笔,描绘你心中的Vim(来自Ame的倡议)

[image]
我有一个梦想!
我梦想有一天,Vim不再仅仅是程序员的宠儿,而成为尽人皆知的编辑器。当我打开国内软件下载站的页面时,能看到右图这样的画面。

这不可能吗?现在的Vim的确不可能。但一个完全面向普通人的Vim呢?

1. 所谓的文本编辑器

维基百科中“文本编辑器”一词定义如下:文本编辑器是用来编写纯文本的计算机软件。操作系统和软件开发包往往都提供文本编辑器,用以修改配置文件和程序的源代码。百度百科则说的更直白:文本编辑器(或称文字编辑器)是用作编写普通文字的应用软件,它与文档编辑器(或称文字处理器)不同之处在于它并非用作桌面排版(例如文档格式处理)。它常用来编写程序的源代码

看到了吗?文本编辑器原本就是程序员的禁脔,想用它们编辑纯文档的普通用户,就像误入童话王国的Alice一样,不是那么受欢迎的。

但Vimer的心胸依然宽大,煞费苦心在桌面上放置了easy模式,还翻译了准确的中文帮助——这一切对程序员来说都不是必须的。我们要感谢Vim社区的良苦用心,但同时也要看到,(即使经过种种努力)Vim依然是一个面向程序员,而非普通用户定制的程序。

2. 普通用户和程序员的需求差异

普通用户和程序员对编辑器的要求南辕北辙。程序员写代码,一般人写文档。程序员用英文多,一般人用中文多。程序员需要IDE整合,语法高亮,编译支持。而一般人仅仅期望通过可自定制的vimrc,快捷键,宏和少许插件提高工作效率,并且没有太多时间花费在处理软件问题上。不同需求,自然需要不同的整合方案来解决。
就像下图所示:
[image]

熟悉Vim的老手都知道,Vim.org提供的整合安装包(即Vim73.exe)只是一个大众化的BIG版本,其中很多功能没有开启。他们鼓励程序员下载源码编译出适合自己的程序。例如Vim一直为人诟病的等宽字体问题,实际只需要改动make文件中的一个选项,重新编译一遍即可。既然个性化定制Vim可行,为什么不把它改造成适合大多数人的程序呢?这并不等于失去Vim最重要的特性——高度自由,事实上在谈论自由之前,我希望它能做好一个软件应尽的本分。

3. 我的建议

因此我提议搜集整合大家的意见,塑成一个大伙心目中完美的Vim模型,然后提交开源社区,招募志愿者编译代码。项目可以维护在code.google.com上,随着意见的不断丰富,完善,同时随着Vim主版本的升级可以不断推出升级版本。其核心围绕两点展开:

1. 面向普通用户优化。
2. 中文支持优化。

一些需求,例如中文分词问题,连google都不能完美解决。可以把它写在项目首页上,留待技术的进步。

先说说我想要什么样的Vim吧!

? 在任何系统下完美显示微软雅黑
? 不要再问我设置什么cp936和utf-8,即使不研究这些东西,我的脑袋也快炸了 : X
? 精简安装包,除HTML外去掉其他语法支持。
? 进入插入模式自动切换成中文输入法,退出到编辑模式时自动切换成英文输入法。

切换模式自动切换输入法,似乎改动vimrc就可以,但假如我不写这篇文章,即使过去十年,二十年,可能依然会傻呵呵的Esc之后ctrl+space。为什么?因为Vim的源程序是面向程序员定制的,程序员写代码根本就不存在切换输入法的问题。但对普通用户来说这却是最棘手,最麻烦的问题。因为它完全抹杀掉了双模式操作的优点。几乎是致命的。假如我们面向普通用户制作的Vim天生就集成这一功能,就能让新上手的用户也能体验到Vim的强大!

那么还等什么,让我们拿起画笔,描绘自己心中的Vim,把大家的愿望化为现实吧!好Vim,不做吗?XD

xbeta注: Ame的热情可嘉,我很支持。因为我自己就是一个非编程用户,最早的一篇Vim文章 《普通人的编辑利器——Vim》,也是为了纠正“只有程序员才适合用vim“的偏见;只是限于个人能力,多取适应vim的策略,没敢像Ame这样激进,准备改造Vim。但只要行动起来,还是有希望的。