玩坏的Bad Apple之Vim

      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

原文地址:https://www.cnblogs.com/mayuko/p/4567670.html