LeoEnvironment - Woodpecker Wiki for CPUG (original) (raw)

自然,方便的开发管理环境 **Leo's Home --主页**下载安装

Contents

  1. 文学编程
  2. Leo
    1. 开发体验
      1. @file
        1. @ignore
        2. @others
        3. 自动导入
      2. @root
        1. <
        >

        2. Tangle & Untangle
        3. @silent
        4. @thin
      3. @root vs. @file 树
      4. 更多节点控制
    2. 反馈
      1. Leo 安装
      2. 缺陷
      3. 技巧
    3. 体验
      1. 解决Ubuntu 下面Tk中文字体问题

文学编程

Leo

开发体验

通常的界面可以发现,Leo 仅仅使用了Tk 来实现GUI ,可以说是Python 中最轻巧,通用的GUI组织方式! File encoding: UTF-8 所有的文件是以 UTF-8 编码管理的! Leo 文件本身却是标准的XML文件! :leo0-snap.jpg
我喜欢的形式:通过菜单命令:"Window/Toggle Split Direction" 设置 :leo1-snap.jpg
Leo 4.0 以后,由于文章化编程的发展,已经实现了很多方便的功能! 不过在下仅仅学会了其中几种就感觉有些离不开了! 这种有强烈快感的杀手级工具,近日来就发现了 Scrapbook! FireFox 的资料管理插件! Leo 知道已经有两年了,可是一直没有使用起来....后悔! 仅仅用作分类记事本: :leo-regbook.gif

@file

@ignore

@others

自动导入

@language python }}}

@root

<
>

Tangle & Untangle

@silent



什么东西?研究之

@thin

大多数情况中 @thin 如同 @file 一样的工作. 实际上,你可以简单的将 @file 替换为 @thin 进行正常的 outline 操作.

这里是主要几点 @file 与 @thin 不同之处:

对于类似 LeoPy.leo 中的 @thin leoProjects.txt 文件,@all 指示符 是必须的. leoProjects.txt 文件包含所谓"工程节点" . 即,非程序文件:仅仅是些无关数据的简单收集.这时,@others 决不会工作: Leo 会抱怨有太多的 孤节点

比如说, 代替直接使用 LeoPyRef.leo , 我利用叫 LeoPy.leo 的复制品. 通过 @thin 节点指引所有本地工作文件.

@root vs. @file 树

@file 树比 @root 树使用起来方便很多:

  1. @file 树需要的指示符支持比 @root 树要少; 所有 @root 树中的章节都需要声明(而且不能重名,在同一文件中!), 而 @file 树常常包含很多非命名的章节节点. 在 @file 树中, @others 指示符 行为就象关联起所有非常命名的章节.
  2. 工作在 @root 树中,用户必须明确调用 Tangle 和 Untangle 命令. 而 Leo 会自动混入/出 @file 树 , 保存时混出所有变动到 outline, 重新打开 .loe 文件时自动混入所有修改从 outline.

但是, @root 树比 @file 树要 柔韧很多:

  1. 在 @file 树中, 章节必须是包含在子节点中的,而且引用点也是固定的.
  2. 在 @root 树中一个被声明的章节, 并不限制其可以在哪里被引用. 此外,@unit 指示符命令甚至于扩展了章节的引用, 可以不限制在一个 @root 树中! 即,你可以在一个 @root 中命名一个章节, 而在另一个 @root 树中引用(可以看作 节点的 clone 操作,只是在引用处看不到全部内容,除非混出为文件)
  3. 在 @root 中的章节声明,也不限制声明的地点.

@root 树与 @file 树不同之处在于:

  1. 只有 @root 树可以包含章节定义行(不过 @file 中可以使用 "<< class declarations >>"类声明的专用章节)
  2. 只有 @file 树可以包含 @others 指示符.
  3. @c 指示符 需要章节名出现在 @root 的节点标题树中.
  4. @c 指示符仅仅可以工作在 @file 树的体文本起始处.所谓 体文本是在 @root 中没有标记会被忽略,而在 @file 树是作为无命名的代码章节内容处理的节点正文文本.

更多节点控制

还是我找资料贴出来吧。是和@file相关的,不是和@root相关的。 by tomz

Users Guide-->Chapter 4: Writing Programs in Leo-->Appendix 1 to Chapter 4: Using @asis, @noref and @nosent trees

节点树类型 生成文件是否含结构标记注释? Derived files contain sentinels? 章节或是@others 支持?Sections and @others expanded?
@file yes yes
@nosent no yes
@noref yes no
@asis no no

反馈

Leo 安装

#terminal, 还是到X下运行的好.
#cd /path/to/leo
#chmod +x install
#./install
#apt-get install python-tk
#leo #这条是要到X下执行哦~~~否则是会产生原子的... ... 多了可就会生成原子弹了.

缺陷

技巧

体验

解决Ubuntu 下面Tk中文字体问题

Bind Tk8.5 在Ubuntu中给Py

缘起

又和 Tk8.4 绑在一起,所以在 Leo 中只能使用部分字体(主要不能使用支持边缘平滑的字体) 经过在 leo-editor 讨论组中搜索,发现了一篇相关讨论提到可以通过重新编译 Python 来实现 Tkinter 和 Tk8.5 的讨论,试验了一下果然可以,现把体验记载如下,以供喜欢Leo的朋友参考

处置

sudo apt-get install tk8.5 tk8.5-dev

1 import Tkinter 2 print Tkinter.TclVersion

将会看到的依然是8.4

因为 ubuntu 的 Tkinter 模块和 tk8.4 进行了捆绑,必须对 python 进行重新编译才可

从 Python 官方网站下载 python 源代码

依次进行:

./configure --prefix=/usr --enable-unicode=ucs4 make sudo make install

然后是

cd /usr/bin sudo rm python sudo ln -s python2.5 python

还可以从菜单 Cmds -> Picklers -> Show-Fonts 的对话框中看到所有支持边缘平滑的字体了

当然如果再print Tkinter.TclVersion看到的就是8.5了

有什么疑问到 CPyUG(邮件列表 http://groups-beta.google.com/group/python-cn) 交流吧

反馈

snap-ubuntu-leo.png

zq-style-leo-snap.png

分享!

进一步

瞒天过海:

date Thu, Oct 30, 2008 at 22:14
subject [CPyUG:69942] 简单让 python-tk(如 IDLE)使用

安装 Tk8.5

sudo apt-get install tk8.5 tcl8.5

先备份吧

sudo cp /usr/lib/libtcl8.4.so.0 /usr/lib/libtcl8.4.so.0.old
sudo cp /usr/lib/libtk8.4.so.0 /usr/lib/libtk8.4.so.0.old
sudo cp /usr/lib/python2.5/lib-dynload/_tkinter.so
/usr/lib/python2.5/lib-dynload/_tkinter.so.old

再用 Tk8.5 覆盖 Tk8.4

sudo cp /usr/bin/tclsh8.5 /usr/bin/tclsh8.4
sudo cp /usr/bin/wish8.5 /usr/bin/wish8.4
sudo cp /usr/lib/libtcl8.5.so.0 /usr/lib/libtcl8.4.so.0
sudo cp /usr/lib/libtk8.5.so.0 /usr/lib/libtk8.4.so.0

篡改 "Tk8.4" 的版本号

sudo sed -i 's/8.5/8.4/g' /usr/lib/libtk8.4.so.0
sudo sed -i 's/8.5/8.4/g' /usr/lib/libtcl8.4.so.0

得了您咹!齐活儿!