Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs同样都是非常优秀的文本编辑器。
Bad apple(vim)代码:
let s:data=readfile("data")
function! s:Build2DArray(n,m,v)
let res=[]
for i in range(a:n)
let row=[]
for j in range(a:m)
call add(row,a:v)
endfor
call add(res,row)
endfor
return res
endfunction
function! s:PrintMap(change)
for p in a:change
let i=p[0]-1
let j=p[1]-1
let s:map[i][j]=p[2]
endfor
for i in range(1,s:R)
let s=join(s:map[i-1],"")
call setline(i,s)
endfor
endfunction
function! s:Initialize()
let firstLine=split(s:data[0],' ')
let s:R=firstLine[0]
let s:C=firstLine[1]
set go-=T
if has("win32")
set guifont=Terminal:h9
else
set guifont=Free\ Mono\ 8
endif
:res 90
let s:map=s:Build2DArray(s:R,s:C,' ')
call s:PrintMap([])
endfunction
function! s:Start()
for line in s:data[1:]
call s:PrintMap(map(split(line,"|"),"split(v:val,'_')"))
redraw
sleep 70m
endfor
endfunction
call s:Initialize()
call s:Start()
然后,将Data文件放到和vim程序同文件夹中。
键入 :
:so%
回车
就可以看到字符版Bad Apple的运行画面了。
data文件及vim源代码下载:
http://pan.baidu.com/s/1dD097l3 提取码:9vdo
@ Mayuko