玩坏的Bad Apple之Vim

本文介绍了Vim作为类Vi编辑器中的佼佼者,及其在2000年赢得最佳开放源代码文本编辑器大奖的情况。同时提供了BadApple代码示例,展示了如何在Vim环境中运行字符版BadApple。

      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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值