• 订阅

    抓虾
    google reader
    bloglines
    鲜果
  • 分类目录

  • 功能

  • 标签

    不折腾 价值 健身 回忆 小说 幼稚的思想 影评 感想 推倒 朝花夕拾 犯罪 理想生活 生活 电影评论 看电影 看病 社会 社会事件 笔记本 网络 言论自由 过年 随想 黑客 黑客小说 AV女优 blog BotCalk cult festival Fvwm gloobus GMChess gmitter GMLive gtkmm iCalk iTalk M8 ppstream program soft talkmm twitter vim
  • Archive for 三月 23rd, 2009

    lazyword简易版本(shell版本)

    星期一, 三月 23rd, 2009

    linuxdesktop上tx介绍了一个新软件,叫lazyword, 用来不知不觉背单词的。我觉得它提的那个概念极好,就是复习stardict查询过的单词。虽然还处于预览阶段,不过我还是去下载了。
    才发觉它不是我那杯茶。不是说他不好,我绝没这意思,只是我这人从来尽量不用qt的东西的。何况是qt的开发环境呢,所以lazyword也就编译不了了,它是基于qt4.5的。二来它未必考虑sdcv的情况吧,这点未证实。
    于是无聊就写了个脚本,实现定时显示sdcv查询过的单词,也算是lazyword的简易版本吧。

    #!/bin/sh
    #lazyword easy version by lerosua
    book=~/.sdcv_history
    stime=15000
    itime=100
     
    while [ true ]
    do
    line=`wc -l $book |awk ‘{print $1}’`
    num=`expr $RANDOM % $line`
    word=`sed -n "${num}p" $book`
    content=`sdcv -n $word`
    notify-send -t $stime "$content"
     
    sleep $itime
    done

    脚本主要依赖sdcv(stardict的命令行版本,平时我用它查询单词),notify-send(显示notify用)。 每一百秒显示一次查询过的单词,每次显示15秒。
    没有用sdcv的朋友可以自定义单词本,换掉book变量即可。单词本要求就是一行一个单词而已,时间也可以随便定义。都是很简单的语句,大家都明白,自取所需吧。
    更新:如果是使用sdcv的历史记录作为生词本的话,有可能出现漏词的现象,而查询过多次的情况下,这词就重复出现两三次而把其它没查过的词挤掉。解决的办法是取出这个词马上把它从历史记录中删除掉,不用担心,因为后面用sdcv查询一次就会加上。而这样也能让单词本流动从而使随机取得的单词更完善(我想象的)。
    在取得word后面加上这句就行了:

    sed -i "${num}d" ~/.sdcv_history

    实际上可以直接写成$book的,但我怕某些人不小心删除掉它自己的单词本就不好了。这样可以表明这是sdcv_history专用的,也不怕人误用了,呵呵。