Vim7.3发布

IdeaPad Y460送修之前,Vim7.2用得一直很好,所以最近也就没到Vim的网站上看。今天由于要暂时用老笔电写写程序,于是去看了一下,发现Vim7.3在8月15日发布了。

Vim官方网站:http://www.vim.org/

//

翻译:

[2010年8月15日]经历两年的攻坚,新版Vim终于面世。它包括大量错误修复和许多新特性,将比以往的版本更好。详请参阅声明(发布于Google Group,被GFW墙)或直接访问下载页面。(Bram Moolenaar)

//

啥时候默认Unicode一下啊……另外如果能用GUI设置而不用老编辑配置文件就好了。

推荐两个Python指导资料吧……

其实私一直很想推荐了,不过出于种种原因一直也没说。今天说一下吧……

这两个都是关于Python语言的教材(或者叫指导?),得先介绍一下Python。

Python是一种简单易用的解释型高级语言(也可以被粗略地分类为“脚本语言”)。所谓解释型,简单说就是无需事先生成二进制码,而是在运行时由其他语言“解释”成二进制码,再交由计算机执行。不同的平台上解释器可能不同,但是程序的源代码是相同的,因此只要带好源代码就可以在装有Python解释器的任何一个平台(包括Windows、Unix、类Unix以及很多私从未听过的平台)上面运行,同时由于解释器帮您承担了硬件调配工作,您可以专注于程序本身而不是如何管理内存等等操作。当然坏处也是显而易见的:执行效率肯定不如能精确控制内存和核心的C血统语言。

Python3.x发布之后由于有许多关键性的修正,不再与之前的版本兼容。所以目前2.x、3.x都有人使用,并且相对来说2.x可能用的人更多。不过如果您是新手,建议还是学习3.x,从此之后可以和编码的困扰永别了,对私这样的懒人真是一大福音。

说了这么久,终于到正题了……

首先是《非程序员 Python 编程概念》(对应python3.x)。地址在这里:

http://code.google.com/p/hashao/wiki/ChinesePythonTutor

这是迄今为止私见过的最简洁最好玩的Python教程。文风幽默、比喻精当、内容扼要。内容非常短,私以为快的话大概几十分钟就可以看完,但却介绍了Python大部分功能的基本用法(当然各种内置函数(Function)和方法(Method)是不可能在这么短的文章中解释清楚的),非常适合从未接触Python语言的人来一个概览。

比如里面有一段话:

“在Python里,次序是从0开始数的,开始是0,然后是1,2,3,4,5,所以上面的列表 alist的第一个内容,可以用alist[0]来提取,第二个用alist[1]来提取。就像年龄一样,一生下来是零岁,一年以后才是一岁,不是中国传统那样,生下来就一岁,那是虚岁。蟒蛇语言他只认准确的东西,不玩儿虚的。”

是不是很好玩?

当然,既然叫做“非程序员编程概念”,就是说只能让您理解主要概念,因而即使您看完了全文还并不能真正很好地编程(当然如果您就写个等差数列求和那是绰绰有余了),所以在文章的末尾,作者还推荐了一些教材,都是好书(并且好多都是中文版),深入学习很有好处。

不过私个人还是要推荐下一本书……

下一本,是Python界大名鼎鼎的《A Byte of Python》,官方网站在这里:

http://www.swaroopch.com/notes/Python

写这本书的是个印度人,叫Swaroop,那个SwaroopCH是他的官方网站,他还有一本书叫做《A byte of Vim》,是教Vim编辑器的。

《A Byte of Python》中文名为《简明Python教程》,有对应python2.x和3.x的版本(均可在官网找到),不过for 3.x的是没有中文版的(至少私没有找到)。其实中文版必要性并不太大,因为这本书的语言非常简洁(虽然一点也不幽默),用的语法也很简单,最多就是几个单词(术语)不容易认,稍微查查字典就可以了(而且您英文不认识的话翻译成中文还真未必明白,因为很多是术语)。大概看官们有知道私E文水平的,私这家底都能看,您还担心什么呢?

这本书同样是指导性质的书(而非参考性质,这点很重要),不过里面讲的可就系统多了,私以为完全可以作教材使用(相比之下Python的官方Tutorial倒是晦涩不少)。当您阅读完全书之后,最后一个任务是编写一个文本地址簿程序,如果您很快想到用什么方法并且最终实现的话,基本可以说您就掌握了Python的基础技巧。不过正如文中所说,这是“起步阶段的结束”,未来的路还很长,活到老学到老,大概……

嗯,先写这么多吧。有意者无聊者都可以去看看,两本书(和里面提及的参考资料)都是不错的。

信手闲话:Python的函数/kubuntu10.10和KDE4.5/文本编辑器

信手闲话:Python的函数/kubuntu10.10和KDE4.5/文本编辑器

函数……果然是高级的玩意。高中时候就不太玩得好抽象函数的变换,没想到这一悲剧竟然延续到了编程上面(请忽略私的偷换概念)。

比如私搞不懂为什么python的函数不允许给第一个变量赋默认值,搞不懂keyword-only parameter的作用,搞不懂parameter和arguement的区别,等等……

于是乎……果然还是有不少要学的东西。

/

在虚拟机里装了kubuntu10.10 alpha2,默认环境KDE4.5。很多很好的改变,比如托盘展开被Windows带坏了,比如多了个Webkit浏览器(虽然兼容性远不如Google Chrome),再比如多了个默认输入法配置程序(虽然是个GTK程序),都让kubuntu用起来轻松多了。

/

私在用Vim写这个。不过其实真正用来写网志的编辑器是Emacs。Emacs几乎能称得上是一个小型操作系统,功能真的很多,并且居然支持“超文本咖啡壶控制协议”(顺带一提,这是个IETF的恶作剧,另外其中定义的一个错误叫做“我是茶壶”,参见这里)。只可惜弄来弄去都学不会那里面的一些热键,最后还是只能暂时用着Vim,有时间私会再去学的。

KDE下有个文本编辑器叫做kate,也是很不错的,至少它的图形界面(菜单和图形化的设置界面)是做得最到位的。真希望kate能和Vim的特性合起来。 #这里私补充一下,新版本(KDE4.2以后)的kate有一个Vi input mode,可以用Vi(Vim)的方式进行编写。可惜的是kate没有windows版,所以目前似乎只能Vim一条路走到黑了。

/

后记:貌似这几天都是每日一志的样子呢。记得“编程随想”大神最初创立网志原因之一就是为了逼自己写点东西,私的现状和他颇为相似。不过不知私会不会和他一样最终让自己写东西变得容易些……

Vim部分配置

主要用Vim写普通文档和Python脚本,怕以后配置的时候忘了,先记下来。

设置默认打开路径:

cd <PATH>

设置检测若干种编码,且默认保存为utf-8(Win):

set fileencodings=utf-8,ucs-bom,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set fileencoding=utf-8(这行貌似可以不要)

设置自动缩进为四个空格:

autocmd FileType python setlocal et sta sw=4 sts=4

[转]Vim,Emacs排名不分先后

=============================
作者:jiqing
email: [email protected]
homepage: http://hi.baidu.com/jiqing0925
转载请保留作者信息
=============================

一同时提到vim和emacs,就几乎一定引发关于哪个更好的圣战。
据说这个圣战从很早就开始了,偶尔还会有windows下的ultraedit的用户来凑凑热闹。
这里我只讨论vim和emacs,忽略其它。
我的主张是,vim和emacs各有千秋,但是有哪个更适合你的问题。

说说我的切身体会吧,我一开始用的就是vim,用了两年vim,
几乎什么都是用vim编辑。手册也完整地学过一遍,也可以说有些功力了。
不过我始终觉得vim恐怕不是适合我的编辑器,使用它有时我的心情浮躁。

于是俺决定试用一个星期的emacs,虽然一开始觉得他的操作繁琐,
不如vim快捷,但它不知为什么能带给我平静的心情。
慢慢地适应了它的操作,觉得它的操作并不慢。
打开多个文件时,比vim便于管理。复制粘贴其实比vim更人性化。
当然编辑一个文件的效率和vim的极限操作是比不了的,
但我们大部分时间是在编写文档,而不是编辑文档。

虽然很快习惯并喜欢上emacs,但又舍不得放弃vim,
因为曾用很多的时间来学习和配置vim,vim的高效也确实不可替代。
于是俺决定一天用emacs,一天用vim(我很认真的,不要笑)。
但这种emacs和vim交替的日子只持续了5天。第5天,我用emacs的那天,
我忽然决定以后都用emacs了,不能再脚踩两只船了。

现在我的emacs一开机就开着,直到关机才会关闭。
不管编程还是写文档,我都在emacs里写。因为它的操作方式,
虽然较vim繁琐,但的确给我一种心如止水的感觉。
这种心静的感觉对于一个长时间对着电脑的人很重要的。
vim我并没有完全放弃,偶尔要编辑一些系统配置文件就用vim。

我绝对没有表达emacs比vim好的意思,只是发现emacs更适合我。
vim和emacs都很好,不是别的编辑器可以匹敌的。
只是emacs和vim真的是两种不同的风格,适合不同的人群。
如果你性格火爆,你可能会喜欢vim;如果你性格沉静,你可能更适合emacs。

只因为这两种操作方式太不同,所以引发了很多口水战。
很多时候是,如果一个人最先接触vim,就很难再转而去学emacs。
反之亦然。我这次从vim转到emacs就经历了很多的心理矛盾。

如果你只用过其中的一种,就鄙视另一种,是很不公道的。
我的建议是,最开始你两种都试用一段时间,先不要决定精通哪一个,
等有了足够的体会后再自己选择一个,选择后就努力精通它,习惯它。
达到没它不行的境界。但是,选择一个后,也不要攻击另一个的用户,
真的没必要。

如果Vim用IKJL或者WSAD控制上下左右……

……是不是就舒爽很多呢?

最近学Vim,老是分不清J和K哪个是上哪个是下。如果能把HJKL四个键用好的确能够提高效率,不过现在我选上选下的时候都需要考虑一下,有时还经常按错,让人有些无奈。

个人认为其实设计上把“H”键作为“左”并不是一个特别好的设计。键盘的常规指法是双手食指分别对着F和J键,如果要按H键,右手食指需要向左跨过一个键。大家可能也有体会,手指的前后运动要比左右运动容易很多,况且中指很长,向上按到I键非常容易;更重要的是I和J一个在上一个在下,不必费神去记住哪个是上哪个是下——当然Vim的前身Vi释出之时键盘上还没有方向键,不过方向对应的话或许更容易记住。

当然I键在Vim中默认已经被占用了(转换为插入模式),但该热键还有替代热键A和S(也许还有别的,但我还没发现),这两个键使用也相当方便,所以应该还是可行的。

关于WSAD……玩游戏的人肯定会乐意使用这个,不过大概最初的开发者是左手系的(和我一样,我很激动),所以四个键都被占了,而且d键作用很大也很明晰,不宜变动,所以……这纯粹是个想法而已。

最后……Vim有没有内嵌终端啊?找了好久都没找到……

Vim小巧强大,Python简洁明晰,应该是一对好搭档,而且又都博大精深。确实应该好好研究一下……