向google反馈广告过滤清单的广告频繁出现得到回复

我在广告过滤名单上已经添加了某个广告有大概2个月了吧。前几天,此广告频繁在 首页上出现。我通过广告左下角反馈链接向google反映。

两天后的星期一,google回信,意思是查看某处帮助,实际上帮助我早就看了,原来虽然我按照帮助上的作法把这个广告加入过滤名单,但是仍然出现了上面说的情况。

我估计是可能这个广告主的出价比较高,它在众多广告的优先级也较高,这样,google通过广告提成的收入也要多点。这种收入上占的权值高于了过滤广告的权值,于是,这个广告就出现了。

当然,现在学习日记访客少得可怜,根本不对google adsense的收入有影响,我说的是一种猜测的google的广告投放算法,也不能确定事实就是如此,也许是基于服务器资源开销的考虑,因为投放广告时还要访问数据库进行过滤会增加服务器的开销和网络资源的开销?

但是,反馈信息后的这一周时间里,这个广告基本上没有在本站出现了。

我也在思考过滤某些广告是否是正确的作法?大海之所以深沉,是因为它“海纳百川”;大地之所以厚重,是因为它能承载一切,好的,坏的,美的,丑的...

我不是圣贤,我很迷惑。不只是广告。。。

女儿趣事趣话各一则

最近1个月,虽然天气持续的高温和干旱,但是女儿的身心状态一直还不错,现在又是放暑假,成天玩得有点“忘乎所以”了,我的第一感觉就是:快乐的童年。

趣事一则,也不算是什么趣事,反而是她的恶作剧行为。

有一天,她婆婆骗她说我在楼上,实际上我在单位上班。她喊了几声喊不答应,气急败坏的冲楼上喊:“疯子爸爸”。“疯子”一词是她从某处学到的骂人的话,这不行,得告诉她这不文明,要改。

这样喊了好像还不解气,也许是报复?也许是好玩?搞不懂。她拖起一柄扫院子的很脏的扫帚,在一桶她婆婆晒的辣椒酱上扫来扫去,扫了一会儿,就又跑去玩了。这下可好,扫帚上满是辣椒酱,地上也是,那桶辣椒酱也是一踏糊涂...

趣话一则。

一天,女儿到她小姨家玩,看到一个大金鱼缸,惊呼道:看呀,鱼摆摆在生鸡蛋!

原来是金鱼缸下面放的白色的鹅卵石。

菜鸟编译内核(kernel2.6.0)(转)

转自:http://www.linuxbyte.net/view.php?skin=art&ID=3627

转载者前言:因为我的redhat linux9.0一直不能用手机U盘,一直想升级内核来解决这个问题,但是看了一些高手的文章,头都大了。只好放弃。我是菜鸟,看了这篇文章后,决定好像可以一试,所以就转载于此准备时候试一下。

正文

××××××××××××××××××××××××××××××××××××××××××××

[ZT]菜鸟编译内核(kernel2.6.0)

           转贴自:linux技术中坚站(http://www.chinalinuxpub.com/)

      http://www.chinalinuxpub.com/read.htm?id=1377

      本文以RedHat9.0为平台 作者:飘雪心辰 2004年1月15日深夜

      下载源代码

      Linux内核总是不断发展的,最新的内核kernel2.6.0对USB2.0予以正式的支持,以及内核模块文件后缀最显著的一个变化由*.o到*.ko等等,我们可以从www.kernel.org下载到tarball的源代码包。

      前期准备

      大家都知道的要先升级“module-init-tools“软件包,否则的话,等你安装内核模块文件的时候,系统会提示你:Warning: you may need to install module-init-tools See http://www.codemonkey.org.uk/post-h...4.21-23.src.rpm

      进入下载目录下并安装:

      #rpm -e --nodeps modutils (强行卸载原有的modutilsRPM包)

      #rpm -ivh modutils-2.4.21-23.src.rpm (把源代码包安装到了/usr/src/redhat目录下)

      #cd /usr/src/redhat/SPECS (进入规范文件目录下)

      #rpmbuild --bb modutils.spec (生成二进制的RPM包)

      #cd ../RPMS/i386 (转入刚生成的二进制的RPM包所在位置)

      #rpm -ivh modutils*.rpm (刚生成两个[modutils-2.4.21-23.i386.rpm与modutils-debuginfo-2.4.21.23.i386.rpm]二进制的RPM包,一起安装吧!)

      因为是在RedHat9.0的平台,RedHat的用户可能还会遇到一些麻烦,我会慢慢说的,除了要以上的升级之外,还有个文件(/etc/rc.d/rc.sysinit)可能有缺陷,因为/proc/ksyms文件在新内核(kernel2.6.0)中已经没有了,打开文件命令如下:

      #vi /etc/rc.d/rc.sysinit

      找到:

      if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>/dev/null && [ -f /proc/ksyms ]; then

      USEMODULES=y

      fi

      替换成:

      if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>/dev/null; then

      USEMODULES=y

      fi

      也就是把“&& [ -f /proc/ksyms ]”去掉,保存文件(操作之前最好做备份以免删错,这个文件是系统初始脚本,重要的很),这样子内核才能加载模块,当然能启动iptable防火墙了,否则防火墙在新内核中启动时红色的“failed“非常醒目。(请在新内核中核查/proc/sys/kernel/modprobe中的内容是不是: /sbin/modprobe,也可手工注入指令:#echo "/sbin/modprobe" > /proc/sys/kernel/modprobe)。下面开始构造新内核。

      一、准备源代码

      1、下载到tarball包之后,将内核tarball包复制到/usr/src目录下,假定包在当前目录中,运行以下命令:

      #cp linux-2.6.0.tar.gz /usr/src

      2、转到/usr/src目录并解开tarball包,

      #cd /usr/src

      #tar xvzf linux-2.6.0.tar.gz

      3、如果你还下载了补丁包,则打上补丁,你也可以运行scripts/patch-kernel脚本文件自动打上补丁(准备好补丁包)或 #zcat patch-2.6.0.gz|patch -p1(我偷懒不打补丁的)。

      二、定制内核

      定制内核是门很大的学问,需要大量的硬件知识,特别是2.6.0的内核,如果你从2.4.N配置文件装载进去的,的确,很多人遇到过麻烦。我是重新配置文件(X窗口服务器进行),配制内核之前请清理源代码树,如果还没有进入/usr/src/linux-2.6.0目录,请进入此目录,命令如下:

      #make mrproper (刚解开的tarball包不需此步骤)

      #make gconfig (需要Gtk开发库的支持)

      或make config

      或make xconfig(需要Qt开发库的支持)

      注意:如果你是ext3文件系统,则在定制内核配置文件时把对Ext3、Ext2文件的支持直接编译进内核,否则,等你启用新内核时机器就会当掉,出错信息如下:kernel panic : no init found ,try passing init = option to kernel......或者是:kernel panic:VFS:Unable to mount root fs on unknown-block(0,0),我一开始不知道,编译了好几次,系统总给我冷板凳坐,最后把对Ext3、Ext2文件系统的支持直接编译进内核,才解决此问题,还有把对“Module unloading“选项也选上,否则的话,你在新内核环境下无法卸载内核模块(rmmod命令不能用)。

      三、编译内核及模块

      定制好的内核配置文件(/usr/src/linux-2.6.0/.config)之后,激动的时刻到来了,编译内核及模块,

      #make (此命令已完成make bzImage及make modules的工作),

      bzImage内核文件在arch/i386/boot目录中,你的CPU不同内核文件存放位置也不同,我是Intel的CPU。

      注意:我在RedHat7.2平台时曾出现无法编译的出错信息,出错信息如下:

      /tmp/cc2Hu7sH.s:3: Error: Unknown pseudo-op: `.incbin'

      make[1]: *** [usr/initramfs_data.o] Error 1

      make: *** [usr] Error 2,

      重新装了个9.0的才解决此问题。

      说明:make命令在我的1.6GHz,128M的机器上跑了足足27分钟。

      四、安装模块及内核文件

      #make modules_install install

      以上这个命令可以分解成make modules_install与make install,make modules_install安装内核模块到/lib/modules/2.6.0下。make install完成mkinitrd命令及内核(bzImage)和System.map的拷贝,请查看/boot目录,文件名是有区别的,如是GRUB 引导器,make install命令已帮你自动修改了引导选项,对于LILO则要手工修改,重写引导记录。

      说明:make modules_install install这个命令在我的1.6GHz,128M的机器上只跑了三十几秒,很快的哦。

      五、后记

      最后的工作就是重启系统(#shutdown -r now),检验一下你的劳动成果吧。差点忘了还有一点,可能对你很重要,进入新内核之后我发现rpm命令不能用了,原来这是RPM的一个Bug,特别是对于RH9的用户,请打开/etc/profile文件,命令如下:

      #vi /etc/profile (在文件的末尾加上几句如下)

      if [`uname -r`="2.6.0" ];then

      export LD_ASSUME_KERNEL=2.2.5

      fi

      也就是给系统加上一个全局的环境变量,也可直接键入#export LD_ASSUME_KERNEL=2.2.5。

      使用新内核可能出现的问题及对策:

      1、新内核根本起不来,解决方法:重新配置内核(学问挺大),也许还根引导记录有关(很少了);

      2、新内核模块无法加载,会导致很多问题,比如了防火墙没法工作了,mount不上光盘和vfat及ntfs文件系统,其解决方法:升级module- init-tools软件包(我是modutils-2.4.21-23.src.rpm包),RedHat的用户可能还要修改 /etc/rc.d/rc.sysinit文件;

      3、RedHat用户rpm命令不能使用,解决办法:请把变量在全局配置文件中声明。

      好了,伟大的工程终于完工了。如果那位仁兄对我以上的步骤还有疑义或者更好的建议的话,请发E-mail:qzhou9887@hotmail.com也可QQ:44773295。

wget下载使用详解(转)

转自http://linux.ccidnet.com/art/1101/20051128/628467_1.html

A。使用wget工具

linux所以的主要版本都自带了wget这个下载工具.

bash$ wget http://place.your.url/here

它还能控制ftp来下载整个web站点的各级目录,当然,如果你不小心,可能会把整个网站以及其他和他做链接的网站全部下载下来.

bash$ wget -m http://target.web.site/subdirectory

由于这个工具具有很将的下载能力,所以可以在服务器上把它用作镜像网站的工具.让它按照"robots.txt"的规定来执行.

有很多参数用来控制它如何正确地做镜像,可以限制链接的类型和下载文件的类型等等.例如:只下载有联系的链接并且忽略GIF图片:

bash$ wget -m -L --reject=gif http://target.web.site/subdirectory

wget也能够实现端点续传(-c参数),当然,这种操作是需要远程服务器支持的.

bash$ wget -c http://the.url.of/incomplete/file

可以把端点续传和镜像功能结合起来,这样可以在以前断过多次的情况下继续镜像一个有大量选择性文件的站点.如何自动实现这个目的我们在后面会讨论得更多.

如果你觉得下载时老是断线会影响你办公的话,你可以限制wget重试的次数.

bash$ wget -t 5 http://place.your.url/here

这样重试五次后就放弃了.用"-t inf"参数表示永远不放弃.不停地重试.

B.那对于代理服务该怎么办呢?

可以使用http代理的参数或者在.wgetrc配置文件里指定一个如何通过代理去下载的途径.但是有这么一个问题,

如果通过代理来进行端点续传的话可能会有几次失败.如果有一次通过代理下载的过程发生中断,那么代理服务器上缓存里保存是那个完整的

文件拷贝.所以当你用"wget -c"来下载剩余部分的时候代理服务器查看它的缓存,并错误地认为你已经下载了整个文件.于是就发出了错误的信号.

这个时候你可以用添加一个特定的请求参数来促使代理服务器清除他们的缓存:

bash$ wget -c --header="Pragma: no-cache" http://place.your.url/here

这个"--header"参数能够以各种数字,各种方式添加。通过它我们可以更改

web服务器或者代理服务器的某些属性。有些站点不提供外部连接的文件服务,只有通过同一个站点上其他的一些页面时内容

才会被提交。这个时候你可以用加上"Referer:"

参数:

bash$ wget --header="Referer: http://coming.from.this/page" http://surfing.to.this/page

有些特殊的网站只支持某种特定的浏览器,这个时候可以用"User-Agent:"参数

bash$ wget --header="User-Agent: Mozilla/4.0 (compatible; MSIE 5.0;Windows NT; DigExt)" http://msie.only.url/here

C.那我怎么设定下载时间呢?

如果你需要在你的办公电脑上通过和其他同事共享的一个连接来下载一些很大的文件,而且你希望你的同事不会因为网络速度的减慢而收到影响,

那你就应该尽量避开高峰时段。当然,不需要在办公室里等到所以人都走掉,也不需要在家里用完晚饭后还惦记着要上网下载一次。

用at来就可以很好的定制工作时间:

bash$ at 2300

warning: commands will be executed using /bin/sh

at> wget http://place.your.url/here

at> press Ctrl-D

这样,我们设定了下载工作在晚上11点进行。为了使这个安排能够正常进行,请确

认atd这个后台程序正在运行。

D.下载要花很多时间?

当你需要下载大量的数据,而且你又没有享有足够的带宽,这个时候你会经常发现在你安排的下载任务还没有完成,一天的工作却又要开始了。

作为一个好同事,你只能停掉了这些任务,而开始另外的工作。然后你又需要反复地重复使用"wget -c"来完成你的下载。这样肯定太繁琐了,

所以最好是用crontab来自动执行。创建一个纯文本文件,叫做"crontab.txt",包含下面的内容:

0 23 * * 1-5 wget -c -N http://place.your.url/here

0 6 * * 1-5 killall wget

这个crontab文件指定某些任务定期地执行。前五列声明是什么时候执行这个命令,而每行的剩余部分则告诉crontab执行什么内容。

前两列指定了每天一到晚上11点就开始用wget下载,一到早上6点就停止一切wget

下载。第三四列的*表示每个月的每一天都执行这个任务。第五列则指定了一个星期的哪几天来执行这个程序。 --"1-5"表示从星期一

到星期五。

这样在每个工作日的晚上11点,下载工作开始,到了上午的6点,任何的wget任务

就被停掉了。你可以用下面的命令来执行crontab:

bash$ crontab crontab.txt

wget的这个"-N"参数将会检查目标文件的时间戳,如果匹配了,下载程序就会停止,因为它说明整个文件已经下载完全了。

用"crontab -r"可以删除这个计划安排。我已经多次采用这种方法,通过共享的电话拨号来下载过很多的ISO镜像文件,还是

比较实用的。

E.如何下载动态变化的网页

有些网页每天都要根据要求变化好几次.所以从技术上讲,目标不再是一个文件,它没有文件长度.因此"-c"这个参数也就失去了意义.

例如:一个PHP写的并且经常变动的linux周末新闻网页:

bash$ wget http://lwn.net/bigpage.php3

我办公室里的网络条件经常很差,给我的下载带了很大的麻烦,所以我写了个简单的脚本来检测动态页面是否已经完全更新了.

#!/bin/bash

#create it if absent

touch bigpage.php3

#check if we got the whole thing

while ! grep -qi bigpage.php3

do

rm -f bigpage.php3

#download LWN in one big page

wget http://lwn.net/bigpage.php3

done

这个脚本能够保证持续的下载该网页,直到网页里面出现了"",这就表示该文件已经完全更新了.

 

F.对于ssl和Cookies怎么办?

如果你要通过ssl来上网,那么网站地址应该是以"https://"来开头的.在这样的情况下你就需要另外一种下载工具,叫做curl,它能够

很容易获得.有些网站迫使网友在浏览的时候必须使用cookie.所以你必须从在网站上得到的那个Cookie里面得到"Cookie:"这个参数.这样才

能保证下载的参数正确.对于lynx和Mozilla的Cookie的文件格式,用下面的:

bash$ cookie=$( grep nytimes ~/.lynx_cookies |awk {printf("%s=%s;",$6,$7)} )

就可以构造一个请求Cookie来下载http://www.nytimes.com上的内容.当然,你要已经用这个浏览器在该网站上完成注册.

w3m使用了一种不同的,更小巧的Cookie文件格式:

bash$ cookie=$( grep nytimes ~/.w3m/cookie |awk {printf("%s=%s;",$2,$3)} )

现在就可以用这种方法来下载了:

bash$ wget --header="Cookie: $cookie" http://www.nytimes.com/reuters/technology/tech-tech-supercomput.html

或者用curl工具:

bash$ curl -v -b $cookie -o supercomp.html http://www.nytimes.com/reuters/technology/tech-tech-supercomput.htm

G.如何建立地址列表?

到现在为止我们下载的都是单个文件或者是整个网站.有的时候我们需要下载某个网页上链接的大量文件,但没有必要把它整个网站

都镜像下来.比如说我们想从一个依次排列的100首歌里面下载前20首.注意,这里"--accept"和"--reject"参数是不会

起作用的,因为他们只对文件操作起作用.所以一定要用"lynx -dump"参数来代替.

bash$ lynx -dump ftp://ftp.ssc.com/pub/lg/ |grep gz$ |tail -10 |awk {print $2} > urllist.txt

lynx的输出结果可以被各种GNU文本处理工具过虑.在上面的例子里,我们的链接地址是以"gz"结尾的,并且把最后10个文件地址放到

urllist.txt文件里.然后我们可以写一个简单的bash脚本来自动下载这个文件里的目标文件:

bash$ for x in $(cat urllist.txt)

> do

> wget $x

> done

这样我们就能够成功下载Linux Gazette网站(ftp://ftp.ssc.com/pub/lg/)上的最新10个论题.

 

H.扩大使用的带宽

如果你选择下载一个受带宽限制的文件,那你的下载会因为服务器端的限制而变得很慢.下面这个技巧会大大缩短下载的过程.但这个技巧

需要你使用curl并且远程服务器有多个镜像可以供你下载.例如,假设你想从下面的三个地址下载Mandrake 8.0:

url1=http://ftp.eecs.umich.edu/pub/linux/mandrake/iso/Mandrake80-inst.iso

url2=http://ftp.rpmfind.net/linux/Mandrake/iso/Mandrake80-inst.iso

url3=http://ftp.wayne.edu/linux/mandrake/iso/Mandrake80-inst.iso

这个文件的长度是677281792个字节,所以用curl程序加"--range"参数来建立三个同时进行的下载:

bash$ curl -r 0-199999999 -o mdk-iso.part1 $url1 &

bash$ curl -r 200000000-399999999 -o mdk-iso.part2 $url2 &

bash$ curl -r 400000000- -o mdk-iso.part3 $url3 &

这样就创建了三个后台进程.每个进程从不同的服务器传输这个ISO文件的不同部分.这个"-r"参数指定目标文件的字节范围.当这三个

进程结束后,用一个简单的cat命令来把这三个文件衔接起来-- cat mdk-iso.part? > mdk-80.iso.(强烈建议在刻盘之前先检查md5)

你也可以用"--verbose"参数来使每个curl进程都有自己的窗口来显示传输的过程.

结束语

不用担心使用非交互式的下载方式会影响你的下载效果.无论网站设计者如何绞尽脑汁想阻止我们从他们的网站下载,我们都可以得到

免费的工具来自动完成下载任务.这会大大丰富我们的网络经历.

怎样给内核打补丁(转)

节自(http://www.xxlinux.com/linux/article/development/kernel/20051125/96.html

我以2.6.10为例子,patche以bk4的例子,目的只是让大家知道怎么打patch,

其实本人用的是2.6.6的内核,因为在AS3.0上升级到2.6.9以上的内核,

mount大的nfs网络硬盘时,df 显示不正确,明明是800G的盘变成4.2G,

不过还是能正常用,我升级过nfs和mount的包都没用,/var/log/message里

提示是kernel: nfs warning: mount version older than kernel,

还望知道的 告知一声,谢 🙂 BTW:2.6.8的内核没用过

内核源代码:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2

最新内核补丁:http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.10-bk4.bz2

cd /usr/src

rm -rf linux

tar jxf /download/linux-2.6.10.tar.bz2

ln -s linux-2.6.10 linux

cd linux

bunzip2 -dv /download/patch-2.6.10-bk4.bz2 |patch -p1

如果在/usr/src目录下就用patch -p0

令人气愤的w3m下载的文件不能保存到硬盘上,失踪了

今天在w3m下下载:ftp://ftp.hk.kernel.org/pub/linux/kernel/v2.6/patch-2.6.17.8.bz2

有40M的内容,结果下载后就消失得无影无踪,(在这个站点上也试了http下载,也是这样)。我只好到X界面下用firefox下载了这个文件。

而在w3m下下载另一个ftp站点的内容,w3m会开一个对话框,问你存在哪里?然后在另一个页面下载并显示下载进度。

这样文件就保存到了一个固定的地方。

请问:为什么w3m下载文件在不同的站点会工作得不正常呢?有没有办法解决这个问题?

需要添加学习小组的功能和别人查看私人日记的功能

需要提出:

1、有些日记,我想一个小圈子的人可以看见;可以增加学习小组的功能,设置一些帖子的可见性为小组可见;但小组的内容能被管理员看见,避免非法秘密聚会;

2、有些私人日记,我只想给个别的人查看,这些个别的人也许没有注册,也许注了册,并参加了多个小组;

第1个功能可以暂缓实现,而第2个功能则应尽快实现。

Emacs 中文化指南(转帖)

转自:http://zhdotemacs.sourceforge.net/emacs/book.html

Emacs 中文化指南

Jerry 最后更新时间: 2004年3月21日

本文件仅收集我个人在使用Emacs中的一些经验和技巧, 本文可以随意转载, 无需通知作者, 本文最新文档可以从http://zhdotemacs.sourceforge.net上获得, E-mail: unidevel@yahoo.com.cn. 不定期更新 如有错误, 敬请指出, E-mail: unidevel@yahoo.com.cn

[ Split HTML / Single HTML ]

Table of Contents

1 最近更新

    1.1 2004年08月11日

    1.2 2004年05月01日

    1.3 2004年04月20日

    1.4 2004年03月21日

    1.5 2004年01月20日

    1.6 2003年12月19日

    1.7 2003年12月17日

2 Emacs 安装

    2.1 下载Emacs源代码

    2.2 安装Emacs

    2.3 遇到问题怎么办

    2.4 Emacs 基本编辑命令(1)

    2.5 Emacs基本编辑指令(2)

3 Emacs 中文设置

    3.1 系统对多语言的支持性

        3.1.1 Console环境

        3.1.2 Windows系统

        3.1.3 X Window系统

    3.2 中文设置

        3.2.1 通用配置

        3.2.2 Windows配置

        3.2.3 X Window设置

    3.3 Emacs输入法

4 一些常用的Emacs功能

    4.1 auto-insert -- 自动插入功能

    4.2 QuickURL -- 快速插入地址

    4.3 time-stamp -- 记录修改时间

    4.4 我最最讨厌的

5 Emacs 扩展包安装

    5.1 Tramp -- Transparent Remote Access, Multiple Protocol

        5.1.1 tramp简介

        5.1.2 Tramp原理

        5.1.3 tramp的安装及使用

        5.1.4 常见问题

    5.2 session

        5.2.1 session简介

        5.2.2 session的使用

    5.3 Emacs mew -- 强大的Emacs Email客户端

        5.3.1 Emacs Mew的安装

        5.3.2 Emacs mew配置

        5.3.3 常见问题

        5.3.4 一些mew的屏幕截图

    5.4 Color Theme -- 让你的Emacs更多彩

        5.4.1 color-theme的安装

        5.4.2 color-theme的使用

6 一些小巧的Emacs lisp

    6.1 tab-display.el

    6.2 wb-line-number.el

    6.3 keisen-mode

7 自己写的一些Emacs lisp

8 Emacs中一些有趣的功能

    8.1 Emacs中的游戏

9 迷你型的Emacs

    9.1 zile 中文设置

10 Emacs网络资源汇总

    10.1 中文资源

    10.2 Lisp资源

    10.3 文档资源

Chapter 1 最近更新

Jerry

1.1 2004年08月11日

   1.

      更新Section 10.2中的mule-gbk的链接.

   2.

      由于更换了操作系统,以前使用FreeBSD docproj编写的文档暂时无法更新

1.2 2004年05月01日

   1.

      新增 Section 9.1zile中文设置.

1.3 2004年04月20日

   1.

      新增 Section 5.3.3设置多个邮件.

1.4 2004年03月21日

   1.

      新增 Chapter 7自己写的一些Emacs lisp.

1.5 2004年01月20日

   1.

      新增 Section 5.3.3mew发送和接收邮件.

1.6 2003年12月19日

   1.

      新增 Chapter 9迷你型的Emacs.

   2.

      修改 Section 4.4我最最讨厌的, 新增step 10如何忽略错误.

1.7 2003年12月17日

   1.

      新增 Section 4.3 time-stamp -- 记录修改时间.

   2.

      修改 Section 3.2.2 Windows配置, 新增不使用intlfonts的配置.

   3.

      修改 Section 10.1 中文资源, 新增邮件列表.

Chapter 2 Emacs 安装

Jerry

Emacs可以运行于*NIX及Windows平台, 我用它来搭建统一的开发环境

不过首先最好认识一下Stallman.

2.1 下载Emacs源代码

Emacs最新版本的源代码可以从http://ftp.gnu.org/pub/emacs上获得, 或者通过cvs获得开发版及稳定版的源代码, 我一般选择稳定的版本, 毕竟很多扩展包都经过了测试, 使用起来稳定可靠(Windows下的应该除外, 我用过几个版本, 总是会出一些问题, Linux上的Emacs比较稳定, 通过FreeBSD ports安装的Emacs也比较稳定), 不过感觉Emacs 21.3对中 文支持并不如从CVS中编译的好, 因此本文就是使用CVS下载Emacs的源代 码在FreeBSD 5.1-Current下编译的.

2.2 安装Emacs

FreeBSD下推荐通过ports或者安装包直接安装, 也可以从cvs中下载最新代码编译, 编译时则可以使用./configure调整编译选项进行编译, 请不要使用--without-xim选项, 该选项使Emacs不使用XIM输入协议, 因此使用该选项则不能使用像chinput, xcin等使用XIM协议的输入法, 虽然Emacs子带输入系统, 但是中文的输入实在太差, 后面我会讲到如何扩展Emacs的输入法, 我在FreeBSD下编译Emacs(CVS)的命令如下,

$script emacs_build.log

$CPPFLAGS=-I/usr/local/include CXXFLAGS=-I/usr/local/include \

 CFLAGS=-I/usr/local/include LDFLAGS=-I/usr/local/lib \

 ./configure --prefix=/dtroot --with-xpm --with-jpeg \

 --with-tiff -with-gif --with-png --with-x --with-xim

$make -j4 bootstrap

$make install

$exit

  

或者使用--with-gtk, 来使用gtk的外观

$script emacs_build.log

$CPPFLAGS=-I/usr/local/include CXXFLAGS=-I/usr/local/include \

 CFLAGS=-I/usr/local/include LDFLAGS=-I/usr/local/lib \

 ./configure --prefix=/dtroot --with-xpm --with-jpeg \

 --with-tiff -with-gif --with-png --with-x --with-xim --with-gtk

$make -j4 bootstrap

$make install

$exit

  

假如你是用cvs获得的源代码, configure后应该使用 make bootstrap编译

2.3 遇到问题怎么办

以我的经验来看, 最好的办法就是先找找对应的FAQ, 然后找手册, 再去 对应的邮件列表上问一下, 最后就是自己调试程序.

2.4 Emacs 基本编辑命令(1)

Emacs的强大功能相信大家都已经听说过了, 熟悉vi或windows下IDE 工具开始使用时Emacs会觉得十分难受. 这一节讲一下基本的几个编译命 令, 首先说明一下以`C-'开头的是 `Ctrl'键加上后面的键一块按下, 例如 `C-x 0'就是Ctrl键和 x键一块按下, 然后再按下0, 以 `M-'开头的就是META键, 一般就是 Alt键.

    *

      `C-x C-f 文件名' -- 打开文件

    *

      `C-x C-s' -- 保存文件

    *

      `C-x C-c' -- 退出Emacs

    *

      `C-x u' -- 取消上一次操作

有了这四个基本指令就可以进行通常的编辑保存功能了, 不过现在你 肯定感觉不到Emacs的强大功能. 甚至会觉得Emacs还不如Windows的 Notepad, 别急, 熟悉一下Emacs后我们再来感受Emacs的超强功能.

2.5 Emacs基本编辑指令(2)

我们继续讲解Emacs的基本指令, 这一部分讲解基本的光标指令, 你 可以用Emacs打开一个文件, 我们一起来"运动"

    *

      `C-v' -- 向后翻一页

    *

      `M-v' -- 向前翻一页

    *

      `C-l' -- 将当前行居中

    *

      `C-f' -- 向前移动一个字符

      `M-f' -- 向前移动一个单词

    *

      `C-b' -- 向后移动一个字符

      `M-b' -- 向后移动一个单词

    *

      `C-n' -- 向下移动一行

      `C-p' -- 向上移动一行

    *

      `C-a' -- 移至当前行的第一个字符

      `M-a' -- 移至当前所在句子的第一个字符

    *

      `C-e' -- 移至当前行的最后一个字符

      `C-p' -- 移至当前所在句子的最后一个字符

    *

      `M-<' -- 移动到当前窗口的第一个字符

      `M->' -- 移动到当前窗口的最后一个字符

      注意: `M-<'输入时要同时键入`Alt', `Shift'和`,'

这些命令前可以加入`C-u N'表示重复N次, 例如向下移动8行可以这 样按键`C-u 8 C-n'

好了, 基本的移动指令就介绍完了, 可能这些键使用起来是不太顺手, 在本章最后, 我们将讲一下如何定制这些键, 使Emacs更加符合个人的使用 习惯.

Chapter 3 Emacs 中文设置

Jerry

Emacs发展到今天, 功能已经十分完善和强大, Emacs有强大的多语言编辑功 能, 当然设置的得当才能发挥出Emacs的强大功能, 下面讲述一下在Windows 以及X Window上的多语言的设置问题

3.1 系统对多语言的支持性

3.1.1 Console环境

这里的Console是像Windows下的cmd, command, Unix下的console, tty 的统称, Console环境下, 只要本身能正常显示中文就可以了, Emacs自 带输入法, 基本上不用怎么设置就可以使用

3.1.2 Windows系统

Windows本身对多语言支持的已经是十分完善了, 只是要切换缺省语言 比较麻烦, 设置完后总要重启(针对Windows 2000和Windows XP), Emacs对中文的支持也因版本的不同而不同, 通常的方法和在X Window 下类似, 需要设置对应的字体, 而Windows下最好使用bdf字体, 相关的 字体可以在XEmacs站点上下载到, 我用的是intlfonts-1.2

3.1.3 X Window系统

X Window下首先需要汉化X, 使X能正常使用中文, 其实和Windows差不 多, 也不过是设置字体, 因为X本身已经对多语言提供支持(建议使用 XFree86 V4.2及以上版本), X上最好是把Windows下的那些ttf和ttc的 字体拿来使用, 毕竟不是免费字体, 作工还是要好一些

3.2 中文设置

3.2.1 通用配置

这一部分是所有系统都要设置的

(set-language-environment 'Chinese-GB)

(set-keyboard-coding-system 'euc-cn)

(set-clipboard-coding-system 'euc-cn)

(set-terminal-coding-system 'euc-cn)

(set-buffer-file-coding-system 'euc-cn)

(set-selection-coding-system 'euc-cn)

(modify-coding-system-alist 'process "*" 'euc-cn)

(setq default-process-coding-system

            '(euc-cn . euc-cn))

(setq-default pathname-coding-system 'euc-cn)

  

3.2.2 Windows配置

这一部分设置Windows下的字体, 解压intlfonts-1.2, 设置变量 fonts-dir为所安装的字体目录

(setq fonts-dir "<path to intlfonts>")

(setq bdf-directory-list

      (list

       (expand-file-name "Asian" fonts-dir)

       (expand-file-name "Chinese" fonts-dir)

       (expand-file-name "Chinese.BIG" fonts-dir)

       (expand-file-name "Chinese.X" fonts-dir)

       (expand-file-name "Ethiopic" fonts-dir)

       (expand-file-name "European" fonts-dir)

       (expand-file-name "European.BIG" fonts-dir)

       (expand-file-name "Japanese" fonts-dir)

       (expand-file-name "Japanese.BIG" fonts-dir)

       (expand-file-name "Japanese.X" fonts-dir)

       (expand-file-name "Korean.X" fonts-dir)

       (expand-file-name "Misc" fonts-dir)

       (expand-file-name "TrueType" fonts-dir)

       (expand-file-name "Type1" fonts-dir)))

(setq w32-bdf-filename-alist

      (w32-find-bdf-fonts bdf-directory-list))

(create-fontset-from-fontset-spec

 "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,

 chinese-gb2312:-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,

 japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,

 katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,

 latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,

 japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,

 thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,

 lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,

 tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,

 ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,

 tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")

(setq font-encoding-alist

      (append '(("MuleTibetan-0" (tibetan . 0))

        ("GB2312"        (chinese-gb2312 . 0))

        ("JISX0208"      (japanese-jisx0208 . 0))

        ("JISX0212"      (japanese-jisx0212 . 0))

        ("VISCII"        (vietnamese-viscii-lower . 0))

        ("KSC5601"       (korean-ksc5601 . 0))

        ("MuleArabic-0"  (arabic-digit . 0))

        ("MuleArabic-1"  (arabic-1-column . 0))

        ("MuleArabic-2"  (arabic-2-column . 0))) font-encoding-alist))

(set-default-font "fontset-bdf")

    

注意: 上面的中文字体的大小只能为16,24,40,48, 因为intlfonts 中的BDF字体只有这几种大小的中文字体能匹配上面的chinese-gb2312的配置, 此外在Emacs 21.3中还可以这样设置

(set-language-environment 'Chinese-GB)

(set-default-font "-outline-新宋体-normal-r-normal-normal-12-*-96-96-c-*-gb2312")

    

假如你不知道系统的字体就M-x set-default-font, 然后使用TAB 键来看一下补全的字体信息

3.2.3 X Window设置

X的中文设置我就不说了, 自己搞定吧, 我拷贝了Windows的simsun.ttc 和mingliu.ttc来使用, 看简繁体中文不成问题了, 设置好X的字体后, 通过配置X Resources, 来设置emacs的字体, 通常就是配置$HOME/.Xdefaults, 1024x768的分辨率下可以设置字体为8x16, 800x600可以设置7x14的字体就可以达到字体等宽的效果

emacs.font:  8x16

emacs.paneFont:  8x16

Emacs.pane.menubar.font: 8x16

Emacs.foreground: white

Emacs.background: black

emacs.geometry:  100x32

    

3.3 Emacs输入法

Emacs自带多种输入法, 当然不止一种语言了, 但它自带的中文输入 法实在是太......, 想必不会有谁去用它的中文输入法来输入汉字吧, 不过 还是有几种比较好的输入法像自然码等, 我从fcitx和xcin的源码包中转换出 几种输入法, 有五笔, 注音, 双拼等, 下面说一下使用方法, 可以从 http://sourceforge.net/projects/zhdotemacs/ 下载到emacsim.tar.bz2

安装及使用方法, 参见安装包中的INSTALL文件

   1.

      安装输入法

      $tar -xvjf emacsim.tar.bz2

      $cd emacsim

      $cp -R gb big5 ${emacs-install-dir}/share/emacs/${emacs-version}/leim

        

   2.

      配置输入法, 拿gb/pingyin.el为例, 把下面的代码加入到文件 ${emacs-install-dir}/share/emacs/${emacs-version}/leim/leim-list.el中

      (register-input-method

       "chinese-pinyin-gb" "Chinese-CNS" 'quail-use-package

       "拼音" "汉字输入∷【拼音】∷"

       "gb/pinyin")

        

   3.

      输入法的使用, 按照上面的例子, 使用 `M-x set-input-method RET chinese-pinyin-gb RET' 就可以使用了

Chapter 4 一些常用的Emacs功能

Jerry

这一部分对Emacs安装后自带的一些实用的扩展功能进行讲解

4.1 auto-insert -- 自动插入功能

auto-insert是一个十分有用的功能, 比如我们在写一个C语言的头文 件时, 一般会加入下面的代码

#ifndef XXX_H

#define XXX_H

#endif /* XXX_H */

  

auto-insert就方便了我们, 不用每次都要手工输入这些代码, 新建 一个头文件时, 它会询问是否要加入这些自动生成的代码, 下面来看一下 auto-insert如何使用

`M-x auto-insert'会根据当前的mode在新建的文 件插入一些预定的文本, 如果想在打开文件时自动插入的话, 将下面的代 码加入~/.emacs中

(add-hook 'find-file-hooks 'auto-insert)

  

修改`auto-insert-alist'可以定制插入的模板, 可以使用`defint-auto-insert'来加入或者修改 `auto-insert-alist'

变量`auto-insert'用来定制自动插入时的动作类 型

    *

      `nil' 什么都不作, 即不执行插入动作

    *

      `t'根据auto-insert-alist和当前的mode执 行对应的插入动作

    *

      其他值 同`t', 但是自动插入文本后, 不置 文档修改标志

变量`auto-insert-query'定义自动插入文本前是 否询问, `Non-nil'表示自动插入文本前要询问.

变量`auto-insert-prompt'设定询问的语句, 如 果有%s, 则将被替换为执行插入的条件

变量`auto-insert-directory'设定模板的路径, 注意必须以`/'结尾

下面是一个比价完整的配置

(setq auto-insert t)

(setq auto-insert-query t)

(add-hook 'find-file-hooks 'auto-insert)

(setq auto-insert-directory "~/insert/")

(define-auto-insert '("^build\\.xml\\'" . "Ant编译脚本") "build.xml")

  

常见问题, auto-insert-directory的值必须以`/'结尾, 否则就不能 正常工作

4.2 QuickURL -- 快速插入地址

QuickURL允许我们快速的插入一个单词对应的地址, 也允许加入新的 地址, 这有点像浏览器的收藏夹, 对于经常写这些文档的我来说十分方便实 用, 同时也可以收藏一些好文章的地址.

QuickURL是Emacs自带的, 所以不需要特殊的配置就可以直接使用, 常用功能如下:

   1.

      `quickurl-ask'在当前位置插入所选的URL

   2.

      `quickurl-add'加入新的URL

   3.

      `quickurl-list'列出所有的URL

   4.

      `quickurl-edit'编辑所有的URL

QuickURL还有一些其他的指令, 自己看看帮助吧, 希望它能对你有用

4.3 time-stamp -- 记录修改时间

打开time-stamp可以记录最后运行time-stamp的时间, 所以一般将 time-stamp 加入 write-file-hooks 中, 记录文件的最后修改时间, ~/.emacs 配置如下:

(add-hook 'write-file-hooks 'time-stamp)

(setq time-stamp-format "%:u %02m/%02d/%04y %02H:%02M:%02S")

  

上面设置写入文件时执行time-stamp, 并设置时间格式为"%:u %02m/%02d/%04y %02H:%02M:%02S", 缺省的情况下, 在所编辑文件的前八行内插入如下标记

Time-stamp: <>

  

或者

Time-stamp: " "

  

Emacs在保存时就会运行write-file-hooks中的time-stamp, 从而加 入修改时间, 结果类似下面所示

Time-stamp: <jerry 12/17/2003 12:00:54 (unidevel.com)>

  

或者

Time-stamp: "jerry 12/17/2003 12:00:54 (unidevel.com)"

  

要使用中文表示, 可以这样设置

(setq time-stamp-start "最后更新时间:[     ]+\\\\?")

(setq time-stamp-end: "\n")

(setq time-stamp-format: "%:y年%:m月%:d日")

  

上面设置了如果碰到"最后更新时间:"的字样, time-stamp就将其后 面的字符替换为当前时间的"XXXX年XX月XX日", 注意, time-stamp-end的结束符 为换行符, 所以"最后更新时间:"行后所有字符都将无条件被替换为"XXXX年XX月XX日" 格式的时间, 本文首页上的更新时间就是这样做出来的

4.4 我最最讨厌的

   1.

      不要打入 TAB 时总是听到 PC 喇叭嘀嘀嘀的叫

      (setq visible-bell t)

   2.

      不要总是没完没了的问yes or no, 为什么不能用 y/n

      (fset 'yes-or-no-p 'y-or-n-p)

   3.

      为什么不能显示个时间什么的

      (display-time)

   4.

      为什么不显示当前所在的行号和列号

      (column-number-mode t)

   5.

      为什么不能像Windows下编辑器那样, 高亮显示要拷贝的区域

      (transient-mark-mode t)

   6.

      我要显示匹配的括号

      (show-paren-mode t)

   7.

      为什么使用语法显示的大文件在移动时如此之慢

      (setq lazy-lock-defer-on-scrolling t)

      (setq font-lock-support-mode 'lazy-lock-mode)

      (setq font-lock-maximum-decoration t)

        

   8.

      不要那个如此大的工具条

      (tool-bar-mode -1)

        

   9.

      在mozilla, openoffice等拷贝的中文文字无法正确粘贴在Emacs中(Emacs 21.3 发布版有此问题, 至少在我的FreeBSD下是这样的)

      (set-clipboard-coding-system 'ctext)

        

  10.

      启动Emacs报错, ~/.emacs中有问题, 如何忽略错误

       (condition-case err

           (progn

           (require 'xxx) )

         (error

          (message "Can't load xxx-mode %s" (cdr err))))

        

      如上所示, 可以截获progn内部出错, 在mini-buffer下打出错误信息

  11.

      不要生成临时文件

      (setq-default make-backup-files nil)

        

Chapter 5 Emacs 扩展包安装

Jerry

Emacs的扩展包可谓无所不有, 我只把关于开发的一些常用工具的安装 和配置及问题写一下

5.1 Tramp -- Transparent Remote Access, Multiple Protocol

5.1.1 tramp简介

tramp提供给我们的是可以使用Emacs对本地/远程的文件进行编辑, 保存, 版本管理等, tramp的功能十分强大, 它可以使用多种协议(telnet, ftp, ssh等)进行文件的获取和保存, 也可以使用这些协议的组合来编辑和保存文件, 对本地文件的一个比较方便的操作是su, 即使用其他用户编辑只有这些用户才有权限进行编辑的文件. 例如以普通用户jerry运行Emacs 对只有root可以编辑的/etc/inetd.conf进行编辑和保存, 免去了再开一个shell以root登陆编辑的步骤

5.1.2 Tramp原理

Tramp的原理是使用标准的协议ftp, rsync, smb等直接获取和保存文件, 使用ssh, telnet, rsh等加上uuencode, uudecode等一些编码解码程序对文件进行 获取和保存

5.1.3 tramp的安装及使用

我使用的是tramp-2.0.33, 它加入了对smb支持(暂时还不是很完善, 如编辑一些中文名称的文件), 及对ftp的改进. 安装过程如下:

   1.

      下载 tramp-2.0.33.tar.gz

   2.

      假设安装到/tmp/tramp目录下, 解包tramp到/tmp/tramp下

      $tar -xvzf tramp-2.0.33.tar.gz

      $mv tramp-2.0.33 /tmp/tramp

          

   3.

      编译tramp

      $./configure --with-emacs

      $gmake

          

   4.

      安装tramp, 在~/.emacs中加入下面的代码

      (add-to-list 'load-path "/tmp/tramp/lisp")

      (setq tramp-default-method "scp")

      (setq tramp-auto-save-directory "/tmp")

      (setq auto-save-file-name-transforms

            '(("\\`/[^/]*:\\(.+/\\)*\\(.*\\)" "/tmp/\\2")))

      (setq tramp-chunksize 328)

      (require 'ange-ftp)

      (require 'tramp)

          

   5.

      重新启动Emacs或使用C-x C-e顺序执行上述代码就可以了

5.1.4 常见问题

tramp在一些版本的Emacs上会出现读出正常, 保存就无响应的现象, 设置tramp-chunksize为小于500的整数就可以了, 因为一些版本的Emacs中 process-send-string按照文档记载最长只能为500.

此外tramp和ange-ftp有些冲突, 因为ange-ftp使用autoload装入, ange-ftp会设置 file-name-handler-alist变量, 从而将tramp设置的值覆盖掉, 因此使用 (require 'ange-ftp)首先装入ange-ftp, 然后使用(require 'tramp)装入tramp, 就不会出现这种问题.

上述配置在windows平台上不能使Emacs正常使用tramp. Windows上推荐 使用tramp+putty, 相关配置可以使用Google查到.

5.2 session

5.2.1 session简介

session扩展包可以使Emacs保存每次编辑的一些历史记录, 这样, 在下次打开Emacs时就可以使用上下键在以前输入的信息中选取, 十分方便实用.

5.2.2 session的使用

session的使用十分简单, 只需要在~/.emacs中加入如下几句就可 以了:

(add-to-list 'load-path "<path to session>")

(require 'session)

(add-hook 'after-init-hook 'session-initialize)

    

5.3 Emacs mew -- 强大的Emacs Email客户端

Emacs mew是一个由日本人编写的Emacs邮件客户端, 对中文支持非常 之好也是我选择它的原因. 废话少说, 开始----

5.3.1 Emacs Mew的安装

Emacs mew的最新版本和源代码可以从 http://www.mew.org上下 载, 下载后解压, 使用make进行编译安装, 路径可以修改一下Makefile 中的prefix, elispdir和etcdir, 注意${prefix}/bin必须在PATH变量 中, 没有的话作个符号链接也可以, 对于NTEmacs的用户, 要把下载mew 安装包中的几个exe文件拷贝到emacs安装目录的bin下.

5.3.2 Emacs mew配置

把下面的代码加入~/.emacs中, 把用户名, 主机名换成对应的就可 以了

(autoload 'mew "mew" nil t)

(autoload 'mew-send "mew" nil t)

(if (boundp 'read-mail-command)

    (setq read-mail-command 'mew))

(autoload 'mew-user-agent-compose "mew" nil t)

(if (boundp 'mail-user-agent)

    (setq mail-user-agent 'mew-user-agent))

(if (fboundp 'define-mail-user-agent)

    (define-mail-user-agent

       'mew-user-agent

       'mew-user-agent-compose

       'mew-draft-send-message

       'mew-draft-kill

       'mew-send-hook))

(setq mew-pop-size 0)

(setq mew-smtp-auth-list nil)

(setq toolbar-mail-reader 'Mew)

(set-default 'mew-decode-quoted 't) 

(setq mew-prog-pgp "gpg")

(setq mew-name "显示的用户名")

(setq mew-user "用户名")

(setq mew-smtp-user "用户名")

(setq mew-mail-domain "主机的域名")

(setq mew-smtp-auth-list nil)

(setq mew-smtp-server "SMTP主机")

(setq mew-pop-server "POP主机")

(setq mew-pop-user "用户名")

(setq mew-pop-auth 'pass) ;;认证方式

(setq mew-use-cached-passwd t)

(setq mew-nntp-server "NNTP服务器")

(setq mew-icon-directory (expand-file-name "mew/etc" dtsite-dir))

(when (boundp 'utf-translate-cjk)

      (setq utf-translate-cjk t)

      (custom-set-variables

         '(utf-translate-cjk t)))

(if (fboundp 'utf-translate-cjk-mode)

    (utf-translate-cjk-mode 1))

(require 'flyspell) ;;非常好用的英文的拼写检查

    

5.3.3 常见问题

    *

      无法从网上下载所有邮件,总是报告类似"no new messages (3 messages left)"的消息

      删除Mail/.mew-uidl文件使Mew将邮件认为新邮件,设置(setq mew-pop-size 0) 使mew下载所有邮件,不论大小, 注意首先要使 用'Q'退出new ( 'Q' is 'shift' + 'q', not just 'q'), 保证 mew重新加载~/Mail/.mew-uidl

    *

      如何在mew将邮件地址加入地址簿?

      C-cC-a加入地址簿, C-uC-cC-a加入地址和用户信息, 在发送邮件时可以使用TAB补全, 使用M-TAB将地址转换为User<address>的样子

    *

      无法发送和接收邮件

      在mew的分发包中一般包含mewls, mewl, mewencode, mewdecode, incm等可执行文件, 检查它们所在路径是否包含在环境变量PATH中, 或者拷贝这些文件到emacs安装目录的bin目录下

    *

      设置多个邮件

      mew提供多邮件设置, 这是通过设置mew-config-alist变量完成的, 例如我的邮箱设置 (可以设置在~/.emacs或者~/.mew.el中)

      (setq mew-config-alist

            '(("yahoo"

           ("name"         .  "Jerry")

           ("user"         .  "myname")

           ("smtp-server"  .  "127.0.0.1")

           ("smtp-port"    .  "5059")

           ("pop-server"   .  "127.0.0.1")

           ("pop-port"     .  "5058")

           ("smtp-user"    .  "myname")

           ("pop-user"     .  "myname")

           ("mail-domain"  .  "nonexist.com")

           ("mailbox-type" .  pop)

           ("pop-auth"     .  pass)

           ("smtp-auth-list" . ("PLAIN" "LOGIN" "CRAM-MD5"))

           )

          ("default"

           ("name"         .  "Jerry")

           ("user"         .  "sample")

           ("smtp-server"  .  "127.0.0.1")

           ("smtp-port"    .  "25")

           ("pop-server"   .  "127.0.0.1")

           ("pop-port"     .  "110")

           ("smtp-user"    .  "sample")

           ("pop-user"     .  "sample")

           ("mail-domain"  .  "sample.net")

           ("mailbox-type" .  pop)

           ("pop-auth"     .  pass)

           ("smtp-auth-list" . ("PLAIN" "LOGIN" "CRAM-MD5"))

           )))

          

      设置好后, 可以通过在summary列表下输入`C'切换设置, 不过需要注意 "mailbox-type"和"pop-auth"设置的值是没有引号的

5.3.4 一些mew的屏幕截图

mew屏幕截图1

mew屏幕截图2

5.4 Color Theme -- 让你的Emacs更多彩

这个扩展包与开发工具没有多大关系, 不过还是有一点点的, 至少可 以帮助htmlize生成的html有不同的背景, 它主要是为Emacs配置不同的色 彩搭配, 使之像Windows那样据有不同的色彩主题, 例如某些变变总是把 各种IDE的编辑器设置的像是控制台下的VI一样黑底白字.

5.4.1 color-theme的安装

想不起来在哪里下载的了, 用Google搜索一下吧, 安装起来比较简单, 就是将安装目录加入load-path, 调入color-theme, 需要的话再选择一个缺 省的theme就可以了, 例如将color-theme.el放在/tmp下, 则配置如下:

(add-to-list 'load-path "/tmp")

(require 'color-theme)

(color-theme-dark-blue)

    

5.4.2 color-theme的使用

安装完后, Tools菜单下会有一个Color Theme的菜单项, 可以用这 个定制color-theme, color-theme自带有不少的颜色主题

Chapter 6 一些小巧的Emacs lisp

Jerry

有很多的Emacs lisp, 非常小巧而实用, 下面就介绍一些我常用的

6.1 tab-display.el

tab-display.el是用来以'<'字符标识出文件中的那些tab字符, 对于编辑某些文件来说非常有用, 它清楚地标明那些字符是tab的字符

点击这里下载tab-display.el

使用十分简单, 只需要在~/.emacs中加入(require 'tab-display)就可以了, 当然首先你要作的是把tab-display.el所在的路径加入load-path中

tab-display屏幕截图

6.2 wb-line-number.el

wb-line-number.el可以在窗口左侧分割出一个显示行号的小窗口, 比那个mode-line上的行号看的更清楚一些

点击这里下载wb-line-number.el

使用时在~/.emacs中加入下面的语句(不要总是要我提醒你注意load-path设置哦)

(set-scroll-bar-mode nil)   ; no scroll bar, even in x-window system

(require 'wb-line-number)

  

在需要显示行号的buffer打入M-x wb-line-number-toggle就可以了, 或者像我这样在~/.emacs中再加入一句(wb-line-number-enable)缺省显示行号

wb-line-number屏幕截图

6.3 keisen-mode

keisen-mode是一个用来绘制表格的好工具, 尤其是绘制中文表格, 比起那个table.el来说好多了, kersen-mode是小日本写的, 点击这里下载 keisen-mule.lzh, 文件使用lha压缩, 使用时在~/.emacs中加入下面的语句

(if window-system

    (autoload 'keisen-mode "keisen-mouse" "MULE table" t)

  (autoload 'keisen-mode "keisen-mule" "MULE table" t))

  

操作起来只要使用Emacs中的移动键或者鼠标移动, 就可以绘制出各种表格了, 它会自动计算各个连接点, 简单方便

keisen-mode屏幕截图

Chapter 7 自己写的一些Emacs lisp

Jerry

   1.

      Emacs MPG123歌词同步显示 -- lrc.el, 点击下载, 可以显示大部分lrc格式的歌词, 还有一些BUG, 导致某些的歌词无法显示, 正在修改中

      安装说明: 替换掉mpg123.el, 删去原来的mpg123.el,mpg123.elc, 在~/.emacs中加入下面的代码就可以了

      (setq lrc-lyric-dir "lrc文件的路径") to ~/.emacs

      (require 'mpg123)

          

      歌词显示在minibuffer中, 点击看大图

以前的一些这里下载

Chapter 8 Emacs中一些有趣的功能

Jerry

8.1 Emacs中的游戏

Emacs自带了一些小游戏, 介绍几个

   1.

      M-x tetris

      俄罗斯方块

   2.

      M-x gomoku

      五子棋游戏

   3.

      M-x mpuz

      填数字游戏

   4.

      M-x snake

      贪吃蛇游戏

   5.

      M-x zone

      一个Emacs的屏保, 因为抓不出动的效果, 所以还是自己体验吧, 我第一次用它时把同事吓了一跳, 被误认作病毒

   6.

      M-x dunnet

      一个Mud游戏, 比较难玩, 推荐英文比较好的一定玩一下

   7.

      M-x nethack

      这个可不是Emacs自带的, 给那些nethack的faners, 需要下载nethack.el, 自己搜一下吧, 不过记得要重新编译nethack来支持Emacs

剩下的那些不是我不会玩就是不好玩, 故不浪费时间介绍了, 自己体会吧

Chapter 9 迷你型的Emacs

Jerry

网上有一些类似Emacs的编辑程序, 十分小巧, 比较著名的有下面几个

   1.

      em, 下载地址http://www3.famille.ne.jp/~ncc1701/em/

   2.

      zile 下载地址http://sourceforge.net/projects/zile/

   3.

      qemacs 下载地址http://fabrice.bellard.free.fr/qemacs/

当你的机器无法忍受庞大的Emacs时, 不妨试试这些小巧的编辑器, 我在一台PII266/64M RAM 的笔记本上就使用zile来进行开发

9.1 zile 中文设置

zile安装完毕后需要修改缺省的配置来显示中文, 一般就是在$HOME/.zilerc中加入或者修改 displayable-characters, 修改成下面的样子

      displayable-characters = "0x20-0xff"

  

Chapter 10 Emacs网络资源汇总

Jerry

10.1 中文资源

1. 我在yahoo groups上申请了邮件列表, 希望大家可以参与讨论

   1.

      参与讨论:zhdotemacs@yahoogroups.com [1]

   2.

      订阅:zhdotemacs-subscribe@yahoogroups.com [2]

   3.

      退订:zhdotemacs-unsubscribe@yahoogroups.com [3]

此外, 可以通过http://groups.yahoo.com/group/zhdotemacs/来查看以往信件, 不过必须注册一个yahoo帐号.

10.2 Lisp资源

    *

      Emacs Lisp List--- Emacs Lisp大全

    *

      Mule-GBK--- Emacs的GBK编码

10.3 文档资源

    *

      Emacs 快速指南(官方) --- 官方的快速指南

    *

      Emacs wiki中文版

    *

      王春宇的Emacs中文资料 --- emacs和gnus的配置资料和一些非常有用的参考资料

    *

      王垠的Emacs资料 --- 一些Emacs的配置和使用技巧

    *

      Emacs/Cygwin配置资料 --- NTEmacs与Cygwin环境的整合, 推荐NTEmacs的用户看一下

    *

      Emacs wiki -- 大量的Emacs资源

    *

      Emacs dotfiles -- 大量的.emacs的配置样本

Notes

[1]

首先需要订阅, 订阅后可以向zhdotemacs@yahoogroups.com发送邮件参与讨论

[2]

订阅时向zhdotemacs-subscribe@yahoogroups.com发送一封邮件, 主题上写"subscribe"就可以了, 注意不要加上引号, 收到确认信后, 按照内容中所说的回复或点击对应链接就可以了

[3]

退订时向zhdotemacs-unsubscribe@yahoogroups.com发送一封邮件, 主题上写"unsubscribe"就可以了, 注意不要加上引号, 收到确认信后, 按照内容中所说的回复或点击对应链接就可以了

卡西欧计算器FX-4X00程序(转载)

http://co.163.com/forum/content/518_77614_1.htm

公告:网易行业门户乔迁新址,7月17日起客服电话将换成:020-85105177、85105178(广州),010-82558050(北京),敬请留意。    网易 |导航 |电气 |给排水 |暖通 |建筑 |结构 |园林 |水利 | 电子样本 商易宝 广告 简易样本库 代理商专区

电子样本 工程求购 论文 图纸 软件 论坛 首页 | 产品库 | 企业库 | 招聘求职 | 期刊杂志 | 工程图片 | 水利规范 | 资讯 | 专题 | 选型导购 | 教学 | 论坛精华 | 图纸点评 | 用户指导 | 测量 | 水轮机 | 橡胶坝 | 施工组织 | 防汛抗旱 | 节水灌溉 | 工程移民 | 工程造价 | 水土保持 | 闸门启闭机 | 水利信息化 | 我的办公室       标题 作者  高级搜索 甲方有话说 | 工程图片 | 商海感悟 企业免费注册 所在位置:CO.163.com > 水利 > 论坛 >   选择其他论坛给排水论坛暖通空调论坛电气技术论坛结构工程论坛建筑专业论坛园林景观论坛水利工程论坛 炒更有罪?无罪?

7月份百图水利钢筋CAD软件赠送中

※好消息:软件上传,即传即现

炒更有罪?无罪?

7月份百图水利钢筋CAD软件赠送中

※好消息:软件上传,即传即现

论坛公告:最新主题661/41 2 3 4 本篇主题:[测绘]卡西欧计算器FX-4X00程序(不断增加)(回复 66 | 人气 5767)  [引用] [收藏] 2004-09-25 09:48:56.0楼主附闭合导线计算

1、 源程序

F1 A1

L1 Defm 4N-2

L2 N:A:B:Pol(C-A,D-B):W<0=>W=W+360?T=W

L3 K=0=>M=T+180:E=C:F=D:GOTO 0: ≠>E:F:Pol(G-E,H-F):W<0=>W=W+360?M=W

L4 Lbl 0:L=0:U=0:I=0:R=2:Z[1]=T

L5 Lbl 1:{J}:Z[R]+360: ?R=N+1=>GOTO 2: ≠>R=R+1:GOTO 1

L6 Lbl 2:P”JB”=(Z[N+1]-M) ?Q”JL”=40√N?R=2

L7 Lb1 3:{S}:Z[N+R]=S:L=L+S?

L8 Z[2N-1+R]=Rec(S,(Z[R]-P(R-1)/N)):U=U+V

L9 Z[3N-2+R]=W:I=I+W:N=R=>GOT 4: ≠>R=R+1:GOTO 3

L10 Lbl 4:P=U+C-E?Q=I+D-F?

L11 G”1:M”=L/Pol(P,Q) ?R=2

L12 Lbl 5:X”XI”=C+Z[2N-1+R]-PZ[N+R]/L?Y”YI”=D+Z[3N-2+R]-QZ[N+R]/L?

L13 R=N=>GOTO 6: ≠>R=R+1:C=X:D=Y:GOTO 5

L14 Lbl 6:”END”

2、 说明

(1)、本程序可计算附和导线和闭合导线的坐标,计算的坐标系经过角度闭合差及坐标增量闭合差分配后的结果,能显示角度闭合差、增量闭合差及导线全长的相对精度;

(2)、输入的观测角为导线的左角。

3、程序代号注释

N?导线观测角的折角数;

A、B?导线起始点所后视的已知点的坐标x,y;

C、D?导线起始点(即设站点)的坐标x,y;

E、F?导线终点(已知点)的坐标x,y;

G、H?在导线终点设站观测前视已知点的坐标x,y;

T?起始站后视至起始点的方位角;

M?终点站至前视已知点的方位角;

J?观测的左角值;

JB?角度闭合差;

JL?允许的角度闭合差,程序中是以40√n计算的,如和要求的不一致,可改一下L6语句中的有关部分。

S?所测导线的边长;

L?边长的累计数;

U?△x的累计数;

I?△y的累计数;

P?x坐标的闭合差;

Q?y坐标的闭合差;

K?转换符,当K=0时为计算闭合导线,当K≠0(任意数)时为计算附和导线。

相关站中站: 工程测量

该帖子最后于2004-09-25 09:50:01.0被yfy2003修改。

奖励积分8 by kays 原因:感谢提供。

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言 热门回复  [支持(4)] [引用] 2004-10-02 12:42:29.0铁路曲线坐标计算程序

( for CASIO fx-4500P )

一、主程序:M(M是文件名,下同)

L1 A”CX”B”CY”C”HX”D”HY”E”ZHX”F”ZHY”Q”HZX”L”HZY”G”ZHDK”H”ZHJD°”

I”A°”J”L0”K”L1”R

L2 Pol(C-A,D-B):M=W

L3 Lbl 2:W=90:{NOWZ}:Z”DK”N”Z/!/Y(1/2/3)”:N=2=>Goto 1⊿O”M”W”A°”

L4 Lbl 1:P=Z-G:S=E:T=F:U=H:V=H:Fixm

L5 P≤0=>Prog 3:≠=>P≤J=>Prog 1:≠=>P≤J+K=>Prog 2:V=90J/π/R+180π-

1R-1

(P-J)⊿⊿P≤J+K=>Prog 4:V=H+V⊿⊿

L6 P>J+K=>P=2J+K-P:S=Q:T=L:P>0=>Prog 1:X=-X:U=H+I:Prog 4: V=U-V:

≠=>

U=H+I:V=U:P=-P:Prog 3⊿⊿

L7 N≠2=>P=O:U=V-W:N=3=>P=-P⊿S=X:T=Y:Prog 3⊿

L8 Pol(X-A,Y-B):W=W-M:W<0=>W=W+360⊿

L9 W:”°°°=”◢V:”S=”◢X:”X=”◢Y:”Y=”◢Goto 2

二、子程序:1

L1 V=90P2(πRJ)-1

L2 X=P-Pxy5(40R2J2)-1

L3 Y=PVπ/540

三、子程序:2

L1 Y=180π-1R-1(P-0.5J)

L2 X=RsinY+J/2- Jxy3/240/R2

L3 Y=J/24/R+R-RcosY

四、子程序:3

L1 X=S+PcosU

L2 Y=T+PsinU

五、子程序:4

L1 I<0=>Y=-Y:V=-V⊿

L2 S=S+XcosU-YsinU

L3 Y=T+XsinU+YcosU

L4 X=S

说明:1、该程序适用于计算器 CASIO fx-4500PA。

2、程序符号定义说明:测站点坐标CX,CY;后视点坐标HX,HY;直缓点坐标

ZHX,ZHY;缓直

点坐标HZX,HZY;直缓点里程ZHDK;经过直缓点和交点的直线的方位角ZHJD°;

曲线偏

角(曲线左偏为负,右偏为正)A°;缓和曲线长L0;圆曲线长L1;圆曲线半径R;

计算

点里程DK;计算曲线的左边点或者右边点)Z/!/Y(1/2/3),曲线的右边输入1,左

边输

入3,线路上输入2;左边的点与当前里程点的连线的距离和当前里程点切线的逆

时针

方向的角度A°(如果上一项不选择2的话)。

3、计算结果显示的数据是:极角、极距和坐标。

4、该程序适用于极坐标法测量曲线时的数据(极角和极距)计算,以及曲线坐标

计算。

程序设计:杨序邦 2002年7月 重庆

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(4)] [引用] 2004-09-19 22:05:03.0面积计算(多边形法)

1、源程序

F1 A2

L1 N:P=A:Q=B:S=0:I=2

L2 Lbl 0:{C,D}:F=(A+C)(B-D):S=S+F

L3 A=C:B=D:I=I+1

L4 I≦N=>GOTO 0⊿

L5 F=(C+P)(D-Q):S=S+F:S”W”=S/2◢

3、 说明:

(1)、本程序适用于所测断面为多边形闭合图形的面积计算。

(2)、折点坐标按顺时针方向输入,得出的面积为正,否则为负,绝对值是一样

的。

4、 程序代号注释

A、B—计算面积起始点纵横坐标;

C、D—各转折点的纵横坐标;

S—代表计算过程中的有关面积;

S“W”—为图形最后需要的计算面积。

N—多边形的折点个数。

体积计算

1、源程序

F1 A3

L1 J=0:H=0:WG

L2 Lbl 0:{NAB}:NAB:P=A:Q=B:S=0:I=1

L3 Lbl 1:{CD}:S=S+(A+C)(B-D)/2:A=C:B=D:I=I+1

L4 I<N=>GOTO 1⊿S=S+(C+P)(D+Q)/2◢

L5 J≠1=>GOTO 2: ≠>L=G-H:V=(R+S+√(R*S))*L/3◢⊿W=W+V◢

L6 Lbl 2:R=S:H=G:J=1:{G}:G:GOTO 0

2、说明

(1)、程序可自动计算每一断面面积,当进行到第二个断面时就会显示出1~2断

面间的体积,而后再进行第三断面面积计算,并累计出1~3断面之间的体

积。。。。。。,直到最后得出需算断面间的总体积。

(2)、坐标输入时,应按顺时针方向逐个输入折点坐标,这样得出的面积为正

值,一个桩号折点输入完后,程序自动进入下一桩号的输入状态。

3、程序代号注释

G—断面桩号;

A、B—断面起算折点的坐标;

C、D—断面上其他折点坐标;

S—断面面积;

L—断面间距;

V—本断面与前一断面之间计算出的体积。

N—G桩号断面上的折点个数;

W—本断面之前所有体积之和。

奖励积分20 by linyong_wq 原因:好程序不能不奖!

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(3)] [引用] 2004-09-19 23:47:08.0实用!!感谢提供!!!  帐号: lgw7862

等级: 列兵

积分: 447

经验: 290

[申请博客] 留言   [支持(3)] [引用] 2005-01-05 14:44:16.0很好,还可以把很多水力计算的问题编成计算程序。  帐号: assl2002

等级: 列兵

积分: 73

经验: 464

[申请博客] 留言   [支持(3)] [引用] 2005-03-06 09:28:04.0很实用,已收藏,多谢。 帐号: zbwei120

等级: 列兵

积分: 134

经验: 277

[我的博客] 留言 所有回复  [支持(4)][引用] 2004-09-19 22:05:03.0第2楼面积计算(多边形法)

1、源程序

F1 A2

L1 N:P=A:Q=B:S=0:I=2

L2 Lbl 0:{C,D}:F=(A+C)(B-D):S=S+F

L3 A=C:B=D:I=I+1

L4 I≦N=>GOTO 0⊿

L5 F=(C+P)(D-Q):S=S+F:S”W”=S/2◢

3、 说明:

(1)、本程序适用于所测断面为多边形闭合图形的面积计算。

(2)、折点坐标按顺时针方向输入,得出的面积为正,否则为负,绝对值是一样

的。

4、 程序代号注释

A、B—计算面积起始点纵横坐标;

C、D—各转折点的纵横坐标;

S—代表计算过程中的有关面积;

S“W”—为图形最后需要的计算面积。

N—多边形的折点个数。

体积计算

1、源程序

F1 A3

L1 J=0:H=0:WG

L2 Lbl 0:{NAB}:NAB:P=A:Q=B:S=0:I=1

L3 Lbl 1:{CD}:S=S+(A+C)(B-D)/2:A=C:B=D:I=I+1

L4 I<N=>GOTO 1⊿S=S+(C+P)(D+Q)/2◢

L5 J≠1=>GOTO 2: ≠>L=G-H:V=(R+S+√(R*S))*L/3◢⊿W=W+V◢

L6 Lbl 2:R=S:H=G:J=1:{G}:G:GOTO 0

2、说明

(1)、程序可自动计算每一断面面积,当进行到第二个断面时就会显示出1~2断

面间的体积,而后再进行第三断面面积计算,并累计出1~3断面之间的体

积。。。。。。,直到最后得出需算断面间的总体积。

(2)、坐标输入时,应按顺时针方向逐个输入折点坐标,这样得出的面积为正

值,一个桩号折点输入完后,程序自动进入下一桩号的输入状态。

3、程序代号注释

G—断面桩号;

A、B—断面起算折点的坐标;

C、D—断面上其他折点坐标;

S—断面面积;

L—断面间距;

V—本断面与前一断面之间计算出的体积。

N—G桩号断面上的折点个数;

W—本断面之前所有体积之和。

奖励积分20 by linyong_wq 原因:好程序不能不奖!

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(3)][引用] 2004-09-19 22:06:03.0第3楼在任意控制点上测定直线上的任意位置与高程数据计算

1、源程序

F1 A4

L1 A”X”:B”Y”:E”Z0”:C”X1”:D”Y1”:F”Z1”:G”H0”:I

L2 Lbl 0:{LJV}:LJV

L3 K= tanF:T=tan(E+L)

L4 X”XP”=(B-D-AT+KC)/(K-T) ◢Y”YP”=B+TX-AT◢

L5 S=√((X-A)2+(Y-B)2)

L6 H=G+StanJ+I-V◢GOTO 0

2、说明

(1)、本程序功能:在已知断面上某一点的坐标及断面方向的方位角后,可直接

将仪器架设在邻近控制点上,为测设各个断面上的点提供数据,不需要一定要将

仪器架设在断面桩上测设断面,而所测的断面点均有坐标和高程。

(2)、基本原理:如图所示,A、B为已知控制点,其方位角为Z0,断1-断2为断

面线控制桩,其方位角Z1可以算出,仪器架设在A点,后视B点,转角L1、L2、

L3。。。。。。,这时A~1、A~2,。。。。。。的方位角也为已知,根据解析

几何,两方位直线相交,可解出1#,2#。。。。。。的坐标及其与A的距离。

3、程序代号注释

A、B—测站点坐标

C、D—断面桩点坐标

L—观测断面点的水平角

J—观测断面点的竖直角

V—觇标高

S—测站至断面测点的距离

H—断面测点的高程

I—仪器高

Z0—测站至后视点的方位角

Z1—断面线的方位角

竖曲线计算

1、源程序

F1 A5

L1 BADTRZ

L2 Lbl 0:{C}:C

L3 Z≧1=>H=A+(B-A)/T*(C-D)-(C-D)2/(2R) ◢≠>H=A+(B-A)/T*(C-D)+ (C-D)

2/(2R) ◢

L4 GOTO 0

2、说明

(1)、本程序的功能是根据道路施工纵断面图上的设计数据,算出竖曲线上各加

桩点的高程;

(2)、本程序适用于由小桩号向大桩号端方向计算,在键入全部已知数据后,当

C出现时,只要键入该点的桩号,高程立即会显示出来。

3、程序代号注释

A—起点(或终点)高程

C—需计算点的桩号

T—竖曲线切线长

D—起点(或终点)高程

R—竖曲线半径

H—C桩号处的高程

B—切线交点的高程

Z—曲线凹凸判断符Z≧1时为凸曲线,z<0时为凹曲线。

两点测角前方交会坐标计算

1、源程序

F1 A6

L1 ABCDEF

L2 X“XP”=(A/tanF+C/tanE-B+D)/(1/tanE+1/tanF) ◢

L3 Y“YP”=(B/tanF+D/tanE-C+A)/(1/tanE+1/tanF) ◢

说明:

E—1#点的观测角

F—2#点的观测角

1#、2#点的编号时应注意:面向交会点P的左侧定为1#点,右侧定为2#点。

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(3)][引用] 2004-09-19 23:47:08.0第4楼实用!!感谢提供!!!

 帐号: lgw7862

等级: 列兵

积分: 447

经验: 290

[申请博客] 留言   [支持(2)][引用] 2004-09-23 13:19:40.0第5楼这才做价值!论坛的作用~!

 帐号: bailonginfo

等级: 上等兵

积分: 3

经验: 998

[我的博客] 留言   [支持(3)][引用] 2004-09-25 09:45:36.0第6楼线路中、边桩测量放样程序 (Ver 3.2)

F1 XLCS (主程序,步数385)

L1 Norm:Deg:U=O″A0″:Prog 1:Q=U:C″X-JD″:D″Y-JD″:U=A″A:R+L-

″:Prog 1:

B=Abs U:R:S″L0″:E″K-ZH″

L2 Fix 3:M=.5S-Sxy3/240R2:P=S2/24R:T″T″=(R+P)tan.5B+M◢F″L″=

πRB/180

+S◢F=F+E:Norm

L3 K″ZJ:XY=>1″:K≠1=>{L}:V=L″K″:U=0:Prog 4: G=X:H=Y:≠>G″

X″:H″Y″◣

{KJ}:K″HS:XY=>1″:K=1=>{I}:X=I″X″:Y=J″Y″:≠>V=J″K″:U=0:Prog 4◣

Fix 3

L4 V″D0″=Pol(X-G,Y-H◢Fix 4:N=W:W<0=>W=W+360◣Prog 2:W″

A0″=W◢

Norm:U=0:{U}:U″AB″:Prog 1:K=U

L5 Lb1 0:U=0:{U}:U″CS:XY=>1″:U=0=>{UZ}:V=Z″K″: U″BZ:R+L-

″:A<0=>U

=-U◣Prog 4: ≠>{XY}:X:Y◣Prog 5: Prog 6:Goto 0

F2 1 (十进制→六十进制子程序,步数19)

L1 U=Int U+Frac U/.6+Frac 100U/90

F3 2 (六十进制→十进制子程序,步数22)

L1 60Frac W:W=Int W+.01Int Ans+.006Frac Ans

F4 3 (缓和曲线上任意点坐标计算子程序,步数57)

L1 Y=RS:X=V-Vxy5/40Y2:Y=Vxy3(1-Vxy4/56Y2)/6Y+URec(1,90V2/π

Y:X=X-UW

F5 4 (中桩、边桩坐标计算子程序,步数195)

L1 V>F=>X=T-UsinB+Rec(V-F+T,B:Y=W+UcosB:Goto 0◣

L2 V>F-S=>V=F-V:Prog 3: Rec(1,B:U=X:X=T+TV-XV-YW:Y=TW-

UW+YV:

Goto 0◣

L3 V>E+S=>Y=P+R-Rec(R-U,180(V-E-.5S)/πR:X=M+W:Goto 0◣

L4 V>E=>V=V-E:Prog 3: ≠>X=V-E:Y=U◣

L5 Lbl 0: A<0=>Y=-Y◣Rec(1,Q:U=X:X=C-TV+XV-YW:Y=D-

TW+UW+YV

F6 5 (测设数据输出子程序,步数76)

L1 Pol(X-G,Y-H:W=W-N:W<0=>W=W+360◣W=K+W:W≥360=>

W= W-360◣

Fix 4:Prog 2:W″AC″=W◢Fix 3:V″DC″=V◢Norm

F7 6 (测设时移桩数据计算子程序,步数92)

L1 Lbl 0:Norm:L=0:W=0

L2 Lbl 1:U=0:{U}:U″SC″:U≠0=>W=W+U:L=L+1:Goto 1◣W≠0=>

{U}:U″V″:

Prog 1:Fix 3:W″SD″=W/L×sin U◢W″MOVE″=V-W◢Goto 0◣

【使用说明】

1、 程序说明

(1) 本程序特点:可置镜任意点放样任意点(中桩点、边桩点、导线

点);人性化设计,提示信息全面,并充分考虑工程术语和习惯;专门设计的角

度输入输出方式;绝对优秀的存储器分配方案。

(2) 本程序适用于放射螺旋线作为缓和曲线且前、后缓和曲线长度相同的

单曲线放样,可放样线路中桩和边桩,按里程和坐标放样均可。

(3) 角度输入(出)方式:度.分秒,如 56°3′19″ 输入(出)为

56.0319。注意:分、秒必须为两位数,当小于10时,应在前面加“0”。

(4) 放样前应准备的数据:建立统一的施工坐标系(正测量坐标系、右手

坐标系),计算控制点和曲线交点坐标、曲线第一切线方位角;整理曲线要素和

放样点桩号、相应的边桩距离(或放样点坐标)。

(5) 若按坐标放样,则当程序提示输入曲线要素时,可输入任意值,仅在

提示输入置镜点、后视点和放样点属性时输入“1”,然后输入相应坐标值。

(6) 如果要实时显示放样点的坐标,可在子程序F6行L1的“Fix 4:”后增加以

下语句(双引号内):“X◢Y◢”或者“X″X″=X◢Y″Y″=Y◢”。

(7) 子程序F1行L4中“:U=0:{U}:U″AB″:Prog 1:K=U”(输入仪器后视读

数)和行L5中“Prog 6:”(调用移桩计算子程序)、子程序F6行L1中“W=K+W:W

≥360=>W= W-360◣”(计算仪器前视读数,必须与前述“输入仪器后视读数”

同时取舍)、子程序F8(移桩计算子程序)可根据需要取舍。

(8) 本程序按CASIO fx-4500P计算器设计。若使用CASIO fx-4800P计算

器,应作以下改动:①变量“V”与“I”调换,变量“W”与“J”调换;②调用子程序时,

子程序名应加双引号(″),如:PROG 1应改为PROG ″1″;③“xy”应为“^”;④

在子程序F1行L1或L2中任意位置添加“I=0:J=0”语句。

(9) 程序步数说明:每个子程序实际占用空间=程序步数+行数+程序名字

符数+2。

by 中铁二十四局福建公司工程部•洪淮斌

2004年4月28日

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(2)][引用] 2004-09-25 09:47:46.0第7楼线路中、边桩测量放样程序 (Ver 3.2)

( for CASIO fx-4800P )

F1 XLCS (主程序)

L1 Norm:Deg:U=O″A0″:Prog ″1″:Q=U:C″X-JD″:D″Y-JD″:U=A″A:R+L-

″:

Prog ″1″:B=Abs U:R:S″L0″:E″K-ZH″

L2 Fix 3:M=.5S-S^3÷240R2:P=S2÷24R:T″T″=(R+P)tan.5B+M◢F″L″

=πRB÷

180+S◢F=F+E:I=0:J=0:Norm

L3 K″ZJ:XY=>1″:K≠1=>I=L″K″:U=0:Prog ″4″: G=X:H=Y:≠>G″

X″:H″Y″◣{K}:

K″HS:XY=>1″:K=1=>X=V″X″:Y=W″Y″:≠>I=W″K″:U=0:Prog ″4″◣Fix 3

L4 Pol(X-G,Y-H:I″D0″=I◢Fix 4:N=J:J<0=>J=J+360◣Prog ″2″:J″

A0″=J◢Norm:

U=0:{U}:U″AB″:Prog ″1″:K=U

L5 Lb1 0:U=0:{U}:U″CS: XY=>1″:U=0=>{UZ}:I=Z″K″:U″BZ:R+L-

″:A<0=>U

=-U◣Prog ″4″: ≠>{XY}:X:Y◣Prog ″5″: Prog ″6″:Goto 0

F2 1 (十进制→六十进制子程序)

L1 U=Int U+Frac U÷.6+Frac 100U÷90

F3 2 (六十进制→十进制子程序)

L1 60Frac J:J=Int J+.01Int Ans+.006Frac Ans

F4 3 (缓和曲线上任意点坐标计算子程序)

L1 Y=RS:X=I-I^5÷40Y2:Y=I^3(1-I^4÷56Y2)÷6Y+URec(1,90I2÷π

Y:X=X-UJ

F5 4 (中桩、边桩坐标计算子程序)

L1 I>F=>X=T-UsinB+Rec(I-F+T,B:Y=J+UcosB:Goto 0◣

L2 I>F-S=>I=F-I:Prog ″3″: Rec(1,B:U=X:X=T+TI-XI-YJ:Y=TJ-

UJ+YI:Goto 0◣

L3 I>E+S=>Y=P+R-Rec(R-U,180(I-E-.5S)÷πR:X=M+J:Goto 0◣

L4 I>E=>I=I-E:Prog ″3″: ≠>X=I-E:Y=U◣

L5 Lbl 0: A<0=>Y=-Y◣Rec(1,Q:U=X:X=C-TI+XI-YJ:Y=D-TJ+UJ+YI

F6 5 (测设数据输出子程序)

L1 Pol(X-G,Y-H:J=J-N:J<0=>J=J+360◣J=K+J:J≥360=>J= J-360



Fix 4:Prog ″2″:J″AC″=J◢Fix 3:I″DC″=I◢Norm

F7 6 (测设时移桩数据计算子程序)

L1 Lbl 0:Norm:L=0:J=0

L2 Lbl 1:U=0:{U}:U″SC″:U≠0=>J=J+U:L=L+1:Goto 1◣J≠0=>

{U}:U″V″:

Prog ″1″:Fix 3:J″SD″=J÷L×sin U◢J″MOVE″=I-J◢Goto 0◣

视距测量计算程序 (Ver 1.1)

F8 SJCL (主程序,步数75)

L1 Lbl 0:Norm:{SAV}:I:S:U=A"AV":V:Prog 1:K=1:U>180=>K=-1◣

Fix 3:D"D"=

S(sin U)2◢H"H"=KD/tanU+I-V◢Goto 0

1、 符号说明:"I"——仪器高,"S"——斜距,"AV"——竖直角(指“天顶

距”),"V"——目标高,"D"——平距,"H"——高差。

2、 本程序需调用“十进制→六十进制子程序”。

竖曲线计算程序 (Ver 1.1)

F9 SQX (主程序,步数196)

L1 Norm:C=.001(A"I1"-B"I2":R=E4:{R}:R:K=1:C<0=>K=-1◣D"K-

BP":

H"H-BP":T=.5R Abs C:E"KS"=D-T◢F"KE"=D+T◢

L2 Lbl 0:{L}:L"KC":Z=1:L>F=>Z=0◣L<E=>Z=0◣Fix 3:L≥D=>

M″HC″=H-

ZK(F-L)2/2R+.001B(L-D◢ ≠>M″HC″=H-ZK(L-E)2/2R+.001A(L-D◢◣Norm:

Goto 0

1、 符号说明

I1、I2 坡度1、2 KS 竖曲线起点 HC 测设点标高

K(BP) 变坡点里程 KE 竖曲线终点 R 竖曲线半径

H(BP) 变坡点标高 KC 测设点里程 T 切线长度

2、 注意事项

⑴ I1、I2符号:上坡取“+”,下坡取“-”。单位为“千分之一”,如5.3‰输入

5.3。

⑶ 行L1中“E4” 即“10000”,应输入“EXP”+“4”,或“10x”+“4”(显示104)。

极坐标计算程序 (Ver 1.1)

F1 JZB (主程序,步数112)

L1 Lbl 0:Norm:{NGHXY}:N"POL=>0"

L2 N=0=>K=0:G"X1":H"Y1":X"X2":Y"Y2":Prog 5: ≠>

G"X0":H"Y0":U=X"A":

Y"S":Prog 1:Fix 4:V"X"=G+Rec(Y,U◢W"Y"=H+W◢Goto 0

1、 符号说明:" POL=>0"——由直角坐标反算极坐标时输入“1”,由极

坐标计算直角坐标时输入其他任意值;"X1"、"Y1"、"X2"、"Y2"——起终点直角

坐标;"X0"、"Y0"——起算点直角坐标;"A"、"S"——方位角和极距。

2、 本程序需调用“十进制→六十进制子程序”、“测设数据输出子程序”。

by 中铁二十四局福建公司工程部;洪淮斌

2004年4月28日

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(2)][引用] 2004-09-25 09:52:07.0第8楼上传线路中、边桩测量放样程序 (Ver 3.2) 的word文档包括数据等.

附件:20049251096077126763.rar (大小:21KB,165次下载)

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(2)][引用] 2004-09-26 10:18:04.0第9楼坐标反算

( for CASIO fx-4800P )

程序步骤:

C”X1”:D”Y1”:E”X2”:F”Y2”:Fixm:Pol(E-C,F-D:I”S1-2=”◢

J≤O=>J=J+360△J”A1-2=”

操作过程:

ZBFS→EXE→输入X1值→EXE→输入Y1值→EXE→输入X2值→EXE→Y2→EXE→

EXE→EXE

S1-2:计算得出的距离;

A1-2:计算得出的角度。(按shift°′″ 转换为60进制的角度)

注:此程序可循环计算。

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(3)][引用] 2004-09-26 10:19:05.0第10楼坐标正算

( for CASIO fx-4800P )

程序步骤:

C”X1”:D”Y1”:S”S1-2”:R”A1-2”:Fixm:X”X2”=C+Rec(S,R◢

Y” Y2”=D+J

操作过程:

ZBZS→EXE→输入X1值→EXE→输入Y1值→EXE→输入S1-2距离→EXE→输入A1-

2角度(例125°31′23.25″)→EXE→EXE

注:此程序可循环计算。

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(3)][引用] 2004-09-27 10:14:17.0第11楼缓和曲线曲线要素

( for CASIO fx-4800P )

程序步骤:

B=0°1718.87′﹡L/R◢

X=L-L^3/40/ R2◢

Y=L2/6/ R◢

P=Y-R(1-cos B◢

Q= X-Rsin B◢

T=(R+P)tan(A/2)+Q◢

E=(R+P)(cos(A/2))-1-R◢

Z= R(A-2B)л/180+2L◢

J=2T-Z◢

D=X-Y/tan B

操作过程:

HQQXYS→EXE→输入L值(即缓和曲线总长)→EXE→输入R值(即圆曲线半径)

→EXE→得β角度→EXE→得Xh值→EXE→得Yh值→EXE→得P值→EXE→得Q值→

EXE→输入A角(例125°31′23.25″)→EXE→得T值→EXE→得E值→EXE→得Z值

→EXE→得J值→EXE→得D值

注:此程序可循环计算。

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(4)][引用] 2004-10-02 12:42:29.0第12楼铁路曲线坐标计算程序

( for CASIO fx-4500P )

一、主程序:M(M是文件名,下同)

L1 A”CX”B”CY”C”HX”D”HY”E”ZHX”F”ZHY”Q”HZX”L”HZY”G”ZHDK”H”ZHJD°”

I”A°”J”L0”K”L1”R

L2 Pol(C-A,D-B):M=W

L3 Lbl 2:W=90:{NOWZ}:Z”DK”N”Z/!/Y(1/2/3)”:N=2=>Goto 1⊿O”M”W”A°”

L4 Lbl 1:P=Z-G:S=E:T=F:U=H:V=H:Fixm

L5 P≤0=>Prog 3:≠=>P≤J=>Prog 1:≠=>P≤J+K=>Prog 2:V=90J/π/R+180π-

1R-1

(P-J)⊿⊿P≤J+K=>Prog 4:V=H+V⊿⊿

L6 P>J+K=>P=2J+K-P:S=Q:T=L:P>0=>Prog 1:X=-X:U=H+I:Prog 4: V=U-V:

≠=>

U=H+I:V=U:P=-P:Prog 3⊿⊿

L7 N≠2=>P=O:U=V-W:N=3=>P=-P⊿S=X:T=Y:Prog 3⊿

L8 Pol(X-A,Y-B):W=W-M:W<0=>W=W+360⊿

L9 W:”°°°=”◢V:”S=”◢X:”X=”◢Y:”Y=”◢Goto 2

二、子程序:1

L1 V=90P2(πRJ)-1

L2 X=P-Pxy5(40R2J2)-1

L3 Y=PVπ/540

三、子程序:2

L1 Y=180π-1R-1(P-0.5J)

L2 X=RsinY+J/2- Jxy3/240/R2

L3 Y=J/24/R+R-RcosY

四、子程序:3

L1 X=S+PcosU

L2 Y=T+PsinU

五、子程序:4

L1 I<0=>Y=-Y:V=-V⊿

L2 S=S+XcosU-YsinU

L3 Y=T+XsinU+YcosU

L4 X=S

说明:1、该程序适用于计算器 CASIO fx-4500PA。

2、程序符号定义说明:测站点坐标CX,CY;后视点坐标HX,HY;直缓点坐标

ZHX,ZHY;缓直

点坐标HZX,HZY;直缓点里程ZHDK;经过直缓点和交点的直线的方位角ZHJD°;

曲线偏

角(曲线左偏为负,右偏为正)A°;缓和曲线长L0;圆曲线长L1;圆曲线半径R;

计算

点里程DK;计算曲线的左边点或者右边点)Z/!/Y(1/2/3),曲线的右边输入1,左

边输

入3,线路上输入2;左边的点与当前里程点的连线的距离和当前里程点切线的逆

时针

方向的角度A°(如果上一项不选择2的话)。

3、计算结果显示的数据是:极角、极距和坐标。

4、该程序适用于极坐标法测量曲线时的数据(极角和极距)计算,以及曲线坐标

计算。

程序设计:杨序邦 2002年7月 重庆

行在山水间...... 展示你无穷的活力; 游在三维世界......展示你无穷的智慧!解放军军长·贵宾 帐号: yfy2003

等级: 上尉

积分: 8843

经验: 5669

[我的博客] 留言   [支持(2)][引用] 2004-10-03 08:06:09.0第13楼太实用了,谢谢!

 帐号: 54xxx

等级: 下士

积分: 690

经验: 1074

[申请博客] 留言   [支持(2)][引用] 2004-10-24 20:16:06.0第14楼下载研究,谢谢分享!

帐号: 火云

等级: 列兵

积分: 156

经验: 266

[申请博客] 留言   [支持(3)][引用] 2004-10-24 20:17:35.0第15楼下载研究,谢谢分享!

帐号: 火云

等级: 列兵

积分: 156

经验: 266

[申请博客] 留言   [支持(3)][引用] 2005-01-05 14:44:16.0第16楼很好,还可以把很多水力计算的问题编成计算程序。

 帐号: assl2002

等级: 列兵

积分: 73

经验: 464

[申请博客] 留言   [支持(2)][引用] 2005-01-05 14:47:12.0第17楼很好,还可以把很多水力计算的问题编成计算程序。

 帐号: assl2002

等级: 列兵

积分: 73

经验: 464

[申请博客] 留言   [支持(2)][引用] 2005-02-02 14:00:14.0第18楼

太实用了,谢谢!

坚信自己!付出总有回报,要做就做最好!路漫人生 帐号: diaoh227

等级: 下士

积分: 6131

经验: 1134

[我的博客] 留言   [支持(2)][引用] 2005-02-07 02:17:46.0第19楼我很菜,请问这是什么程序呀,让人摸不着头脑,如果好学,我们也学学,谢谢

 帐号: anny-tom100

等级: 下士

积分: 260

经验: 1115

[申请博客] 留言   [支持(3)][引用] 2005-03-06 09:28:04.0第20楼很实用,已收藏,多谢。

帐号: zbwei120

等级: 列兵

积分: 134

经验: 277

[我的博客] 留言   [支持(2)][引用] 2005-04-23 23:58:24.0第21楼老大,你真厉害,有时间得向你好好学习。不知哪里有4500的操作手册??

泥鳅中南水利 帐号: yeshuaxing

等级: 上等兵

积分: 2765

经验: 988

[申请博客] 留言 661/41 2 3 4 回复帖子(必须为注册用户)

        讨论标题:[测绘]卡西欧计算器FX-4X00程序(不断增加)(禁止灌水聊天)回复内容:

 广告销售:020-85105177(广州) 010-82558050(北京)  客户服务:020-85105178About NetEase - 公司简介 - 联系方法 - 招聘信息 - 客户服务 - 意见反馈 - 相关法律 - 网络营销 - 帮助中心

 网易公司版权所有  ©1997-2006

ICP证粤B2-20030235 跨地区ICP证 互联网出版许可证粤002号

北京市通信公司营业局提供网络带宽   测绘专业技术水利工程相关专业电脑应用专家点评注册考试商务娱乐论坛管理水工设计施工&监理测绘地质管理&规划工程造价机电金结港工航运道路桥梁工程图片农田水利水文&水资源水土保持土地整理防汛电脑技术CAD&二次开发软件共享百图水利软件图纸点评选型导购土木师造价师监理师建造师咨询师考研人才&商务休闲娱乐专业英语水利人之家站务公开版主议事