<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8453070348577261465</id><updated>2012-01-17T00:55:13.398+08:00</updated><category term='BASH'/><category term='tools'/><category term='心情'/><category term='qq'/><category term='Game'/><category term='gentoo'/><category term='H.323'/><category term='SIP'/><category term='Kernel'/><category term='网关'/><category term='Embedded'/><category term='pekwm'/><category term='firefox'/><category term='Wlan'/><category term='GCC'/><category term='SAP'/><category term='Flash'/><category term='KDE4'/><category term='电源管理'/><category term='mdev'/><category term='busybox'/><category term='vim'/><category term='Uart3'/><category term='电脑'/><category term='gdi++'/><category term='MGCP'/><category term='linux开发'/><category term='映射'/><category term='总线'/><category term='wmware'/><category term='应聘职场'/><category term='CSS'/><category term='内核移植'/><category term='Autoconf'/><category term='Alsa'/><category term='fcitx'/><category term='美化'/><category term='接口'/><category term='赢在中国'/><category term='Vocal'/><category term='日志'/><category term='Expect'/><category term='Automake'/><category term='eva'/><category term='photo'/><category term='ebuild'/><category term='输入'/><category term='GPIO'/><category term='娱乐'/><category term='Sed'/><category term='udev'/><category term='google'/><category term='fbpanel'/><category term='Wireless'/><category term='人生感悟'/><category term='网络'/><category term='LQ035Q7DH01'/><category term='励志'/><category term='ACPI'/><category term='locale'/><category term='ARM'/><category term='日积月累'/><category term='LCD'/><category term='uboot'/><category term='SPI'/><category term='logo'/><category term='裁剪'/><category term='Shell'/><category term='键盘'/><category term='just for fun'/><category term='s3c2410'/><category term='irc'/><category term='Awk'/><category term='壁纸'/><category term='安装'/><category term='闲情逸致'/><category term='linux'/><category term='Fvwm'/><category term='compiz-fusion'/><category term='配置文件'/><category term='HAL'/><category term='fluxbox'/><category term='C/C++'/><category term='Fonts'/><category term='编程'/><category term='网卡'/><category term='驱动'/><category term='内存'/><category term='PCB'/><category term='openbox'/><category term='启动'/><category term='Fun'/><category term='RJ45'/><category term='CS8900'/><category term='Vi'/><category term='blogger'/><category term='HotPlug'/><category term='生活随笔'/><category term='NGN'/><category term='SDP'/><category term='其他'/><category term='音乐'/><category term='Mplayer'/><category term='VOIP'/><title type='text'>Lead A Simple Life</title><subtitle type='html'>路漫漫其修远兮，吾将上下而求索。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default?start-index=101&amp;max-results=100'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>254</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2143766806955348349</id><published>2010-05-15T00:06:00.000+08:00</published><updated>2009-03-07T13:03:38.619+08:00</updated><title type='text'>请使用Firefox(Opera等非IE浏览器)访问本部落格</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2143766806955348349?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2143766806955348349/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2143766806955348349&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2143766806955348349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2143766806955348349'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/02/firefox.html' title='请使用Firefox(Opera等非IE浏览器)访问本部落格'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-1821673652533279997</id><published>2010-03-16T21:27:00.001+08:00</published><updated>2010-03-16T21:28:55.767+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='日志'/><title type='text'>久违了我的blog</title><content type='html'>被墙了这么久，感谢西厢记计划，能够不带套访问了。。。。&lt;br /&gt;不过估计没多久又被墙了。。。&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;隐藏部分&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-1821673652533279997?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/1821673652533279997/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=1821673652533279997&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1821673652533279997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1821673652533279997'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2010/03/blog.html' title='久违了我的blog'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2454619633393969192</id><published>2009-03-28T08:15:00.002+08:00</published><updated>2009-03-28T08:24:10.847+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='日积月累'/><title type='text'>2周工作笔记</title><content type='html'>工作2周了，一直忙的都没时间总结下&lt;br /&gt;主要工作是&lt;br /&gt;1 移植了cdtools libburn dvd+rw-tools 等刻录工具到arm下&lt;br /&gt;除了cdtools 遇到了些困难后，其他2个还是比较顺利的，dvdtools高版本编译过不去的原因是，arm-linux-uclibc-gcc 里面没有支持多字节的库，解决方法是，重新编译工具链，加入wchar支持，但是这里比较特殊的是，dvdtools调用的这个函数用于出错提示，所以没什么用处，直接//了就好了，，，，，，，，，，，，但是知道问题在哪里还是很重要的&lt;br /&gt;2 在hisi 3511上进行 音视频流的实时打包刻录，刻录上面已经实现了，剩下的就是获取音视频流，然后缓冲成文件，达到一定大小后进行刻录。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2454619633393969192?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2454619633393969192/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2454619633393969192&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2454619633393969192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2454619633393969192'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/03/2.html' title='2周工作笔记'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6149260114455505408</id><published>2009-03-15T10:50:00.000+08:00</published><updated>2009-03-15T10:51:27.460+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='人生感悟'/><title type='text'>广东打工</title><content type='html'>&lt;div&gt;&lt;object id="ssss" width="480" height="370" &gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://p.you.video.sina.com.cn/player/outer_player.swf?auto=1&amp;vid=19234731&amp;uid=1584062220" type="application/x-shockwave-flash" name="ssss" allowFullScreen="true" allowScriptAccess="always" width="480" height="370"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6149260114455505408?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6149260114455505408/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6149260114455505408&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6149260114455505408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6149260114455505408'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/03/blog-post.html' title='广东打工'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3739803888836823481</id><published>2009-03-14T12:01:00.000+08:00</published><updated>2009-03-14T12:03:03.906+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>A new begin</title><content type='html'>不管这次怎么样，毕竟开始了一个新的阶段&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3739803888836823481?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3739803888836823481/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3739803888836823481&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3739803888836823481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3739803888836823481'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/03/new-begin.html' title='A new begin'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6368538379192395904</id><published>2009-03-07T13:01:00.002+08:00</published><updated>2009-03-07T13:02:55.010+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Sed'/><title type='text'>sed学习</title><content type='html'>sed缓冲区&lt;br /&gt;sed 处理文件时，会把文件的每一行保存在一个临时缓冲区，即模式空间。&lt;br /&gt;sed处理完一行后，该模式空间就被清空，下一行等待处理。因此可把模式空间内容用命令h复制并&lt;br /&gt;保存在一个暂存缓冲区(holding buffer)内，然后可用命令G把它从暂存缓冲区读出一行，并放回模式空间缓冲区，&lt;br /&gt;追加在模式空间内当前行的后面。&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;1. sed '/north/p' datafile&lt;br /&gt;缺省情况下，sed会把输入的所有行都打印在标准输出上;如果某行匹配了north,则sed将该行再打印一遍。&lt;br /&gt;&lt;br /&gt;2. sed -n '/north/p' datafile&lt;br /&gt;只打印匹配north的行.&lt;br /&gt;&lt;br /&gt;3.删除d&lt;br /&gt;sed '3d' datafile   删除第3行&lt;br /&gt;sed '3,$d' datafile   删除从第3行到结束&lt;br /&gt;sed '$d' datafile   删除最后一行&lt;br /&gt;sed '/north/d' file   删除匹配north的行&lt;br /&gt;&lt;br /&gt;4.替换命令s&lt;br /&gt;sed 's/west/north/g' datafile 全局替换&lt;br /&gt;sed 's/[0-9][0-9]$/&amp;.5/g' datafile&lt;br /&gt;所有以两位数字结尾的行，后面加上.5(点5)&lt;br /&gt;&lt;br /&gt;sed -n 's/\(Mar\)got/\1lianne/p' datafile&lt;br /&gt;Mar作为标签1,将Margot 替换成Marianne&lt;br /&gt;&lt;br /&gt;sed 's#3#88#g' datafile等价于 sed 's/3/88/g' datafile&lt;br /&gt;&lt;br /&gt;指定行范围：逗号&lt;br /&gt;sed -n '/west/,/east/p' datafile 指定在模式west和east之间的行，打印&lt;br /&gt;sed -n '5,/^northeast/p' datafile 打印从第5行到第一个以northeast开头的行之间的所有行&lt;br /&gt;sed '/west/,/east/s/$/**VACA**/' datafile修改从模式east和west之间的所有行，并将行尾$替换成**VACA**&lt;br /&gt;&lt;br /&gt;多重编辑e&lt;br /&gt;sed -e '1,3d' -e 's/Mike/Jones/' datafile&lt;br /&gt;删除1到3行，然后再替换Mike为Jones(先全部执行完第一重编辑，再进行第二重编辑)&lt;br /&gt;&lt;br /&gt;读入r&lt;br /&gt;sed '/suan/r newfile' datafile&lt;br /&gt;如果文件datafile中某一行匹配到模式suan，则在该行后读入newfile的内容。&lt;br /&gt;&lt;br /&gt;写文件w&lt;br /&gt;sed -n '/north/w newfile' datafile&lt;br /&gt;如果文件datafile中某一行匹配到模式north，则把该行写入newfile文件中&lt;br /&gt;&lt;br /&gt;追加&lt;br /&gt;sed '/^north /a\\&lt;br /&gt;-----&gt;THE NORTH SALES&lt;------&lt;br /&gt;&lt;br /&gt;插入&lt;br /&gt;sed '/eastern/i\\&lt;br /&gt;NEW ENGLAND REGION\\&lt;br /&gt;----------------' datafile&lt;br /&gt;下一行命令n&lt;br /&gt;sed '/eastern/{n;s/AM/Archie/;}' datafile&lt;br /&gt;如果某一行匹配到模式eastern,   命令n指示sed用下一输入行，即包含AM的那一行，&lt;br /&gt;替换模式空间中的当前行，并用Archie替换AM，然后打印该行，再继续向下处理&lt;br /&gt;&lt;br /&gt;转换y&lt;br /&gt;sed '1,3y/abcdef/ABCDEF/' datafile&lt;br /&gt;   把第1到3行中abcedf字母转换成大写字母&lt;br /&gt;&lt;br /&gt;退出q&lt;br /&gt;sed '5q' datafile打印5行后退出&lt;br /&gt;sed '/Lewis/{s/Lewid/Joseph/;q;} datafile&lt;br /&gt;   某行匹配到Lewis时，先用Joseph替换Lewis，然后立即退出&lt;br /&gt;&lt;br /&gt;暂存和取用(h和g命令)&lt;br /&gt;sed -e '/WE/{h;d;}' -e '/CT/{G;}' datafile&lt;br /&gt;找到某一行匹配模式WE，用命令h将该行从模式缓冲区拷贝到一个暂存缓冲区，再用命令d把&lt;br /&gt;该模式空间缓冲区那份拷贝删除。找到模式CT后，再用G命令取出保存在暂存缓冲区中的副本，&lt;br /&gt;用其替换模式空间当前行。&lt;br /&gt;&lt;br /&gt;暂存和互换命令x&lt;br /&gt;sed -e '/Patricia/h' -e '/Margot/x' datafile&lt;br /&gt;x命令将暂存区的内容和模式空间内的当前行互换&lt;br /&gt;sed脚本编程：把sed组成一个文本文件，执行脚本时，sed 先将输入文件中第一行拷贝到模式缓冲区&lt;br /&gt;，然后执行脚本中的所有命令;每行处理完毕后，sed再拷贝文件中下一行到模式缓冲区，&lt;br /&gt;执行脚本中的所有命令。&lt;br /&gt;如：&lt;br /&gt;/Lewis/a\&lt;br /&gt;     Lewis is TOP salesperson for April!!!\&lt;br /&gt;     Lewis is moving to the southern district next month.\&lt;br /&gt;/Margot/c\&lt;br /&gt;     ********************&lt;br /&gt;     MARGOT HAS RETIRED\&lt;br /&gt;     ********************&lt;br /&gt;/i\&lt;br /&gt;   mployer database\&lt;br /&gt;   _________________&lt;br /&gt;&lt;br /&gt;$d&lt;br /&gt;&lt;br /&gt;%sed -f filename datafile&lt;br /&gt;sed -n '/sentimeatal/p' filename&lt;br /&gt;sed '1,3d' filename &gt; newfile&lt;br /&gt;sed '/[Dd]aniel/d' filename&lt;br /&gt;sed -n '15,20p' filename&lt;br /&gt;sed '/1,10s/Montana/MT/g' filename&lt;br /&gt;sed '/March/!d' filename&lt;br /&gt;sed '/March/\!d' filename&lt;br /&gt;sed 's/\([Oo]cuur\)ence/\1rence' file&lt;br /&gt;sed '/^....//' file删除每行前4个字符&lt;br /&gt;sed '/....$//' file删除每行后4个字符&lt;br /&gt;sed '/east/,/west/s/North/South/' filename&lt;br /&gt;把从east到west范围内出现的第一个North替换成South,只一次&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sed 's/%//g'   把%换成空格&lt;br /&gt;&lt;br /&gt;sed 's/^0*//g' 把以0开头的数字换成空格&lt;br /&gt;&lt;br /&gt;sed /^$/d 　删除空行&lt;br /&gt;&lt;br /&gt;sed $d 删除最后一行&lt;br /&gt;&lt;br /&gt;sed ld 删除第一行&lt;br /&gt;&lt;br /&gt;sed 's/[0-9][0-9]*/&amp;   password/g'   file.txt   把password连接到&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6368538379192395904?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6368538379192395904/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6368538379192395904&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6368538379192395904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6368538379192395904'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/03/sed.html' title='sed学习'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-4265641260966561639</id><published>2009-02-25T21:39:00.003+08:00</published><updated>2009-02-25T21:54:05.350+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='闲情逸致'/><title type='text'>《江城子·十年生死两茫茫》有感</title><content type='html'>　　十年生死两茫茫。&lt;br /&gt;　　不思量，自难忘。&lt;br /&gt;　　千里孤坟，无处话凄凉。&lt;br /&gt;　　纵使相逢应不识，&lt;br /&gt;　　尘满面，鬓如霜。&lt;br /&gt;　　夜来幽梦忽还乡。&lt;br /&gt;　　小轩窗，正梳妆。&lt;br /&gt;　　相顾无言，惟有泪千行。&lt;br /&gt;　　料得年年断肠处，&lt;br /&gt;　　明月夜，短松冈。 &lt;br /&gt;yn很喜欢的一首词，自己本来是不大喜欢苏轼的，但是被yn影响的，现在是越发的喜欢了，可能总是处在逆境中才能理解这份心境吧，现在也只能用'心远地自偏'来安慰自己了，和从前喜欢的很的《春江花月夜》真是2种不同的境界了，不一样的意境，却同样的喜爱。&lt;br /&gt;说实话，是不甚喜欢这类苦寒作品的，但是此时的我还能更喜欢些什么呢？&lt;br /&gt;十年生死两茫茫，这才刚刚几年啊，加油吧，自我勉励下，高中时的淡泊以明志，宁静而致远的心境什么时候才能在归来呢？可能在不久的将来，也可能杳无归期。&lt;br /&gt;不管怎么说，苏轼还是令人佩服的，创造了那么多的第一，一生浪漫天真，能够创造科举的奇迹，但是最后却无法在科举成功的背后成功的生存下去，这样的情形和如今又是何其的相似呢？天真注定浪漫，但是天真注定不符合现实的生存规则，愿自己保持这份纯真的心境呢？还是在生活（自己的轻薄文化素养怎敢与之相提）上成为第二个苏东坡呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-4265641260966561639?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/4265641260966561639/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=4265641260966561639&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4265641260966561639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4265641260966561639'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/02/blog-post.html' title='《江城子·十年生死两茫茫》有感'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-7708217136820295512</id><published>2009-01-20T19:43:00.001+08:00</published><updated>2009-01-20T19:45:26.633+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>买到票了，呵呵</title><content type='html'>和jy，早上5点出发打车去，到立交桥是5，30吧，派了近5个小时，哎，总算是买到了，还是卧铺啊，呵呵，受点苦，买到了还是挺开心的&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-7708217136820295512?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/7708217136820295512/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=7708217136820295512&amp;isPopup=true' title='123 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/7708217136820295512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/7708217136820295512'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/01/blog-post_20.html' title='买到票了，呵呵'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>123</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5476247456746005833</id><published>2009-01-18T16:21:00.000+08:00</published><updated>2009-01-18T16:22:39.359+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>新年新气象</title><content type='html'>一年过去了，没有新的成就啊，哎，今年得努力了&lt;br /&gt;fighting&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5476247456746005833?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5476247456746005833/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5476247456746005833&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5476247456746005833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5476247456746005833'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2009/01/blog-post.html' title='新年新气象'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-1477096081459620337</id><published>2008-12-08T08:48:00.001+08:00</published><updated>2008-12-08T08:51:13.675+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>Waiting For You</title><content type='html'>so long time&lt;br /&gt;this make me mad&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-1477096081459620337?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/1477096081459620337/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=1477096081459620337&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1477096081459620337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1477096081459620337'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/12/waiting-for-you.html' title='Waiting For You'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-4084989429794761029</id><published>2008-11-02T10:27:00.000+08:00</published><updated>2008-11-02T10:29:26.740+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='音乐'/><title type='text'>S.E.N.S</title><content type='html'>听听吧，很不错的&lt;br /&gt;&lt;embed src="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2F210.29.192.25%2Fxlzx%2FFilesupload%2FMusic%2F633443002122187500.mp3&amp;playerID=10&amp;bg=0xCDDFF3&amp;leftbg=0x357DCE&amp;lefticon=0xF2F2F2&amp;rightbg=0x357DCE&amp;rightbghover=0x4499EE&amp;righticon=0xF2F2F2&amp;righticonhover=0xffffff&amp;text=0x357DCE&amp;slider=0x357DCE&amp;track=0xFFFFFF&amp;border=0x357DCE&amp;loader=0x8EC2F4&amp;loop=no&amp;autostart=no" type="application/x-shockwave-flash" wmode="transparent" height="40" width="290"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-4084989429794761029?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/4084989429794761029/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=4084989429794761029&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4084989429794761029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4084989429794761029'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/11/sens.html' title='S.E.N.S'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2472846741992238418</id><published>2008-11-01T18:04:00.001+08:00</published><updated>2008-11-01T18:06:02.387+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='人生感悟'/><title type='text'>那时的他们</title><content type='html'>看看吧，感触颇多&lt;br /&gt;&lt;embed src="http://player.youku.com/player.php/sid/XNDEzMTk3MDQ=/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2472846741992238418?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2472846741992238418/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2472846741992238418&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2472846741992238418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2472846741992238418'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/11/blog-post.html' title='那时的他们'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6914213034705576874</id><published>2008-10-26T21:25:00.001+08:00</published><updated>2008-10-26T21:27:16.646+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='娱乐'/><title type='text'>老外的中文课笔记</title><content type='html'>老外的中文课&lt;br /&gt;&lt;br /&gt;Year Tim,&lt;br /&gt;&lt;br /&gt;shall by too dull doll by too jack won,&lt;br /&gt;&lt;br /&gt;dolphin long can Jim shall by too low,&lt;br /&gt;&lt;br /&gt;shall by too when dull low, doll car low,&lt;br /&gt;&lt;br /&gt;dolphin long doll Ham Eason&lt;br /&gt;&lt;br /&gt;“more power!”&lt;br /&gt;老外上中文课的笔记。下面是中文课文。&lt;br /&gt; &lt;span id="fullpost"&gt;一天&lt;br /&gt;小白兔到大白兔家去玩&lt;br /&gt;大灰狼看见小白兔了&lt;br /&gt;小白兔闻到了，躲开了&lt;br /&gt;大灰狼大喊一声&lt;br /&gt;莫跑！ &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6914213034705576874?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6914213034705576874/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6914213034705576874&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6914213034705576874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6914213034705576874'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/10/blog-post.html' title='老外的中文课笔记'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6540311881429246581</id><published>2008-09-30T20:42:00.000+08:00</published><updated>2008-09-30T20:44:07.043+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='其他'/><title type='text'>普通中国人的一天(2008网络版)</title><content type='html'>我早上醒来，先用二甘醇超标的田七牙膏刷牙，再用发臭的蓝藻水洗脸，给儿子兑一瓶添加三聚氰胺的三鹿奶粉，自己喝杯黑作坊的豆浆，吃几个硫磺熏白了的馒头， 或者是废纸箱当肉馅的包子，就点儿废旧油漆桶里腌的榨菜，饭盒里放几个安徽人05年包的粽子（上班饿了吃），吃饱喝足，出门，深吸一口富含CO的空气，到 断成两截的九江大桥上溜溜腿儿，找找白蛇仙子和许相公在断桥的感觉。 中午跟同事一起到肯德基吃顿苏丹红炸鸡，喝了杯苯超标的可乐。下午用山寨手机给朋友打电话，听见她哭哭啼啼，大约是炒股亏大了，约她出来到新开的菜馆吃顿 饭开开心,点了几个地沟油炒的菜: 一盘避孕药催大的铁板鳝鱼，一盘臭水沟捞来的麻辣龙虾，一盘农药高残留的清炒菠菜，一盘亚硝酸盐超标的卤菜拼盘,一盘饱含瘦肉精的熘肉片,一盘福尔马林泡 过的火爆毛肚,两小碗硫磺熏过的银耳枸杞羹,老板免费送了一杯重金属超标百多倍的碧螺春茶，再喝了点甲醛勾兑的啤酒 ，算帐的时候318元,吉利，老板又找回了一张假币。 回家的时候被宝马撞倒，太幸运! 得让丫出点血，所以躺着不动，一睁眼，看宝马调回头来碾压……以史无前例的速度爬起来跑掉。 回家。要睡觉的时候，被刚装修完的甲醛呛得眼泪直流，只好把脑袋蒙到黑心棉被子里。想起房子还有好几十万贷款加利息，辗转反侧到天半亮都没眯着。找安眠药 吃了半瓶也没用，含在嘴里，哦，是糯米粉! 想想喝点农药死了算了,咕咕咕大半瓶下去一点动静没有,原来这农药是用酱油勾兑的!&lt;span id="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6540311881429246581?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6540311881429246581/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6540311881429246581&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6540311881429246581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6540311881429246581'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/09/2008.html' title='普通中国人的一天(2008网络版)'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-719894312863456206</id><published>2008-09-02T13:18:00.001+08:00</published><updated>2008-09-07T11:22:21.306+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='娱乐'/><title type='text'>移动公司老总被按摩小姐气得吐血！</title><content type='html'>一天，某地移动老总加完夜班后想找个地方按摩放松放松，于是驾车去到一家桑拿按摩中心。&lt;br /&gt;　　进到按摩中心，移动老总选了一个最漂亮的按摩小姐，然后就跟着她往里走。&lt;br /&gt;　　“老板，请问你是在大厅按摩还是到VIP包间按？是要普通服务还是移动贵宾服务？”按摩小姐声音甜甜的问道。&lt;br /&gt;　　“到VIP包间吧；要移动贵宾服务。”&lt;br /&gt;　　于是按摩小姐把移动老总带进一间VIP包间里。&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;　　“老板，VIP包间要加收200块小费，按我们的规定，请你先付小费我才能为你提供服务。”&lt;br /&gt;　　“别的地方小费都没有这么高噢？”移动老总问道。&lt;br /&gt;　　“不好意思，你从别的地方消费转过来到我们这里消费，这200块小费就相当于移动公司的“漫游费”，一点都不高的。”&lt;br /&gt;　　移动老总一听，虽然觉得这规矩有点特别，但心想这里的小姐不但非常懂礼貌而且比别的地方的小姐长得漂亮多了，规矩特别点也是当然的，于是痛快的掏出两张“红牛”交给按摩小姐。&lt;br /&gt;　　收下钱后，按摩小姐又问：“老板，请问你是要做普通按摩还是全套按摩？”&lt;br /&gt;　　“全套的吧。”移动老总答。&lt;br /&gt;　　“全套按摩要先交500块基本消费费，麻烦你先把钱交了。”按摩小姐又说。&lt;br /&gt;　　“这也太离谱了吧？”移动老总有点不痛快了；不过既然来了最后还是把钱交了。&lt;br /&gt;　　收了钱后按摩小姐又问：“老板，请问你要不要先个洗澡？”&lt;br /&gt;　　移动老总心想“钱都交了怎不洗呢？”于是说道“要洗。”&lt;br /&gt;　　“老板，请问你洗热水还是冷水？”&lt;br /&gt;　　“热水。”&lt;br /&gt;　　“请你加付100块热水费。”按摩小姐又说道。&lt;br /&gt;　　“妈的，还有没有王法了？”可气归气，衣服都脱了能总不能不洗吧？移动老总无奈的交了钱。&lt;br /&gt;　　“小姐，卫生间里怎么黑糊糊的什么也看不见？你到是把灯开开呀。”&lt;br /&gt;　　“好的，马上就为你开；不过请你先交100块来电显示费。”按摩小姐礼貌的回答。&lt;br /&gt;　　“你们宰猪啊？”移动老总这下被气坏了。&lt;br /&gt;　　“你是我们尊敬的顾客，怎么能说是猪呢？老板你真幽默！”按摩小姐彬彬有礼道。&lt;br /&gt;　　洗了一会儿，移动老总对按摩小姐说“有没有沐浴露？”&lt;br /&gt;　　“不好意思，沐浴露要另外收费的；不过我们在搞活动，香皂是免费的。”&lt;br /&gt;　　“那就拿块香皂来吧。”&lt;br /&gt;　　两分钟后按摩小姐拿来一块用去了好多的香皂。移动老总一看，生气道：“你怎么能把别人用过的香皂拿来给我用？”&lt;br /&gt;　　“不好意思，我们这里的香皂是随意拿的，拿到那块你就要用那块。”&lt;br /&gt;　　“这样我不要用了。”&lt;br /&gt;　　“那请你先付清这个月的香皂使用费共300块。”按摩小姐和气的说道。&lt;br /&gt;　　“不是说免费的？怎么又要收费？”移动老总瞪大了眼睛。&lt;br /&gt;　　“今晚是免费让你使用，但下次的都是收费的。”&lt;br /&gt;　　“可我下次不会再来你们这里了，根本用不着你们的狗屁香皂，凭什么收我的钱？”&lt;br /&gt;　　“我们这里规定使用香皂必须至少使用一个月，不按天计算。”&lt;br /&gt;　　“我靠！比孙二娘的店还黑！”移动老总无奈的又交了300块钱说“这回总该给我换快没用过的香皂了吧？”&lt;br /&gt;　　“抱歉，就用这块吧；你见过移动用户使用彩铃业务的时候可以自己选择使用哪一首彩铃的吗？”&lt;br /&gt;　　没办法，虽然感觉别人用过了很恶心，可恶心也要用了——不然300块钱就白花了。移动老总极度不爽地三两下洗完了澡。&lt;br /&gt;　　“现在开始服务吧。”移动老总想快点完事离开这里了。&lt;br /&gt;　　“好的，请你先交500块服务费。”按摩小姐回答。&lt;br /&gt;　　“刚才不上交了500块了吗？”移动老总怒问。&lt;br /&gt;　　“那500块是基本消费——相当移动的月租费，你现在再交500块才能得到服务。”按摩小姐又答。&lt;br /&gt;　　移动老总心想这地方没法玩了还是快点走吧，于是就说：“算了、算了，我不要服务了；你把刚才的500块退给我，我要走了。”&lt;br /&gt;　　“你真的不要服务了吗、真的要走吗？”按摩小姐问。&lt;br /&gt;　　“不走还留在这里让你们当猪宰啊？快退钱给我。”移动老总已经气得两眼冒火了。&lt;br /&gt;　　“是这样的，因为刚才前台已经开始记钟了，所以那500块不能再退给你；就象移动的卡一开通，月租费就不退了。”按摩小姐耐心的解释。&lt;br /&gt;　　“去他吗的......”用了块别人用过的香皂洗了个澡就花了1000多块，这一刀被宰得也太狠、太窝囊了......移动老总彻底抓狂了，忿忿的穿上衣服头也不抬就往外走。&lt;br /&gt;　　谁知还没走出门口，按摩小姐又说话了：“老板，请你先交了3000块取消服务押金再走；三个月后可凭收据来这里我们给你退回。”&lt;br /&gt;　　“我要走了，永远不来你们这里了；还要什么服务押金？”移动老总脑门直冒烟。&lt;br /&gt;　　“不是‘服务押金’是‘取消服务押金’；你虽然说要走，但我们怎么知道你不会不会跑到其它包间去做按摩、又怎知道你改天会不会再来？所以我们要先收你 3000块‘取消服务押金’，要是三个月后发现你确实不在我们这里接受过服务，我们就会把押金退还你——这跟你到移动公司去销号是一样的。”&lt;br /&gt;　　“老子就是不交，看你们还敢抢了老子不成？”移动老总是火冒三丈了。&lt;br /&gt;　　“我们当然不会抢你，不过你要是不办理取消服务手续的话，以后每个月我们都要收取你500块的按摩基本消费费。”按摩小姐礼貌的回答。&lt;br /&gt;　　“你们有本事找到我就去要吧。”堂堂移动老总什么场面没见过，还能被你一个按摩小姐给吓住了？于是移动老总头也不回就走了出去。&lt;br /&gt;　　刚刚走出按摩中心大门，刚才的那个按摩小姐又跟上来说道：“老板，前面你在我们这里开VIP包间的时候用身份证做了登记，现在你的资料以保存在我们的 电脑里，如果你现在不办理取消服务手续，那么以后每个月我们都会通过法院给你的公司寄去按摩欠费单；同时，我们的客服人员也将会不定期打电话到你家催交欠 费的！”&lt;br /&gt;　　移动老总听完按摩小姐这话，顿时感到嗓眼一腥“哇”的一口鲜血喷口而出，接着两眼一黑，扑通一声倒在了按摩中心的大门外！               &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-719894312863456206?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/719894312863456206/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=719894312863456206&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/719894312863456206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/719894312863456206'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/09/blog-post.html' title='移动公司老总被按摩小姐气得吐血！'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2992535481697442730</id><published>2008-08-20T18:27:00.001+08:00</published><updated>2008-08-20T18:30:20.943+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>坚持</title><content type='html'>平静枯燥的生活，坚持，，，，，&lt;br /&gt;今天mrmei comes ，好久不见了，可是这份平静的心又被打乱了，很想见他可又想专心看书，觉得了，见他一面还是坚持闭关了&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2992535481697442730?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2992535481697442730/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2992535481697442730&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2992535481697442730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2992535481697442730'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/08/blog-post.html' title='坚持'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-1188298511348412025</id><published>2008-07-06T17:52:00.002+08:00</published><updated>2008-07-06T17:56:37.472+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='ebuild'/><title type='text'>bmpanel-9999.ebuild</title><content type='html'>&lt;span style="font-weight: bold;" id="fullpost"&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 0);"&gt;# Copyright 1999-2007 Gentoo Foundation&lt;br /&gt;# Distributed under the terms of the GNU General Public License v2&lt;br /&gt;# $Header: /var/cvsroot/gentoo-x86/x11-misc/bmpanel/bmpanel-9999.ebuild,v 1.10 2008/05/21 22:43:41 uberlord Exp $&lt;br /&gt;&lt;br /&gt;inherit git&lt;br /&gt;EGIT_REPO_URI="git://github.com/nsf/bmpanel.git"&lt;br /&gt;&lt;br /&gt;DESCRIPTION="A themeable reincarnation of fspanel"&lt;br /&gt;HOMEPAGE="http://nsf.110mb.com/bmpanel/"&lt;br /&gt;SRC_URI=""&lt;br /&gt;&lt;br /&gt;LICENSE="GPL-2"&lt;br /&gt;SLOT="0"&lt;br /&gt;KEYWORDS="amd64 ppc sparc x86 ~x86-fbsd"&lt;br /&gt;IUSE=""&lt;br /&gt;RESTRICT="strip mirror"&lt;br /&gt;&lt;br /&gt;RDEPEND="media-libs/imlib2&lt;br /&gt; &gt;=media-libs/freetype-2.1.10-r3"&lt;br /&gt;DEPEND="${RDEPEND}&lt;br /&gt; dev-util/pkgconfig&lt;br /&gt; x11-proto/xproto&lt;br /&gt; media-libs/fontconfig"&lt;br /&gt;src_unpack() {&lt;br /&gt; git_src_unpack&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_compile() {&lt;br /&gt;#    econf || die "configure failed"&lt;br /&gt; ./configure || die "configure failed"&lt;br /&gt;#    emake || die "compile failed"&lt;br /&gt; emake || die "compile failed"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_install () {&lt;br /&gt; make DESTDIR="${D}" install || die "make install failed"&lt;br /&gt; dodoc AUTHORS README&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-1188298511348412025?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/1188298511348412025/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=1188298511348412025&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1188298511348412025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1188298511348412025'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/07/bmpanel-9999ebuild.html' title='bmpanel-9999.ebuild'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6550429079853314993</id><published>2008-07-06T17:45:00.003+08:00</published><updated>2008-07-06T17:57:33.152+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='ebuild'/><title type='text'>qtm-0.6.3.ebuild</title><content type='html'>&lt;span style="color: rgb(0, 0, 0); font-weight: bold;" id="fullpost"&gt;&lt;br /&gt;&lt;blockquote&gt;# Copyright 1999-2007 Gentoo Foundation&lt;br /&gt;# Distributed under the terms of the GNU General Public License v2&lt;br /&gt;# $Header: /var/cvsroot/gentoo-x86/kde-misc/qtm/qtm-0.6.3.ebuild,v 1.10 2008/04/14 22:43:41 uberlord Exp $&lt;br /&gt;&lt;br /&gt;DESCRIPTION="A blogging client which is presently capable of composing, formatting and submitting blog entries to a weblog"&lt;br /&gt;HOMEPAGE="http://qtm.blogistan.co.uk"&lt;br /&gt;SRC_URI="http://prdownloads.sourceforge.net/catkin/${P}.tar.bz2"&lt;br /&gt;&lt;br /&gt;LICENSE="GPL-2"&lt;br /&gt;SLOT="0"&lt;br /&gt;KEYWORDS="amd64 ppc sparc x86 ~x86-fbsd"&lt;br /&gt;IUSE=""&lt;br /&gt;RESTRICT="strip mirror"&lt;br /&gt;&lt;br /&gt;RDEPEND="&gt;=x11-libs/qt-4.2&lt;br /&gt;&gt;=dev-util/cmake-2.4.3"&lt;br /&gt;DEPEND="${RDEPEND}&lt;br /&gt;dev-util/pkgconfig&lt;br /&gt;dev-util/scons&lt;br /&gt;x11-proto/xproto"&lt;br /&gt;&lt;br /&gt;src_unpack() {&lt;br /&gt;unpack ${A}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_compile() {&lt;br /&gt;cmake -D USE_STI:BOOL=TRUE .&lt;br /&gt;emake || die "compile failed"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_install () {&lt;br /&gt;make DESTDIR="${D}" install || die "Installation failed"&lt;br /&gt;dodoc README&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6550429079853314993?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6550429079853314993/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6550429079853314993&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6550429079853314993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6550429079853314993'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/07/qtm-063ebuild.html' title='qtm-0.6.3.ebuild'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-1697279832021466939</id><published>2008-07-05T23:53:00.003+08:00</published><updated>2008-11-13T10:25:33.759+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='励志'/><title type='text'>哈佛大学凌晨四点的图书馆</title><content type='html'>&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2HFtNoJYhCU/SG-ZWZWxatI/AAAAAAAAF7c/LiDysJeEZ-g/s1600-h/m.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_2HFtNoJYhCU/SG-ZWZWxatI/AAAAAAAAF7c/LiDysJeEZ-g/s200/m.jpg" alt="" id="BLOGGER_PHOTO_ID_5219559103188265682" border="0" /&gt;&lt;/a&gt;馆训:&lt;br /&gt;1．现在睡觉的话会做梦而现在学习的话会让梦实现&lt;br /&gt;This moment will nap, you will have a dream; But this moment study,you will interpret a dream.&lt;br /&gt;2．我无所事事地度过的今天是昨天死去的人们所奢望的明天&lt;br /&gt;I leave uncultivated today, was precisely yesterday&lt;br /&gt;perishes tomorrow which person of the body implored.&lt;br /&gt;3．感到晚了的时候其实是最快的时候&lt;br /&gt;Thought is already is late, exactly is the earliest time.&lt;br /&gt;4．不要把今天的事拖到明天&lt;br /&gt;Not matter of the today will drag tomorrow.&lt;br /&gt;5．学习的痛苦是一时的而没有学习的痛苦是一辈子的&lt;br /&gt;Time the study pain is temporary, has not learned the pain islife-long.&lt;br /&gt;&lt;span id="fullpost"&gt;6．学习不是人生的全部但连学习都征服不了你还能做什么？&lt;br /&gt;The study certainly is not the life complete. But, sincecontinually life part of - studies also is unable to conquer, what butalso can make?&lt;br /&gt;7．学习不是因为缺少时间而是缺少努力&lt;br /&gt;Studies this matter, lacks the time, but is lacks diligently.&lt;br /&gt;8．所有人的成功都不是偶然的&lt;br /&gt;Nobody can casually succeed, it comes from the thoroughself-control and the will.郭澧葱&lt;br /&gt;9.无法避免的痛苦就去享受吧！&lt;br /&gt;Please enjoy the pain which is unable to avoid.&lt;br /&gt;10．早起的鸟儿有虫吃&lt;br /&gt;Only has compared to the others early, diligently diligently, canfeel the successful taste.&lt;br /&gt;11．成功并不属于每个人&lt;br /&gt;Nobody can casually succeed&lt;br /&gt;12.时间在流逝&lt;br /&gt;HOW time flies&lt;br /&gt;13.今天流下的口水将变成明天流下的泪水&lt;br /&gt;Now drips the saliva, will become tomorrow the tear&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-1697279832021466939?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/1697279832021466939/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=1697279832021466939&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1697279832021466939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1697279832021466939'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/07/blog-post_05.html' title='哈佛大学凌晨四点的图书馆'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_2HFtNoJYhCU/SG-ZWZWxatI/AAAAAAAAF7c/LiDysJeEZ-g/s72-c/m.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-4521014870140152736</id><published>2008-07-05T23:48:00.001+08:00</published><updated>2008-07-05T23:51:01.585+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='电脑'/><title type='text'>程序员八荣八耻</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:130%;" &gt;以动手实践为荣，以只看不练为耻。&lt;br /&gt;以打印日志为荣，以出错不报为耻。&lt;br /&gt;以局部变量为荣，以全局变量为耻。&lt;br /&gt;以单元测试为荣，以手工测试为耻。&lt;br /&gt;以代码重用为荣，以复制粘贴为耻。&lt;br /&gt;以多态应用为荣，以分支判断为耻。&lt;br /&gt;以定义常量为荣，以魔法数字为耻。&lt;br /&gt;以总结思考为荣，以不求甚解为耻。&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-4521014870140152736?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/4521014870140152736/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=4521014870140152736&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4521014870140152736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4521014870140152736'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/07/blog-post.html' title='程序员八荣八耻'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5027880426918931236</id><published>2008-06-07T22:30:00.002+08:00</published><updated>2008-06-07T22:32:34.496+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>一首老歌</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/40XInRdJpGM&amp;amp;hl=en"&gt;&lt;embed src="http://www.youtube.com/v/40XInRdJpGM&amp;amp;hl=en" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5027880426918931236?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5027880426918931236/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5027880426918931236&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5027880426918931236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5027880426918931236'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/06/blog-post_07.html' title='一首老歌'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2697792232823112228</id><published>2008-06-06T20:23:00.001+08:00</published><updated>2008-06-06T20:23:45.491+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='电脑'/><title type='text'>生日快乐！x86标准30岁了【转】</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img height="36" src="http://www.cnbeta.com/images/topics/032_intel.gif" width="54" /&gt; &lt;strong&gt;30年前的6月8号，Intel发布了其第一款16位的微处理器--8086，还有一句著名的广告语“开启了一个时代”。有点夸大其词？那是，不过也的确说的比较准。当8086的光环退去之后，其支撑架构--后来我们所熟知的x86也成为了最成功的业界技术标准。&lt;/strong&gt;&lt;/p&gt; &lt;span id="fullpost"&gt;   &lt;p&gt;“X86”是Intel和其他几家公司处理器所支持的一组机器指令集，它大致确定了芯片的使用规范。从8086到80186、80286、80386、80486，再到后来的奔腾系列以及现在的多核技术，都是使用一脉相承的x86指令集，既不断扩展又向后兼容。      &lt;br /&gt;在8086之后的30年间，x86家族横跨了桌面、服务器、便携式电脑，超级计算机等等。无数对手败倒在了其脚下，甚至是一些看似已成定局的领域。例如近年来被x86所吞掉的苹果电脑，原来一直使用的是PowerPC。       &lt;br /&gt;那么Intel的架构是怎么统治了电脑世界这么多年？让我们一起来看看。       &lt;br /&gt;最初       &lt;br /&gt;在 1971年，Intel为一家日本计算器厂制造了Intel历史上的第一块处理器——4位的4004。很快，在1975年，Intel又推出了8位的处理器8008和8080。8080处理器为Altair8800 PC所采用。顺便说一句，Altair8800 PC是一台邮件订单处理计算机。比尔·盖茨和保罗·艾伦建立微软公司的时候，就曾把Basic卖给Altair8800 PC。       &lt;br /&gt;3年以后，16位的8086初次登场。在80年代初，IBM公司选择了8086的衍生产品8088作为IBM PC的处理器。IBM的这一行为给X86带来了巨大发展，并且帮助它成为了行业标准——一直到今天。       &lt;br /&gt;Intel 执行副总裁Patrick Gelsinger说：“PC行业发展的革命性转折点是1985年32位处理器80386的推出，它推动了整个行业的发展。当时，X86需要从早期的16 位寻址空间进行升级。”人们问我们：“32位是什么？”我们说：“它是给微型计算机和中型计算机用的。”那时人们总会嘲笑们说这太浪费了，这些是没必要的事情。       &lt;br /&gt;当时IBM抛弃了386，因为当时没有32位的软件发挥出它的性能。IBM自己也开发了16位的操作系统叫做OS/2。       &lt;br /&gt;当时担任386设计小组成员的Patrick Gelsinger说：“IBM当时拥有自己的整个架构。它们有它们自己的应用程序，操作系统和硬件设计。当IBM开发下一代产品时，他们将是唯一能够给提供全套解决方案的，只是并不能保证下一代过渡的兼容性。”       &lt;br /&gt;“当386到来时候，所以的一切变了，”Gelsinger说，：“我们从一个垂直的行业到一个水平的行业，而且我们真的打开了新世界之门。”       &lt;br /&gt;386 之后，1989年486诞生了。由于当时数字不能作为商标，Intel从1993年开始改变了产品命名方法。第五代处理器被命名为Pentium而不是 586。数字命名产品转变为Pentium命名（比如Pentium Pro, Pentium II and Pentium D）。从那时开始，Intel在X86体系中，增加了低端的赛扬系列和高端的双核系列产品。       &lt;br /&gt;所有的基于X86架构的芯片，开始于8086，一直延续到今天。当然他们的命名发生了变化，运算速度也有了惊人的提升。       &lt;br /&gt;成功的秘方       &lt;br /&gt;为什么X86能一直成功，击退甚至完全打败其他的处理器架构？从一开始来说，X86的诞生就是在一个很恰当的时间点。1978年的时候，计算从巨大、昂贵的中型计算机转变为小型、便宜的微型计算机已经有几年了。台式电脑成为变革的前沿。       &lt;br /&gt;更重要的是，X86证明了戈登·摩尔在1965年提出的一个定律。戈登.摩尔在后来成为Intel的主席和CEO。摩尔说，在成本不变的前提下，微处理每过 2年其运算速度会翻一番。他的预言，后来被成为摩尔定律，被证实是正确的。X86的发展道路越走越宽。X86处理器也从数据处理中心走向办公室和千家万户。       &lt;br /&gt;并且8086以及它的后续产品一直与电脑行业两个大名鼎鼎的名字紧紧联系在一起。在1972年，比尔·盖茨和保罗·艾伦就尝试用性能很弱的8008开发Basic编程语言，虽然后来失败了。但是他们最终在性能强劲一些的8080处理器上开发出了Basic语言，并在1975年把 Basic语言应用到Altair8800 PC。       &lt;br /&gt;这成为Intel和微软亲密关系的开始。微软从那开始，创造了一个巨大的软件帝国，并推动了整个行业的发展。在X86架构成功的过程中，可能没有比RISC 处理器的影响更巨大的了。       &lt;br /&gt;RISC的风险       &lt;br /&gt;在 20世纪80年代晚期和90年代早期，X86的一个巨大威胁产生了——RISC(精简指令集计算机)。采用RISC架构的处理器有Sun Sparc、IBM/苹果/摩托罗拉的PowerPC，以及MIPS处理器。RISC架构的核心思想是：处理器的指令集如果十分简单，一个时钟周期运行一个指令，那么处理器的速度会十分快。RISC的核心思想有别于以X86为代表的CISC(复杂指令集计算机)，CISC的核心思想是采用复杂的多时钟周期指令。       &lt;br /&gt;计算机专家们和Intel的竞争对手们曾经预言CISC会最终消亡。“那确实是一个十分艰难的时期”，Gelsinger承认。确实，Intel很快开始开发自己的RISC工作站处理器i860。但是860或者其他RISC处理器最终都没能改变X86的地位。       &lt;br /&gt;根据领导了80486开发的Gelsinger的说法，原因是这样的：在486发布以前（1989年4月10日），已经有价值数百万美元的软件打算在486 平台上运行。虽然和RISC相比，x86(CISC)架构是有一点慢，但是当你花时间开发出适合RISC的软件的时候，我们已经开始出更快的x86处理器。我们有巨大的经济优势，因为我们已经有了一个良好的基础，并且我们有庞大的开发团队。RISC电脑不可能赶上我们。       &lt;br /&gt;具有讽刺意味的是，比80486和Pentium处理器性能更强的RISC处理器电脑由于缺少软件，最终消亡了，包括Intel自己的i860处理器和其他的RISC处理器。打算推出RISC架构是一个错误，Intel后来承认。       &lt;br /&gt;RISC 发明人之一，加州大学伯克利分校的计算机教授David Patterson说：“但是RISC激发了许多创新”。例如，电子设备集团的VAX架构能够也是随着RISC发展起来的，虽然最后也消亡了。但是 Intel能够吸收RISC的各种优秀想法，依靠他们雄厚的软件基础，改进旧有的架构。同时，Intel的成功的另外一个原因是它的先进的制造技术。       &lt;br /&gt;浮点错误的灾难       &lt;br /&gt;像 RISC一样让人痛彻心脾的危机，发生于1994年夏天的夏天，当时Intel的测试工程师发现了在新Pentium处理器的浮点电路中存在微小的错误。错误发生的几率很低，所以对于这些错误的影响，Intel仅仅对芯片修正后就重新进行生产，并且没有召回有瑕疵的芯片。       &lt;br /&gt;但是几个月后，弗吉尼亚州林奇堡学院的一位数学教授，就发现了这个缺陷。他无法找到Intel的任何人听他申诉，因为Intel当时并不承认。所以他把他的发现公布在互联网上。没过多久，Intel就陷入了舆论风暴之中，并导致了巨大的公共关系危机，最终花费了4亿7500万美元召回这批芯片。       &lt;br /&gt;“这是一次痛苦的经历，但是我们最终学会从消费者的角度出发”， 前Intel资深副总裁Albert Yu在他的著作《创造数字未来》中回忆说。       &lt;br /&gt;兼容并包       &lt;br /&gt;另外一个x86历史上的标志性的事件发生在1995年。卡内基梅隆大学计算机教授、Intel问题研究专家Todd Mowry这样说。当时Intel推出了革命性的Pentium Pro微处理器，能够预先考虑一串指令，并猜测那些需要不按照规则处理的指令。Pentium Pro还拥有一个全新的高速缓存，这一切保证了处理器能够获得大部分时间，并且在一些应用程序中表现出色。       &lt;br /&gt;“事情完全出乎意料”，Mowry说，：“他们使用了RISC的优点，但并没有改变指令集。他们把X86指令翻译成更像RISC指令的微操作。所以你拥有的是x86电脑中的RISC电脑。并且这样的做法弥补了X86原有的性能差距。       &lt;br /&gt;Mowry说Pentium Pro源于一个自上而下的设计处理。“他们先打算设计出一款高性能的电脑，再计算出怎样使得X86满足设计要求”，他说。       &lt;br /&gt;寻找非x86架构的优点和缺点，这是x86取得进步的方法。Gelsinger说：“Pentium是一个巨大的架构进步，我们从微型机和中型机中寻找优秀的想法，并且把这些想法在实践中做得更好，因为我们有一个巨大画布让这些美丽的想法尽情挥洒——这个画布的名字叫做硅。”       &lt;br /&gt;“中型机是把要处理的不同部分在机柜中的一个很广阔的空间内传递。与中型机不同，微处理器设计者们则把所有的信息单元放在在单独的、微小的、紧密集成的芯片上，这样设计会更加有弹性，设计的产品更出色。”他说。确实，这些年来，当由多种配件组成的电脑系统发展并不很快时，硅芯片取得了与摩尔定律所预测完全一致的惊人发展速度。       &lt;br /&gt;竞争愈演愈烈       &lt;br /&gt;Intel并没能够有避免竞争，哪怕是在自家的x86架构领域。例如，1987年创建于硅谷的台湾威盛公司采用了x86的技术，销售主板芯片组。威盛目前生产很广的一系列产品，并且打算生产自己的x86架构低能耗移动处理器。       &lt;br /&gt;AMD 公司，世界第二大芯片制造商，自从2000年以来，它已经成为了Intel的强有力的竞争对手。在整个20世纪80年代和90年代，AMD已经成为一个 x86芯片的模仿者，并且几乎对Intel产生重大影响。（Mercury咨询：AMD仍然有占有15%的x86兼容台式机和移动电脑市场份额）。       &lt;br /&gt;但是AMD出人意料的在2000年推出了64位的基于x86扩展指令集的处理器，并取得了良好的技术声誉和市场效果。作为一个扩展集，它意味着新的x86架构的64位处理器能够运行旧的32位软件。       &lt;br /&gt;在那时，Intel的64位产品是安腾，由于Intel和HP开发，主要用于超标量执行。该处理器在一个大铁箱中，并且它不与x86架构的32位软件兼容。 Intel面对AMD的威胁，在2004年，推出了自己的64位x86指令扩展集，EM64T。事实表明，AMD已经在最重要的64位产品市场打败了 Intel。       &lt;br /&gt;“这是一个用x86指令集的灵活性对抗Intel的例子”，Patterson说，“所以尽管Intel统治着这个市场，其他公司也能够改变x86的发展方向。”       &lt;br /&gt;挑战极限       &lt;br /&gt;今天，Intel的x86在计算的极限领域微不足道。在4月28日，Intel宣布它将与Cray电脑公司一起，发展基于x86架构的超级计算机芯片。(Cray已经使用了AMD的基于x86的64位皓龙处理器。)       &lt;br /&gt;在 4月2日，上海举行的Intel全球发展论坛上，Intel宣布基于x86架构的Atom处理器，这是Intel目前的最小的处理器。它的能耗小于2.5 瓦，而一款典型的桌面处理器的能耗为35瓦。就在这周，Intel将为小型台式机和台式机发布两款新的Atom处理器。       &lt;br /&gt;所以，x86 能够再生存并繁荣30年么？在竞争的格局中，将有许多力量从根本上改变微处理器的设计，甚至就会发生就在近期发生。但是几乎没有人预测令人尊敬的x86架构会消亡。卡内基梅隆大学的Mowry说道：“我们恐怕很难看到其他的指令集取代x86，因为有太多的有价值的软件运行在x86架构上。”&lt;/p&gt; &lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2697792232823112228?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2697792232823112228/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2697792232823112228&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2697792232823112228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2697792232823112228'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/06/x8630.html' title='生日快乐！x86标准30岁了【转】'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-4516264225012832110</id><published>2008-06-06T19:47:00.001+08:00</published><updated>2008-06-06T19:47:23.122+08:00</updated><title type='text'>祝善良美丽的小侄女高考成功</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;祝善良美丽的小侄女高考成功！本站连续3天为我可爱的小侄女祝福，愿她美梦成真,金榜题名。&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-4516264225012832110?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/4516264225012832110/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=4516264225012832110&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4516264225012832110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4516264225012832110'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/06/blog-post.html' title='祝善良美丽的小侄女高考成功'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3279040627948218455</id><published>2008-06-03T20:08:00.001+08:00</published><updated>2008-06-03T20:14:58.036+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='其他'/><title type='text'>Tested by windows live writer</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/xuefengwang101/SEU0Mz6qz5I/AAAAAAAAF1c/HQ6ks30oKSg/s1600-h/dude12%5B2%5D.jpg"&gt;&lt;img title="dude12" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="dude12" src="http://lh3.ggpht.com/xuefengwang101/SEU0Pz6qz6I/AAAAAAAAF1g/7lL0O1tb3is/dude12_thumb.jpg?imgmax=800" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;以前好像不支持发布图片，这个竟然能够自动把图片加上，呵呵，看来以后就用这个了。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3279040627948218455?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3279040627948218455/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3279040627948218455&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3279040627948218455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3279040627948218455'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/06/tested-by-windows-live-writer.html' title='Tested by windows live writer'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/xuefengwang101/SEU0Pz6qz6I/AAAAAAAAF1g/7lL0O1tb3is/s72-c/dude12_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-8415498832623275505</id><published>2008-05-30T23:03:00.002+08:00</published><updated>2008-05-30T23:08:17.154+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='闲情逸致'/><title type='text'>靠，还让不让员工活了</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span style="font-family:verdana;"&gt;第一家公司&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：不忙。&lt;br /&gt;&lt;br /&gt;下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：因为你不能多为公司干事，所以才会不忙，公司要你何用？&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;*第二家公司&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：很忙。&lt;br /&gt;&lt;br /&gt;下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：因为你做事没有条理性，所以才会整天忙，公司要你何用？&lt;br /&gt;&lt;br /&gt;*第三家公司&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：还行。&lt;br /&gt;&lt;br /&gt;下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：因为你做事不理性，所以才会有什么"还行"不"还行"的，公司要你何用？&lt;br /&gt;&lt;br /&gt;*第四家公司&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：刚忙完。&lt;br /&gt;&lt;br /&gt;下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：因为你做事效率太低，做完就不能检查一下么？公司要你何用？&lt;br /&gt;&lt;br /&gt;*第五家公司&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：有些做完了，也检查过了，现在在做其他事。下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：因为你做事缺乏系统性，有些事不会一起做么？公司要你何用？&lt;br /&gt;&lt;br /&gt;*第六家公司&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：我的工作都做完了，正在帮别人做。下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：因为你做事没有打算，你不会自己规划一下明天要做的事么？公司要你何用？&lt;br /&gt;&lt;br /&gt;*第七家公司&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：今天的工作做完了，明天的工作也了。下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：因为你做事不考虑整体，你不会帮同事分忧解劳吗？公司要你何用 ？&lt;br /&gt;&lt;br /&gt;*第八家公司&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：今天的和明天的工作都做完了，现在在帮同事的忙。&lt;br /&gt;&lt;br /&gt;下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：因为你太爱出风头，你的帮忙很可能造成其他人的懒惰或 压力，公司要你何用？&lt;br /&gt;&lt;br /&gt;*第九家公司&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：等一下，我思考一下再回答你。&lt;br /&gt;&lt;br /&gt;下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：你目中无人，我问你话竟然一再搪塞我， 公司要你何用？&lt;br /&gt;&lt;br /&gt;*第十家公司&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：我......我......不、不知道......该、该怎么、回答你。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;下班时老板对兔兔说：你明天不用来了。&lt;br /&gt;&lt;br /&gt;兔兔：为什么？&lt;br /&gt;&lt;br /&gt;老板：因为你连做事忙不忙都不知道，公司要你 何用？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*第十一家公司&lt;br /&gt;&lt;br /&gt;老板：兔兔，今天工作忙不忙？&lt;br /&gt;&lt;br /&gt;兔兔：去你的，老子辞职了~~~~~~~~~~&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;老板：嘿！有个性，我们公司就不放你走!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-8415498832623275505?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/8415498832623275505/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=8415498832623275505&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8415498832623275505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8415498832623275505'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/blog-post_30.html' title='靠，还让不让员工活了'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-4584211770919302261</id><published>2008-05-22T20:51:00.001+08:00</published><updated>2008-05-22T20:51:29.763+08:00</updated><title type='text'>看了一天的youube骂sb女的视频</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style=''&gt;看了一天的youube骂sb女的视频，心里总算是舒服点了，xxxxx，气死我了，听的真解气。大家都去听听&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-4584211770919302261?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/4584211770919302261/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=4584211770919302261&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4584211770919302261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4584211770919302261'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/youubesb.html' title='看了一天的youube骂sb女的视频'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5167740531521752702</id><published>2008-05-22T14:06:00.001+08:00</published><updated>2008-05-22T14:06:13.370+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>气得我不知道说什么好了-sb辽宁女</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style=''&gt;全国人民都在哀悼地震死难者，你。。。。。&lt;br/&gt;从来不在网上骂人，今天就破个例吧&lt;br/&gt;我操你妈小比，日。你还是人吗，操，真他妈的把我气坏了。日你妈的&lt;br/&gt;操。&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5167740531521752702?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5167740531521752702/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5167740531521752702&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5167740531521752702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5167740531521752702'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/sb.html' title='气得我不知道说什么好了-sb辽宁女'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-162854643075671898</id><published>2008-05-18T22:23:00.001+08:00</published><updated>2008-05-18T22:23:46.159+08:00</updated><title type='text'>为地震灾区祈福</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style=''&gt;天灾无情，人心有情！&lt;br /&gt;为地震中遇难的同胞哀悼,希望能有更多的奇迹出现，祈祷吧！&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-162854643075671898?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/162854643075671898/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=162854643075671898&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/162854643075671898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/162854643075671898'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/blog-post_18.html' title='为地震灾区祈福'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6189861145897664550</id><published>2008-05-17T07:34:00.001+08:00</published><updated>2008-05-17T07:34:20.448+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>strace命令详解</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style=''&gt;strace 命令是一种强大的工具，它能够显示所有由用户空间程序发出的系统调用。&lt;br /&gt;　　strace 显示这些调用的参数并返回符号形式的值。strace 从内核接收信息，而且不需要以任何特殊的方式来构建内核。&lt;br /&gt;　　下面记录几个常用 option . &lt;br /&gt;　　1  -f -F选项告诉strace同时跟踪fork和vfork出来的进程&lt;br /&gt;　　2  -o xxx.txt   输出到某个文件。&lt;br /&gt;　　3  -e execve 只记录 execve 这类系统调用 &lt;br /&gt;　　—————————————————&lt;br /&gt;　　进程无法启动，软件运行速度突然变慢，程序的"SegmentFault"等等都是让每个Unix系统用户头痛的问题，&lt;br /&gt;　　本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 &lt;br /&gt;&lt;span id='fullpost'&gt;　　&lt;br /&gt;　　&lt;br /&gt;　　truss和strace用来跟踪一个进程的系统调用或信号产生的情况，而 ltrace用来跟踪进程调用库函数的情况。truss是早期为System V R4开发的调试程序，包括Aix、FreeBSD在内的大部分Unix系统都自带了这个工具；&lt;br /&gt;　　而strace最初是为SunOS系统编写的，ltrace最早出现在GNU/DebianLinux中。&lt;br /&gt;　　这两个工具现在也已被移植到了大部分Unix系统中，大多数Linux发行版都自带了strace和ltrace，而FreeBSD也可通过Ports安装它们。&lt;br /&gt;　　&lt;br /&gt;　　你不仅可以从命令行调试一个新开始的程序，也可以把truss、strace或ltrace绑定到一个已有的PID上来调试一个正在运行的程序。三个调试工具的基本使用方法大体相同，下面仅介绍三者共有，而且是最常用的三个命令行参数：&lt;br /&gt;　　&lt;br /&gt;　　-f ：除了跟踪当前进程外，还跟踪其子进程。&lt;br /&gt;　　-o file ：将输出信息写到文件file中，而不是显示到标准错误输出（stderr）。&lt;br /&gt;　　-p pid ：绑定到一个由pid对应的正在运行的进程。此参数常用来调试后台进程。&lt;br /&gt;　　&lt;br /&gt;　　  使用上述三个参数基本上就可以完成大多数调试任务了，下面举几个命令行例子：&lt;br /&gt;　　truss -o ls.truss ls -al： 跟踪ls -al的运行，将输出信息写到文件/tmp/ls.truss中。&lt;br /&gt;　　strace -f -o vim.strace vim： 跟踪vim及其子进程的运行，将输出信息写到文件vim.strace。&lt;br /&gt;　　ltrace -p 234： 跟踪一个pid为234的已经在运行的进程。&lt;br /&gt;　　&lt;br /&gt;　　  三个调试工具的输出结果格式也很相似，以strace为例：&lt;br /&gt;　　&lt;br /&gt;　　brk(0)                                  = 0×8062aa8&lt;br /&gt;　　brk(0×8063000)                          = 0×8063000&lt;br /&gt;　　mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0×92f) = 0×40016000&lt;br /&gt;　　&lt;br /&gt;　　每一行都是一条系统调用，等号左边是系统调用的函数名及其参数，右边是该调用的返回值。 truss、strace和ltrace的工作原理大同小异，都是使用ptrace系统调用跟踪调试运行中的进程，详细原理不在本文讨论范围内，有兴趣可以参考它们的源代码。 &lt;br /&gt;　　举两个实例演示如何利用这三个调试工具诊断软件的"疑难杂症"：&lt;br /&gt;　　&lt;br /&gt;　　案例一：运行clint出现Segment Fault错误&lt;br /&gt;　　&lt;br /&gt;　　操作系统：FreeBSD-5.2.1-release&lt;br /&gt;　　clint是一个C++静态源代码分析工具，通过Ports安装好之后，运行：&lt;br /&gt;　　&lt;br /&gt;　　# clint foo.cpp&lt;br /&gt;　　Segmentation fault (core dumped)&lt;br /&gt;　　  在Unix系统中遇见"Segmentation Fault"就像在MS Windows中弹出"非法操作"对话框一样令人讨厌。OK，我们用truss给clint"把把脉"：&lt;br /&gt;　　&lt;br /&gt;　　# truss -f -o clint.truss clint&lt;br /&gt;　　Segmentation fault (core dumped)&lt;br /&gt;　　# tail clint.truss&lt;br /&gt;　　  739: read(0×6,0×806f000,0×1000)               = 4096 (0×1000)&lt;br /&gt;　　  739: fstat(6,0xbfbfe4d0)                       = 0 (0×0)&lt;br /&gt;　　  739: fcntl(0×6,0×3,0×0)                        = 4 (0×4)&lt;br /&gt;　　  739: fcntl(0×6,0×4,0×0)                        = 0 (0×0)&lt;br /&gt;　　  739: close(6)                                    = 0 (0×0)&lt;br /&gt;　　  739: stat("/root/.clint/plugins",0xbfbfe680)   ERR#2 'No such file or directory'&lt;br /&gt;　　SIGNAL 11&lt;br /&gt;　　SIGNAL 11&lt;br /&gt;　　Process stopped because of:  16&lt;br /&gt;　　process exit, rval = 139&lt;br /&gt;　　我们用truss跟踪clint的系统调用执行情况，并把结果输出到文件clint.truss，然后用tail查看最后几行。&lt;br /&gt;　 　注意看clint执行的最后一条系统调用（倒数第五行）：stat("/root/.clint/plugins",0xbfbfe680) ERR#2 'No such file or directory'，问题就出在这里：clint找不到目录"/root/.clint/plugins"，从而引发了段错误。怎样解决？很简单： mkdir -p /root/.clint/plugins，不过这次运行clint还是会"Segmentation Fault"9。继续用truss跟踪，发现clint还需要这个目录"/root/.clint/plugins/python"，建好这个目录后 clint终于能够正常运行了。 &lt;br /&gt;　　&lt;br /&gt;　　案例二：vim启动速度明显变慢&lt;br /&gt;　　&lt;br /&gt;　　操作系统：FreeBSD-5.2.1-release&lt;br /&gt;　 　vim版本为6.2.154，从命令行运行vim后，要等待近半分钟才能进入编辑界面，而且没有任何错误输出。仔细检查了.vimrc和所有的vim脚 本都没有错误配置，在网上也找不到类似问题的解决办法，难不成要hacking source code？没有必要，用truss就能找到问题所在：&lt;br /&gt;　　&lt;br /&gt;　　# truss -f -D -o vim.truss vim&lt;br /&gt;　　&lt;br /&gt;　　这里-D参数的作用是：在每行输出前加上相对时间戳，即每执行一条系统调用所耗费的时间。我们只要关注哪些系统调用耗费的时间比较长就可以了，用less仔细查看输出文件vim.truss，很快就找到了疑点：&lt;br /&gt;　　&lt;br /&gt;　　735: 0.000021511 socket(0×2,0×1,0×0)       = 4 (0×4)&lt;br /&gt;　　735: 0.000014248 setsockopt(0×4,0×6,0×1,0xbfbfe3c8,0×4) = 0 (0×0)&lt;br /&gt;　　735: 0.000013688 setsockopt(0×4,0xffff,0×8,0xbfbfe2ec,0×4) = 0 (0×0)&lt;br /&gt;　　735: 0.000203657 connect(0×4,{ AF_INET 10.57.18.27:6000 },16) ERR#61 'Connection refused'&lt;br /&gt;　　735: 0.000017042 close(4)          = 0 (0×0)&lt;br /&gt;　　735: 1.009366553 nanosleep(0xbfbfe468,0xbfbfe460) = 0 (0×0)&lt;br /&gt;　　735: 0.000019556 socket(0×2,0×1,0×0)       = 4 (0×4)&lt;br /&gt;　　735: 0.000013409 setsockopt(0×4,0×6,0×1,0xbfbfe3c8,0×4) = 0 (0×0)&lt;br /&gt;　　735: 0.000013130 setsockopt(0×4,0xffff,0×8,0xbfbfe2ec,0×4) = 0 (0×0)&lt;br /&gt;　　735: 0.000272102 connect(0×4,{ AF_INET 10.57.18.27:6000 },16) ERR#61 'Connection refused'&lt;br /&gt;　　735: 0.000015924 close(4)          = 0 (0×0)&lt;br /&gt;　　735: 1.009338338 nanosleep(0xbfbfe468,0xbfbfe460) = 0 (0×0)&lt;br /&gt;　　&lt;br /&gt;　 　vim试图连接10.57.18.27这台主机的6000端口（第四行的connect（）），连接失败后，睡眠一秒钟继续重试（第6行的 nanosleep（））。以上片断循环出现了十几次，每次都要耗费一秒多钟的时间，这就是vim明显变慢的原因。可是，你肯定会纳闷："vim怎么会无 缘无故连接其它计算机的6000端口呢？"。问得好，那么请你回想一下6000是什么服务的端口？没错，就是X Server。看来vim是要把输出定向到一个远程X Server，那么Shell中肯定定义了DISPLAY变量，查看.cshrc，果然有这么一行：setenv DISPLAY ${REMOTEHOST}:0，把它注释掉，再重新登录，问题就解决了。&lt;br /&gt;　　&lt;br /&gt;　　&lt;br /&gt;　　案例三：用调试工具掌握软件的工作原理&lt;br /&gt;　　&lt;br /&gt;　　操作系统：Red Hat Linux 9.0&lt;br /&gt;　 　用调试工具实时跟踪软件的运行情况不仅是诊断软件"疑难杂症"的有效的手段，也可帮助我们理清软件的"脉络"，即快速掌握软件的运行流程和工作原理，不 失为一种学习源代码的辅助方法。下面这个案例展现了如何使用strace通过跟踪别的软件来"触发灵感"，从而解决软件开发中的难题的。&lt;br /&gt;　　大家都知道，在进程内打开一个文件，都有唯一一个文件描述符（fd：file descriptor）与这个文件对应。而本人在开发一个软件过程中遇到这样一个问题：&lt;br /&gt;　 　已知一个fd，如何获取这个fd所对应文件的完整路径？不管是Linux、FreeBSD或是其它Unix系统都没有提供这样的API，怎么办呢？我们 换个角度思考：Unix下有没有什么软件可以获取进程打开了哪些文件？如果你经验足够丰富，很容易想到lsof，使用它既可以知道进程打开了哪些文件，也 可以了解一个文件被哪个进程打开。好，我们用一个小程序来试验一下lsof，看它是如何获取进程打开了哪些文件。lsof： 显示进程打开的文件。&lt;br /&gt;　　&lt;br /&gt;　　/* testlsof.c */&lt;br /&gt;　　#include #include #include #include #include &lt;br /&gt;　　int main(void)&lt;br /&gt;　　{&lt;br /&gt;　　        open("/tmp/foo", O_CREAT|O_RDONLY);    /* 打开文件/tmp/foo */&lt;br /&gt;　　        sleep(1200);                                /* 睡眠1200秒，以便进行后续操作 */&lt;br /&gt;　　        return 0;&lt;br /&gt;　　}&lt;br /&gt;　　&lt;br /&gt;　　将testlsof放入后台运行，其pid为3125。命令lsof -p 3125查看进程3125打开了哪些文件，我们用strace跟踪lsof的运行，输出结果保存在lsof.strace中：&lt;br /&gt;　　&lt;br /&gt;　　# gcc testlsof.c -o testlsof&lt;br /&gt;　　# ./testlsof &amp;amp;amp;&lt;br /&gt;　　[1] 3125&lt;br /&gt;　　# strace -o lsof.strace lsof -p 3125&lt;br /&gt;　　&lt;br /&gt;　　我们以"/tmp/foo"为关键字搜索输出文件lsof.strace，结果只有一条：&lt;br /&gt;　　&lt;br /&gt;　　&lt;br /&gt;　　# grep '/tmp/foo' lsof.strace&lt;br /&gt;　　readlink("/proc/3125/fd/3", "/tmp/foo", 4096) = 8&lt;br /&gt;　　&lt;br /&gt;　 　原来lsof巧妙的利用了/proc/nnnn/fd/目录（nnnn为pid）：Linux内核会为每一个进程在/proc/建立一个以其pid为名 的目录用来保存进程的相关信息，而其子目录fd保存的是该进程打开的所有文件的fd。目标离我们很近了。好，我们到/proc/3125/fd/看个究 竟：&lt;br /&gt;　　&lt;br /&gt;　　# cd /proc/3125/fd/&lt;br /&gt;　　# ls -l&lt;br /&gt;　　total 0&lt;br /&gt;　　lrwx——    1 root     root           64 Nov  5 09:50 0 -&amp;amp;gt; /dev/pts/0&lt;br /&gt;　　lrwx——    1 root     root           64 Nov  5 09:50 1 -&amp;amp;gt; /dev/pts/0&lt;br /&gt;　　lrwx——    1 root     root           64 Nov  5 09:50 2 -&amp;amp;gt; /dev/pts/0&lt;br /&gt;　　lr-x——    1 root     root           64 Nov  5 09:50 3 -&amp;amp;gt; /tmp/foo&lt;br /&gt;　　# readlink /proc/3125/fd/3&lt;br /&gt;　　/tmp/foo&lt;br /&gt;　　&lt;br /&gt;　　答案已经很明显了：/proc/nnnn/fd/目录下的每一个fd文件都是符号链接，而此链接就指向被该进程打开的一个文件。我们只要用readlink()系统调用就可以获取某个fd对应的文件了，代码如下：&lt;br /&gt;　　&lt;br /&gt;　　&lt;br /&gt;　　#include #include #include #include #include #include &lt;br /&gt;　　int get_pathname_from_fd(int fd, char pathname[], int n)&lt;br /&gt;　　{&lt;br /&gt;　　        char buf[1024];&lt;br /&gt;　　        pid_t  pid;&lt;br /&gt;　　        bzero(buf, 1024);&lt;br /&gt;　　        pid = getpid();&lt;br /&gt;　　        snprintf(buf, 1024, "/proc/%i/fd/%i", pid, fd);&lt;br /&gt;　　        return readlink(buf, pathname, n);&lt;br /&gt;　　}&lt;br /&gt;　　int main(void)&lt;br /&gt;　　{&lt;br /&gt;　　        int fd;&lt;br /&gt;　　        char pathname[4096];&lt;br /&gt;　　        bzero(pathname, 4096);&lt;br /&gt;　　        fd = open("/tmp/foo", O_CREAT|O_RDONLY);&lt;br /&gt;　　        get_pathname_from_fd(fd, pathname, 4096);&lt;br /&gt;　　        printf("fd=%d; pathname=%sn", fd, pathname);&lt;br /&gt;　　        return 0;&lt;br /&gt;　　}&lt;br /&gt;　　&lt;br /&gt;　 　出于安全方面的考虑，在FreeBSD 5 之后系统默认已经不再自动装载proc文件系统，因此，要想使用truss或strace跟踪程序，你必须手工装载proc文件系统：mount -t procfs proc /proc；或者在/etc/fstab中加上一行：&lt;br /&gt;　　&lt;br /&gt;　　proc                   /proc           procfs  rw              0       0&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6189861145897664550?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6189861145897664550/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6189861145897664550&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6189861145897664550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6189861145897664550'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/strace.html' title='strace命令详解'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6673903590132044639</id><published>2008-05-17T07:27:00.001+08:00</published><updated>2008-05-17T07:29:12.842+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='irc'/><title type='text'>irc命令笔记</title><content type='html'>&lt;div&gt;1./msg &lt;别名|#闲聊室&gt; &lt;消息&gt;&lt;br /&gt;【描述】&lt;br /&gt;　　用来向某人发出密聊话语，或者对某个闲聊室的所有人说话。&lt;br /&gt;【举例】&lt;br /&gt;　　假设你敲/msg TigTag&lt;br /&gt;你好，那么TigTag就会在他的小窗口里看到你在说“你好”，而且这句话只有你跟TigTag才会看到；&lt;br /&gt;　　假设你敲/msg #Chat 大家好，那么在#Chat中的全体成员都会看到你在说“大家好”。&lt;br /&gt;【注意】&lt;br /&gt;　　当用/MSG命令对某人发出密聊话语时，其作用与/QUERY相同。唯一的区别就是：使用/MSG命令时，自己这边不单独开个小窗口；而使用/QUERY命令时，双方都会各自开一个小窗口进行对侃。&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;span id="fullpost"&gt;&lt;div&gt;/NOTICE 命令&lt;br /&gt;【语法】&lt;br /&gt;　　　/notice &lt;别名&gt; &lt;消息&gt;&lt;br /&gt;【描述】&lt;br /&gt;　　用来向某人发出通告信息。与/MSG和/QUERY不同，这种通告信息不会在双方开小窗。&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;2.&lt;/div&gt; &lt;div&gt;TOPIC 命令&lt;br /&gt;【语法】&lt;br /&gt;　　　/topic &lt;#闲聊室&gt; [新主题]&lt;br /&gt;【描述】&lt;br /&gt;　　用来更改指定闲聊室的聊天主题。&lt;br /&gt;　　如果不指定新主题，则系统会告诉你指定闲聊室的当前主题。&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;3.&lt;/div&gt; &lt;div&gt;/MODE 命令&lt;br /&gt;【语法】&lt;br /&gt;　　　/mode &lt;#闲聊室|别名&gt; [[+|-]参数]&lt;br /&gt;【描述】&lt;br /&gt;　　/MODE命令是一个强有力的命令，它使得一个闲聊室的主持人能够更改所属闲聊室以及该闲聊室成员的属性。&lt;br /&gt;　* 更改闲聊室的属性&lt;br /&gt;　　　参数　　　　　效果&lt;br /&gt;　　　　b &lt;别名&gt;　 　禁止某人加入该闲聊室 （ban）&lt;br /&gt;　　　　i　　　　　 　把闲聊室设置成只有被邀请的人才能进入 （invite）&lt;br /&gt;　　　　l &lt;人数&gt;　 　限定进入该闲聊室的最大人数 （limit）&lt;br /&gt;　　　　m　 　　　　　旁听模式—只有主持人和被许可的人才能说话 （mode）&lt;br /&gt;　　　　n　　 　　　　是否接受从闲聊室外传来的信息(+n为不接受)&lt;br /&gt;　　　　o &lt;别名&gt;　 　使指定的人也成为闲聊室的主持人，即给他/她@符号(帽子)&lt;br /&gt;　　　　p　　　　　 　把闲聊室设置成私人房间 （private）&lt;br /&gt;　　　　s　　　　 　　把闲聊室设置成隐藏 ---（shroud）隐藏&lt;br /&gt;　　　　t　　　　 　　锁定主题—只有主持人才能更改它&lt;br /&gt;　　　　k &lt;密码&gt;　 　为闲聊室设置密码—只有知道密码的人才能进来&lt;br /&gt;　* 更改用户的属性&lt;br /&gt;　　　参数　　　　　效果&lt;br /&gt;　　　　i　　　　&lt;br /&gt;　　使你变得不可见—如果你不在任何闲聊室里，而别人又不知道你的别名的话，他/她就看不到你&lt;br /&gt;　　　　o　　　　&lt;br /&gt;　　&lt;a class="keyword" href="http://www.018098.cn/index.php?op=article&amp;amp;action=keyword&amp;amp;keyword=IRC"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;IRC&lt;/span&gt;&lt;/a&gt;管理员(&lt;a class="keyword" href="http://www.018098.cn/index.php?op=article&amp;amp;action=keyword&amp;amp;keyword=IRC"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;IRC&lt;/span&gt;&lt;/a&gt;-OP)状态，/MODE命令只能取消该状态。要设置该状态必须用/OPER命令&lt;br /&gt;　　　　s　　　　 　　是否接受服务器的通告(+s为接受)&lt;br /&gt;　　　　v　　　　 　　允许某人在一个设置成旁听模式的闲聊室说话&lt;br /&gt;　　　　w　　　　 　　是否接收WALLOPS信息&lt;br /&gt;【注意】&lt;br /&gt;　　要在某个闲聊室使用/MODE命令，大多数情况下，你必须在该闲聊室拥有帽子（也就是是主持人）才可以。&lt;br /&gt;　　你只能更改某人在某个闲聊室的属性，而不能更改其在&lt;a class="keyword" href="http://www.018098.cn/index.php?op=article&amp;amp;action=keyword&amp;amp;keyword=IRC"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;IRC&lt;/span&gt;&lt;/a&gt;服务器上的属性（自己除外）。&lt;br /&gt;【举例】&lt;br /&gt;　　使TigTag成为#Chat的主持人，用命令：/mode #Chat +o TigTag&lt;br /&gt;　　使TigTag不再是#Chat的主持人，用命令：/mode #Chat -o TigTag&lt;br /&gt;　　禁止TigTag进入#Chat，用命令：/mode #Chat +b TigTag&lt;br /&gt;　　不再禁止TigTag进入#Chat，用命令：/mode #Chat -b TigTag&lt;br /&gt;　　限定#Chat的最大人数是100，用命令：/mode #Chat +l 100&lt;br /&gt;　　使TigTag在服务器上隐藏起来，用命令：/mode TigTag +i&lt;br /&gt;　　……&lt;br /&gt;　* 如果要使多个人成为主持人，这里有个更快捷的方法：/mode #Chat +o nicka&lt;/div&gt; &lt;div&gt;：/mode #Chat +oooo nicka nickb nickc nickd&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;4.&lt;/div&gt; &lt;div&gt;查看access和level的值&lt;/div&gt; &lt;div&gt;/cs access #ubuntu-cn list 和/cs level #ubuntu-cn list&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;5.&lt;/div&gt; &lt;div&gt;&lt;span style=";font-family:Tahoma;font-size:85%;"  &gt;/msg nickserv register密码&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Tahoma;"&gt;　　密码是为你的昵称所选择的密码，电子邮件必须填写，但是系统不校验。如果你不想被他人盗用你的现有名字，请注册。 &lt;/span&gt;&lt;/div&gt; &lt;p&gt;6.你想给某人发悄悄话可以用： 　&lt;br /&gt;　　/msg nickname这里的nickname为你好友的昵称。 　&lt;br /&gt;7)修改自己的密码： 　　&lt;br /&gt;　　/msg nickserv set password新密码&lt;br /&gt;　　注意：如果密码忘了，请联系管理员。&lt;/p&gt; &lt;p&gt;8)删除自己（如果你不满意这个昵称或不想在IRC聊天了）：&lt;br /&gt;　　/msg nickserv drop希望只是不满意这个昵称，而不是不再来了。:)&lt;br /&gt;9)注册频道：&lt;br /&gt;　　/msg chanserv register #频道名密码简短说明&lt;br /&gt;　　注册频道之前，你必须已经在这个频道里，并且你是有帽子(@符号)的。&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6673903590132044639?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6673903590132044639/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6673903590132044639&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6673903590132044639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6673903590132044639'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/irc_3666.html' title='irc命令笔记'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-4093516442148611069</id><published>2008-05-15T17:53:00.002+08:00</published><updated>2008-05-15T20:42:42.863+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eva'/><title type='text'>EVA字体乱码问题解决</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;编辑 ~/.kde/share/config/kdeglobals，加入如下内容：&lt;br /&gt;&lt;br /&gt;[General]&lt;br /&gt;StandardFont=wenquanyi bitmap song,9,-1,5,50,0,0,0,0,0&lt;br /&gt;activeFont=wenquanyi bitmap song,9,-1,5,75,0,0,0,0,0&lt;br /&gt;fixed=wenquanyi bitmap song,9,5,20,50,0&lt;br /&gt;font=wenquanyi bitmap song,9,-1,5,50,0,0,0,0,0&lt;br /&gt;menuFont=wenquanyi bitmap song,9,-1,5,50,0,0,0,0,0&lt;br /&gt;taskbarFont=wenquanyi bitmap song,11,-1,5,50,0,0,0,0,0&lt;br /&gt;toolBarFont=wenquanyi bitmap song,10,-1,5,50,0,0,0,0,0&lt;br /&gt;&lt;br /&gt;把“wenquanyi bitmap song”换成你所需要的字体，比如“simsun”或“sans&lt;br /&gt;serif”。再进入 eva，字体就完好了，终于可以舒服的聊 QQ 了。&lt;br /&gt;&lt;br /&gt;要确定可以用什么字体，用 xlsfonts | grep &amp;amp;lt;fontname&amp;amp;gt; 查看，得到的&lt;br /&gt;-wenquanyi-wenquanyi bitmap song-medium-r-normal--16-160-75-75-p-80-iso10646-1&lt;br /&gt;这样的字符串的第二段就是可用的名字。&lt;br /&gt;另外，qt程序字体设置在qtconfig这个程序里面&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-4093516442148611069?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/4093516442148611069/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=4093516442148611069&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4093516442148611069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4093516442148611069'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/eva.html' title='EVA字体乱码问题解决'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6510527081162519993</id><published>2008-05-12T08:59:00.001+08:00</published><updated>2008-05-12T08:59:45.771+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>平安归来</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;过去的两周真不知道该怎么说了，妈妈生病了还不告诉我，幸亏我猜着几分，这才赶回家去，连着陪床陪了一周，总算是平平安安的，最后去包头检查说一点问题没有，心里一颗悬着的石头总算是放下了。&lt;br/&gt;在这里祝愿妈妈身体永远健康，妈妈的健康就是我的幸福，bless&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6510527081162519993?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6510527081162519993/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6510527081162519993&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6510527081162519993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6510527081162519993'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/05/blog-post.html' title='平安归来'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3970503932616432565</id><published>2008-04-27T16:14:00.001+08:00</published><updated>2008-04-27T16:14:43.994+08:00</updated><title type='text'>真是服了，一个月内丢了3辆车了都</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;靠，真tmd服了，昨天刚刚把李欣走时留下的车骑回来，结果小罗给的车就丢了，真是无语了&lt;br/&gt;偷车的也太猖狂了吧，就在楼下就连着丢了3辆，更何况我是锁在铁栏杆上的。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3970503932616432565?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3970503932616432565/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3970503932616432565&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3970503932616432565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3970503932616432565'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/3.html' title='真是服了，一个月内丢了3辆车了都'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-814876410494449776</id><published>2008-04-26T21:52:00.001+08:00</published><updated>2008-04-26T21:52:56.486+08:00</updated><title type='text'>小罗走了</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;一起学习工作的好弟兄都走了，为了各自的理想，大家都选择了离开，祝愿弟兄们都能有个美好的前途&lt;br/&gt;blesss&lt;br/&gt;今天小罗走了，心里很酸，前几天李欣的离开就让我好几天都不开心。&lt;br/&gt;bless&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-814876410494449776?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/814876410494449776/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=814876410494449776&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/814876410494449776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/814876410494449776'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/blog-post_26.html' title='小罗走了'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5869131395935733024</id><published>2008-04-23T11:42:00.004+08:00</published><updated>2008-11-13T10:25:34.222+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='美化'/><category scheme='http://www.blogger.com/atom/ns#' term='pekwm'/><title type='text'>Pekwm &amp;bmpanel</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2HFtNoJYhCU/SA6w9cNU7iI/AAAAAAAAFys/ynqpN4g3-Vs/s1600-h/2008-04-23-11:45:21_1024x768.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_2HFtNoJYhCU/SA6w9cNU7iI/AAAAAAAAFys/ynqpN4g3-Vs/s200/2008-04-23-11:45:21_1024x768.png" alt="" id="BLOGGER_PHOTO_ID_5192281989995359778" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2HFtNoJYhCU/SA6wh8NU7hI/AAAAAAAAFyk/sBIybhoDe-E/s1600-h/2008-04-23-11:40:54_1024x768.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_2HFtNoJYhCU/SA6wh8NU7hI/AAAAAAAAFyk/sBIybhoDe-E/s200/2008-04-23-11:40:54_1024x768.png" alt="" id="BLOGGER_PHOTO_ID_5192281517548957202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;今天来个pekwm+bmpanel+conky&lt;br /&gt;其实和前面的openbox差不多都那样，改的地方也差不多，设置好了一个其他的也就照着改改就ok了，唯一遗憾的是bmpanel在设置font的时候不能用pl的zhunyuan字体，只能用丑陋的Vera，好像这个是bmpanel的bug？google了半天也没找到什么，呵呵，再说吧 ，先凑合着用吧&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5869131395935733024?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5869131395935733024/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5869131395935733024&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5869131395935733024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5869131395935733024'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/pekwm.html' title='Pekwm &amp;bmpanel'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_2HFtNoJYhCU/SA6w9cNU7iI/AAAAAAAAFys/ynqpN4g3-Vs/s72-c/2008-04-23-11:45:21_1024x768.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3572869067738035152</id><published>2008-04-22T16:45:00.001+08:00</published><updated>2008-04-22T16:45:29.756+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eva'/><category scheme='http://www.blogger.com/atom/ns#' term='qq'/><title type='text'>eva版本号过低无法登陆QQ的解决办法</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;该死的腾讯总是喜欢封杀第三方QQ，不过他只是靠拒绝低版本号QQ登陆来实现的。&lt;br/&gt;因为第三方QQ更新得比较慢（eva，luma），所以经常会出现登陆不上的情况，这时只好自己动手，丰衣足食了。&lt;br/&gt;&lt;br/&gt;以eva为例：&lt;br/&gt;emerge -f eva       //下载eva的源码包&lt;br/&gt;将 /usr/portage/distfiles/eva-0.4.1.tar.bz2 包解出来&lt;br/&gt;修改 eva/src/libeva/evadefines.h 文件中的 QQ_CLIENT_VERSION 常量&lt;br/&gt;改为 const int QQ_CLIENT_VERSION = 0x0E1B;  这个版本号可以想办法找到最新的（比如看看珊瑚虫的设置）&lt;br/&gt;然后把修改过的源码重新打包，放回 /usr/portage/distfiles/ 目录&lt;br/&gt;然后&lt;br/&gt;cd /usr/portage/local/layman/gentoo-china/net-im/eva&lt;br/&gt;ebuild eva-0.4.1.ebuild digest&lt;br/&gt;否则emerge时会重新下载，做的修改就白费了。&lt;br/&gt;&lt;br/&gt;然后就可以&lt;br/&gt;emerge eva&lt;br/&gt;安装修改过的eva了。装完了以后成功登陆QQ。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3572869067738035152?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3572869067738035152/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3572869067738035152&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3572869067738035152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3572869067738035152'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/evaqq.html' title='eva版本号过低无法登陆QQ的解决办法'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3517209750266483225</id><published>2008-04-22T08:56:00.001+08:00</published><updated>2008-04-22T08:56:55.301+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mplayer'/><title type='text'>mplayer的配置与双语字幕设置</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;先编写mplayer的配置文件:~/.mplayer/config&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;# Write your default config options here!&lt;/span&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;joystick=no  #不加载游戏手柄的控制&lt;/span&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;fs=yes #支持全屏&lt;/span&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;zoom=yes #支持缩放&lt;br/&gt;&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;subcp=cp936 #支持中文字幕&lt;br/&gt;&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;subfont-autoscale=1 #字幕占屏幕的大小&lt;/span&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;#subfont-text-scale=3 #字幕的字体大小&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;&lt;br/&gt;font=/usr/share/fonts/cjkuni-fonts/uming.ttf #&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;选择字体&lt;br/&gt;&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;overlapsub=1 #支持多语言字幕&lt;br/&gt;&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;sub-fuzziness=1 #设定字幕自动加载的识别&lt;/span&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;osdlevel=3 #在屏幕的左上角显示相应时间等&lt;br/&gt;&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;vf=expand=:::::4/3:2 #如果是16:9的影片,字幕可以&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;放在下面的黑框中&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span id='fullpost'&gt;保存.&lt;br/&gt;&lt;br/&gt;字幕的自动加载&lt;br/&gt;sub-fuzziness有三个值可以设置,&lt;br/&gt;0:代表完全匹配,字幕的名字和影片的名字必须一样,例如:xxxx.avi,xxxx.srt&lt;br/&gt;1: 代表部分匹配,字幕的名字完全包含影片的名字就可以自动加载,例如:xxxx.avi,xxxx.chs.srt&lt;br/&gt;2:代表所有这个目录下的字幕都会被加载&lt;br/&gt;&lt;br/&gt;双语字幕&lt;br/&gt;overlapsub=1是为了加载多语言字幕,最常用的是中英文字幕,但如果只是把中文和英文字幕放到影片目录里,中英文字幕是不会同时出现的,这时要把两个字幕合并成一个字幕,很简单:&lt;br/&gt;&lt;span style='font-style: italic;'&gt;$ cat xxxx.eng.srt xxxx.chs.srt&amp;amp;gt;xxxx.srt&lt;/span&gt;&lt;span style='font-weight: bold;'&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3517209750266483225?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3517209750266483225/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3517209750266483225&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3517209750266483225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3517209750266483225'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/mplayer.html' title='mplayer的配置与双语字幕设置'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2994617009001053030</id><published>2008-04-21T17:05:00.004+08:00</published><updated>2008-11-13T10:25:34.430+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fluxbox'/><category scheme='http://www.blogger.com/atom/ns#' term='美化'/><title type='text'>fluxbox-又一pp桌面</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2HFtNoJYhCU/SAxZtBATzOI/AAAAAAAAFyc/CJ8nHZ9hgfM/s1600-h/2008-04-21-17:04:35_1024x768.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_2HFtNoJYhCU/SAxZtBATzOI/AAAAAAAAFyc/CJ8nHZ9hgfM/s200/2008-04-21-17:04:35_1024x768.png" alt="" id="BLOGGER_PHOTO_ID_5191623100350057698" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2HFtNoJYhCU/SAxZjBATzNI/AAAAAAAAFyU/gcg7YTsoU5M/s1600-h/2008-04-21-17:04:00_1024x768.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_2HFtNoJYhCU/SAxZjBATzNI/AAAAAAAAFyU/gcg7YTsoU5M/s200/2008-04-21-17:04:00_1024x768.png" alt="" id="BLOGGER_PHOTO_ID_5191622928551365842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;show一下我的pp的fluxbox桌面&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2994617009001053030?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2994617009001053030/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2994617009001053030&amp;isPopup=true' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2994617009001053030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2994617009001053030'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/fluxbox-pp.html' title='fluxbox-又一pp桌面'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_2HFtNoJYhCU/SAxZtBATzOI/AAAAAAAAFyc/CJ8nHZ9hgfM/s72-c/2008-04-21-17:04:35_1024x768.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5755347035395677117</id><published>2008-04-18T10:57:00.001+08:00</published><updated>2008-04-18T10:57:16.078+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><title type='text'>体验openrc</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;按照这篇暂时还是非官方的“官方”文档作，基本没什么问题&lt;br /&gt;升级baselayout－2&lt;br /&gt;&lt;br /&gt;感觉速度提升很快，尤其是在/etc/rc.conf里面设置rc_parallel="YES"&lt;br /&gt;并行启动，开机关机速度比以前快多了感觉&lt;br /&gt;&lt;br /&gt;但是现在就还剩下一点小问题，不知道是我的个人的问题还是用了openrc的问题，就是我的gensplash不太管用了，只有开始的那个图片，后面的进度条等等都不显示了&lt;br /&gt;重新emerge splashutils-1.5.4-r1就好了&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5755347035395677117?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5755347035395677117/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5755347035395677117&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5755347035395677117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5755347035395677117'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/openrc.html' title='体验openrc'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3833287386392751042</id><published>2008-04-18T10:56:00.001+08:00</published><updated>2008-04-18T10:56:13.880+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='ebuild'/><title type='text'>尝鲜bmpanel，ebuild学习处女作</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;突然之间发现bmpanel这个好东东，发现gentoo还没有，于是试着写了个，准确的说应该是改了个，呵呵&lt;br /&gt;&lt;br /&gt;在自己的系统上基本没有问题，今天拿出来，有兴趣的同学们可以试试&lt;br /&gt;btw：还请zhllg帮看看有什么需要完善的，自己也是头一次试着写，有很多还不知道，&lt;br /&gt;&lt;span id='fullpost'&gt;&lt;br /&gt;bmpanel-0.9.14.ebuild&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 498px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;# Copyright 1999-2007 Gentoo Foundation&lt;br /&gt;# Distributed under the terms of the GNU General Public License v2&lt;br /&gt;# $Header: /var/cvsroot/gentoo-x86/x11-misc/bmpanel/bmpanel-0.9.14.ebuild,v 1.10 2008/04/14 22:43:41 uberlord Exp $&lt;br /&gt;&lt;br /&gt;DESCRIPTION="A themeable reincarnation of fspanel"&lt;br /&gt;HOMEPAGE="http://nsf.110mb.com/bmpanel/"&lt;br /&gt;SRC_URI="http://nsf.110mb.com/bmpanel/${P}.tar.gz"&lt;br /&gt;&lt;br /&gt;LICENSE="GPL-2"&lt;br /&gt;SLOT="0"&lt;br /&gt;KEYWORDS="amd64 ppc sparc x86 ~x86-fbsd"&lt;br /&gt;IUSE=""&lt;br /&gt;RESTRICT="strip mirror"&lt;br /&gt;&lt;br /&gt;RDEPEND="dev-libs/libev&lt;br /&gt;	media-libs/imlib2&lt;br /&gt;	&amp;amp;gt;=media-libs/freetype-2.1.10-r3"&lt;br /&gt;DEPEND="${RDEPEND}&lt;br /&gt;	dev-util/pkgconfig&lt;br /&gt;	dev-util/scons&lt;br /&gt;	x11-proto/xproto"&lt;br /&gt;&lt;br /&gt;src_unpack() {&lt;br /&gt;	unpack ${A}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_compile() {&lt;br /&gt;	scons || die "scons failed"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_install () {&lt;br /&gt;	dodir /usr/bin&lt;br /&gt;	scons prefix="${D}/usr" install || die "scons install died"&lt;br /&gt;}&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;这个是上面那个的依赖包&lt;br /&gt;昨天在irc上也问了，后来发现这个和libevent有些关系，但是还不是一个包，gentoo下没有这个包，于是把这个也试着写了&lt;br /&gt;libev-3.2.ebuild&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 498px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;# Copyright 1999-2007 Gentoo Foundation&lt;br /&gt;# Distributed under the terms of the GNU General Public License v2&lt;br /&gt;# $Header: /var/cvsroot/gentoo-x86/dev-libs/libev/libev-3.2.ebuild,v 1.3 2008/04/14 22:44:38 uberlord Exp $&lt;br /&gt;&lt;br /&gt;inherit multilib eutils&lt;br /&gt;&lt;br /&gt;DESCRIPTION="A full-featured and high-performance event loop"&lt;br /&gt;HOMEPAGE="http://software.schmorp.de/pkg/libev.html"&lt;br /&gt;SRC_URI="http://dist.schmorp.de/libev/${P}.tar.gz"&lt;br /&gt;&lt;br /&gt;LICENSE="LGPL-2"&lt;br /&gt;SLOT="0"&lt;br /&gt;KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~sparc ~x86 ~x86-fbsd"&lt;br /&gt;&lt;br /&gt;DEPEND=""&lt;br /&gt;RDEPEND="${DEPEND}"&lt;br /&gt;&lt;br /&gt;src_unpack() {&lt;br /&gt;	unpack ${A}&lt;br /&gt;	cd "${S}"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_compile() {&lt;br /&gt;	econf \&lt;br /&gt;	--prefix=/usr || die "configure failed"&lt;br /&gt;	emake || die "emake failed"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;src_install() {&lt;br /&gt;	emake DESTDIR="${D}" install || die "make install failed"&lt;br /&gt;	dodoc ChangeLog VERSION README&lt;br /&gt;}&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;现在有一个问题比较郁闷，那就是在emerge bmpanel的时候&lt;br /&gt;到了sandbox那里有这个错误&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 50px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;ACCESS DENIED  unlink:    /usr/bin/bmpanel&lt;br /&gt;scons: *** [/usr/bin/bmpanel] /usr/bin/bmpanel: Permission denied&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;没办法非得 FEATURES="-sandbox" emerge -av bmpanel&lt;br /&gt;才过得去，使用倒是没问题，想问问zhllg关于sandbox这里ebuild该怎么修改呢？&lt;br /&gt;另外，bmpanel-0.9.14.tar.gz这个包好像在我这里下载不到，最后非得tor才把他下来，一起放在这里兄弟们就不用去&lt;a target='_blank' href='http://nsf.110mb.com/bmpanel%E4%B8%8B%E8%BD%BD%E4%BA%86'&gt;http://nsf.110mb.com/bmpanel下载了&lt;/a&gt;&lt;br /&gt;  &lt;a target='_blank' href='http://www.linuxsir.org/bbs/attachment.php?attachmentid=47155&amp;amp;d=1208219886'&gt;&lt;img border='0' alt='点击图片以查看大图  名称: panel.png 查看次数: 45 文件大小: 7.1 KB ID: 47155' src='http://www.linuxsir.org/bbs/attachment.php?attachmentid=47155&amp;amp;stc=1&amp;amp;thumb=1&amp;amp;d=1208219886' class='thumbnail' title='点击图片以查看大图  名称: panel.png 查看次数: 45 文件大小: 7.1 KB ID: 47155'/&gt;&lt;/a&gt;     	&lt;/span&gt;				&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3833287386392751042?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3833287386392751042/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3833287386392751042&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3833287386392751042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3833287386392751042'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/bmpanelebuild.html' title='尝鲜bmpanel，ebuild学习处女作'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-790544617615045789</id><published>2008-04-12T17:00:00.005+08:00</published><updated>2008-04-21T17:23:53.691+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>what happens to me?</title><content type='html'>想说的太多了，可是我又什么都不想说&lt;br /&gt;这是为什么呢?&lt;br /&gt;自己反复想可就是想不通，what happens to me? &lt;br /&gt;anything i can do ,and what could i do ?&lt;br /&gt;that is nothing&lt;/span&gt;&lt;br /&gt;let it  proved by times!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-790544617615045789?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/790544617615045789/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=790544617615045789&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/790544617615045789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/790544617615045789'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/what-happens-to-me.html' title='what happens to me?'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-506083570699273950</id><published>2008-04-08T11:27:00.001+08:00</published><updated>2008-04-08T11:27:44.108+08:00</updated><title type='text'>今天开始看书</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;又踏上这慢慢征程，已经没有退路了，给自己加加油&lt;br/&gt;fighinting&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-506083570699273950?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/506083570699273950/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=506083570699273950&amp;isPopup=true' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/506083570699273950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/506083570699273950'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/blog-post_08.html' title='今天开始看书'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-8176391568986886475</id><published>2008-04-07T19:35:00.000+08:00</published><updated>2008-04-07T19:36:42.616+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='赢在中国'/><category scheme='http://www.blogger.com/atom/ns#' term='励志'/><title type='text'>赢在中国第三季 创业星光论坛(下)</title><content type='html'>&lt;embed src="http://v.club.cn.yahoo.com/yahoo7.swf?u=bmg8n8nH2Lt5.l3Im7SZYj3lvNiAm._u4mA2ms6oOk6.0A--" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" height="360" width="500"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-8176391568986886475?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/8176391568986886475/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=8176391568986886475&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8176391568986886475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8176391568986886475'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/blog-post_07.html' title='赢在中国第三季 创业星光论坛(下)'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6899023093871403823</id><published>2008-04-07T17:10:00.002+08:00</published><updated>2008-04-07T17:14:12.369+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>7 habits for effective text editing</title><content type='html'>&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eX9m3g5J-XA&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/eX9m3g5J-XA&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6899023093871403823?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6899023093871403823/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6899023093871403823&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6899023093871403823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6899023093871403823'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/7-habits-for-effective-text-editing.html' title='7 habits for effective text editing'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3643134526896993435</id><published>2008-04-07T16:19:00.005+08:00</published><updated>2008-11-13T10:25:34.878+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openbox'/><category scheme='http://www.blogger.com/atom/ns#' term='fbpanel'/><category scheme='http://www.blogger.com/atom/ns#' term='美化'/><title type='text'>快速稳定漂亮的桌面（pcmanfm，tilda，fbpanel,openbox）</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2HFtNoJYhCU/R_nZz3sdJxI/AAAAAAAAFx0/EG1RwlGLI-U/s1600-h/2008-04-07-16:16:24_1024x768.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_2HFtNoJYhCU/R_nZz3sdJxI/AAAAAAAAFx0/EG1RwlGLI-U/s200/2008-04-07-16:16:24_1024x768.png" alt="" id="BLOGGER_PHOTO_ID_5186415931040802578" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2HFtNoJYhCU/R_nZtnsdJwI/AAAAAAAAFxs/-LDqgoa66Kw/s1600-h/2008-04-07-16:15:53_1024x768.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_2HFtNoJYhCU/R_nZtnsdJwI/AAAAAAAAFxs/-LDqgoa66Kw/s200/2008-04-07-16:15:53_1024x768.png" alt="" id="BLOGGER_PHOTO_ID_5186415823666620162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;主要是参靠&lt;a href="http://www.oceanboo.cn/index.php"&gt;http://www.oceanboo.cn/index.php&lt;/a&gt;的配置修改的，美观还有待提高，呵呵，不过的确很快，资源占用很小&lt;br /&gt;没有用rox主要是pcmanfm用习惯了，还有就是习惯了tilda的嵌入桌面了，rxvt和tilda换着用感觉很爽&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3643134526896993435?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3643134526896993435/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3643134526896993435&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3643134526896993435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3643134526896993435'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/pcmanfmtildafbpanelopenbox.html' title='快速稳定漂亮的桌面（pcmanfm，tilda，fbpanel,openbox）'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_2HFtNoJYhCU/R_nZz3sdJxI/AAAAAAAAFx0/EG1RwlGLI-U/s72-c/2008-04-07-16:16:24_1024x768.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3374946965997997096</id><published>2008-04-06T05:37:00.002+08:00</published><updated>2008-04-07T16:32:24.146+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mplayer'/><title type='text'>mplayer、ffmpeg 指令備忘</title><content type='html'>&lt;span id="fullpost"&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;ul&gt;&lt;li&gt;查看 DVD 結構&lt;/li&gt;&lt;li&gt;擷錄 DVD 影片&lt;/li&gt;&lt;li&gt;修剪影音檔案&lt;/li&gt;&lt;li&gt;下載影音串流檔案&lt;/li&gt;&lt;li&gt;Webcam 應用&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;環境: Fedora 8 with &lt;a href="http://rpm.livna.org/rlowiki/"&gt;Livna repo&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div id="a000342more"&gt;&lt;fieldset style="border: 1px solid rgb(128, 128, 128);"&gt;&lt;br /&gt;&lt;legend style="color: yellow;"&gt;查看 DVD 結構&lt;/legend&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mplayer dvd:// -identify -endpos 0 | grep ID_DVD&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;          ID_DVD_TITLES=2 &lt;/span&gt;(總共有兩個標題)&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ID_DVD_TITLE_1_CHAPTERS=11&lt;br /&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;(第一個標題有十一個章節)&lt;br /&gt;ID_DVD_TITLE_1_ANGLES=1&lt;br /&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;(第一個標題只有一種視角)&lt;br /&gt;ID_DVD_TITLE_2_CHAPTERS=8&lt;br /&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;(第二個標題有八個章節)&lt;br /&gt;ID_DVD_TITLE_2_ANGLES=1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;  (第二個標題只有一種視角)&lt;/span&gt; &lt;/p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dvd:// → DVD&lt;br /&gt;vcd:// → VCD&lt;br /&gt;cdda:// → Audio CD&lt;br /&gt;cddb:// → Audio CD&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;fieldset style="border: 1px solid rgb(128, 128, 128);"&gt;&lt;br /&gt;&lt;legend style="color: yellow;"&gt;擷錄 DVD 影&lt;/legend&gt; &lt;blockquote&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;#擷錄 TITLE 1, CHAPTER 8&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt; mplayer dvd://1 -chapter 8-8 -dumpstream -dumpfile myfile.vob&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt; &lt;blockquote&gt;-dumpstream: Video + Audio&lt;br /&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;-dumpvideo: Video only&lt;br /&gt;-dumpaudio: Audio only (-dumpfile filename.pcm)&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;fieldset style="border: 1px solid rgb(128, 128, 128);"&gt;&lt;br /&gt;&lt;legend style="color: yellow;"&gt;修剪影音檔案&lt;/legend&gt;            #從第 11 秒的地方開始擷錄 (去除前面 10 秒內容)&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ffmpeg -i input_file -ss 11 -acodec libmp3lame -ab 192k output.mp3&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;#從 -ss hh:mm:ss 開始擷錄, 且只錄製 -t hh:mm:ss 長度&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ffmpeg -i input_file -ss hh:mm:ss -t hh:mm:ss -acodec copy -ab 192k output_file&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;fieldset style="border: 1px solid rgb(128, 128, 128);"&gt;&lt;br /&gt;&lt;legend style="color: yellow;"&gt;下載影音串流檔案&lt;/legend&gt;        #下載 mms:// 影音串流&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mplayer mms://host/hot_mv.asf&lt;br /&gt;-dumpstream -dumpfile myfile.asf&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;fieldset style="border: 1px solid rgb(128, 128, 128);"&gt;&lt;br /&gt;&lt;legend style="color: yellow;"&gt;Webcam 應用&lt;/legend&gt;        #播放 Webcam 視訊&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mplayer tv:// -fps 30&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;#錄製 Webcam 影像&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ffmpeg -i /dev/video -f video4linux2 -s 320x240 -f m4v myvideo.m4v&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3374946965997997096?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3374946965997997096/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3374946965997997096&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3374946965997997096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3374946965997997096'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/mplayerffmpeg_06.html' title='mplayer、ffmpeg 指令備忘'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5969251305061543958</id><published>2008-04-05T17:44:00.002+08:00</published><updated>2008-04-05T17:46:14.291+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>一些常用且需要记忆的数</title><content type='html'>经常遇到这些东西，每次都拿计算器计算太麻烦，在网上看见了一个列表，转过来：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;0x40000000是1GB处；&lt;br /&gt;0x00040000是256K处，&lt;br /&gt;0x00020000是128K处，&lt;br /&gt;0x90000000是2GB多的地方。&lt;br /&gt;1M-&amp;gt;0x00100000,&lt;br /&gt;2M-&amp;gt;0x00200000,&lt;br /&gt;8M-&amp;gt;0x00800000&lt;br /&gt;16M-&amp;gt;0x01000000,&lt;br /&gt;32M-&amp;gt;0x02000000&lt;br /&gt;256M-&amp;gt;0x10000000&lt;br /&gt;64K-&amp;gt;0x00010000&lt;br /&gt;4K-&amp;gt;0x00001000&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5969251305061543958?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5969251305061543958/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5969251305061543958&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5969251305061543958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5969251305061543958'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/blog-post.html' title='一些常用且需要记忆的数'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-1971466048105095039</id><published>2008-04-04T12:29:00.001+08:00</published><updated>2008-04-04T12:29:14.044+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='安装'/><title type='text'>硬盘安装gentoo（无cdrom）    [原]</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;硬盘安装gentoo（无cdrom）&lt;br /&gt;其实网上已经有很多很多的安装linux（当然也包括gentoo）的方法了，写这篇文章的主要目的就是给像我一样光驱坏了但是想体验gentoo的弟兄们一个安装gentoo的思路（抛砖引玉   希望有更简单更适合像我这样没有光驱的贱兔用户的安装方法）&lt;br /&gt;&lt;span id='fullpost'&gt;&lt;br /&gt;首先说说我的电脑硬件&lt;br /&gt;asus laptop L4R 很老的本本了（谁教我没钱买新的呢？~~）&lt;br /&gt;显卡 ati 9100 iGP ，cpu pentium-m 1.5 ，声卡 ati-ixp,硬盘40g（主要的也就这几个吧）&lt;br /&gt;{hda1 ，hda5}=》 windows xp ;&lt;br /&gt;{hda3（boot） hda4（root）}=》gentoo（这么分区可能不够好，但是是历史原因，呵呵就这么一直用下去了，改起来也费劲）&lt;br /&gt;&lt;br /&gt;说说我之所以这么安装gentoo的动机吧&lt;br /&gt;安装gentoo 最主要的困难是我没有个可用的光驱（光驱基本不能用）所以在这里比较费劲&lt;br /&gt;前提是得有个能启动的windows系统，以前安装gentoo那个折腾啊，想了很多招，曾经用虚拟机在windows下装的差不多后重启进入 gentoo继续安装，这个方法简单易用，但是忍受不了它的龟速，还有我现在是网通adsl拨号上网，不象以前在学校是直接连接在教育网上，在虚拟机里面 上网的话和宿主系统冲突，得来回切换网路麻烦的很（或许大家还有更好的办法，可是我只能想到这个笨办法，那就是禁用xp的网洛在虚拟机中在拨号，但是这样 在宿主系统查资料就不方便了~~）&lt;br /&gt;&lt;br /&gt;无奈只能另外想其他的办法，后来发现还是chroot这个办法不错，但是我没有光驱，所以livecd我没法启动，大家可能会说先在电脑上装个其他的小型 系统，然后在chroot，但是我有“洁癖”我只想要两个系统xp和gentoo其他的都不想要，也不想浪费硬盘上一点点的空间，怎么办呢，去网上找能够 在windows下启动的小型系统（其实网路上有很多），最后我选择了cd linux（&lt;a target='_blank' href='http://cd-linux.sourceforge.net/index-cn.html%EF%BC%89'&gt;http://cd-linux.sourceforge.net/index-cn.html）&lt;/a&gt; 这个好用的东东，这个好像是国人弄的吧，最新版本是0.5.9 ，废话说了一堆了，下面说说我的安装步骤&lt;br /&gt;1 下载cdlinux 0.5.9 iso文件在windows下，然后用rar解压iso文件，把里面的整个boot目录拷贝到某个硬盘分区的根目录下（这里我是放在windows的d盘 也就是hda5）。主页上介绍的是用loadlin程序在纯DOS下引导，因为我的本本上有现成的linux的grub引导程序，就直接用grub来引导 了（要是没有可以用grub4dos来引导）我不喜欢用什么loadin来引导，还是喜欢用纯正的grub来工作 ----这一步是准备工作&lt;br /&gt;2 一切ok后重启电脑，进入grub菜单输入：c 进入command模式（不要说这个你不知道啊，小心我劈你。。。。google啊）&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 50px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;	kernel (hd0,4)/boot/CDlinux/autoboot/bzImage vga=791&lt;br /&gt;	initrd (hd0,4)/boot/CDlinux/autoboot/CDlinux&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;然后 按b &lt;br /&gt;boot cdlinux 等待片刻进入安装环境 是xfce4的安装环境，非常友好，我们可以边上网查资料边emerge，感觉比livecd爽多了，至少比那种方式快很多（现在就是给我光驱我也不用了 ~~呵呵）&lt;br /&gt;下面就是 传统的安装步骤了，我主要是想说说上面的这个办法&lt;br /&gt;3 开始安装 就都是一些命令了&lt;br /&gt;首先 我得先连接上internet吧&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 50px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;#pppoe-setup&lt;br /&gt;#pppoe-start&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;ok 了可以上网了 ，（happying，打开firefox 查你的手册，wiki什么的吧）&lt;br /&gt;&lt;br /&gt;创建reiserfs分区&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 50px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;# mkreiserfs /dev/sda4  (正常应该是hda4,但是这里cdlinux识别成了sda4,无所谓，待会写fstab的时候改回来就好了)&lt;br /&gt;# mkfs.ext3 /dev/sda3&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;激活交换分区&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 50px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;# mkswap /dev/sda6&lt;br /&gt;# swapon /dev/sda6&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;创建与挂载分区&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 82px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;# mkdir /home/gentoo/ （本想在/mnt下创建目录的，但是/mnt貌似是只读的 ，无所谓哪里都行）&lt;br /&gt;# mount /dev/sda4 /home/gentoo/&lt;br /&gt;# mkdir /home/gentoo/boot&lt;br /&gt;# mount /dev/sda3 /home/gentoo/boot/&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;下载stage3-i686-2007.0.tar.bz2与portage-latest.tar.bz2文件，放在/home/gentoo下&lt;br /&gt;安装基本系统和portage&lt;br /&gt;&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 50px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;#tar xvjpf stage3-i686-2007.0.tar.bz2&lt;br /&gt;#tar xvjf /home/gentoo/portage-latest.tar.bz2 -C /home/gentoo/usr&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;配置make.conf&lt;br /&gt;我直接cp我原来的make.conf&lt;br /&gt;下面是我的make.conf&lt;div style='margin: 5px 20px 20px 0px;'&gt; 	&lt;div style='margin-bottom: 2px;' class='smallfont'&gt;代码:&lt;/div&gt; 	&lt;pre style='border: 1px solid rgb(198, 198, 198); margin: 0px; padding: 4px; overflow: auto; width: 640px; height: 498px;' class='alt2'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;# These settings were set by the catalyst build script that automatically built this stage&lt;br /&gt;# Please consult /etc/make.conf.example for a more detailed example&lt;br /&gt;#CFLAGS="-O2 -march=i686 -pipe"&lt;br /&gt;CFLAGS="-mtune=pentium-m -march=pentium-m -O2 -pipe -fomit-frame-pointer -msse2 -msse -mmmx -mfpmath=sse"&lt;br /&gt;CHOST="i686-pc-linux-gnu"&lt;br /&gt;CXXFLAGS="${CFLAGS}"&lt;br /&gt;LDFLAGSHASHSTYLE=" -Wl,-O1 -Wl,--hash-style=both"&lt;br /&gt;GENTOO_MIRRORS="http://61.135.158.199 \&lt;br /&gt;http://mirror.qubenet.net/mirror/gentoo \&lt;br /&gt;http://gentoo.chem.wisc.edu/gentoo \&lt;br /&gt;http://mirror.averse.net/pub/gentoo \&lt;br /&gt;http://mirror.lupaworld.com/gentoo"&lt;br /&gt;#ftp://ftp3.tsinghua.edu.cn/mirror/gentoo \&lt;br /&gt;#http://ftp.belnet.be/packages/gentoo \&lt;br /&gt;#http://mirror.espri.arizona.edu/gentoo/ \&lt;br /&gt;#http://ftp.gentoo.or.kr/ \&lt;br /&gt;#http://mirror.espri.arizona.edu/gentoo/ \&lt;br /&gt;#http://mirror.gentoo.gr.jp/ \&lt;br /&gt;#http://ftp.swin.edu.au/gentoo/ \&lt;br /&gt;#ftp://ftp.sjtu.edu.cn/gentoo/ \&lt;br /&gt;#http://gentoo.chem.wisc.edu/gentoo/ \&lt;br /&gt;#http://gentoo.inode.at/ \&lt;br /&gt;#http://mirror.gentoo.gr.jp/ \&lt;br /&gt;#http://gentoo.gg3.net/ \&lt;br /&gt;#http://www.ibiblio.org/gentoo/"&lt;br /&gt;#SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"&lt;br /&gt;#SYNC="rsync://mirror.averse.net/gentoo-portage"&lt;br /&gt;SYNC="rsync://rsync.qubenet.net/gentoo-portage/"&lt;br /&gt;#SYNC="rsync://61.135.158.199/gentoo-portage"&lt;br /&gt;#SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage/"&lt;br /&gt;#SYNC="rsync://mirror.espri.arizona.edu/gentoo/"&lt;br /&gt;#SYNC="rsync://gentoo.139pay.com/gentoo-portage"&lt;br /&gt;#SYNC="rsync://linux.ntcu.net/gentoo-portage"&lt;br /&gt;#SYNC="rsync://rsync.gentoo.org/gentoo-portage"&lt;br /&gt;#SYNC="rsync://gentoo.chem.wisc.edu/gentoo/gentoo-portage"&lt;br /&gt;#SYNC="rsync://acm.cs.rpi.edu/gentoo-portage"&lt;br /&gt;#SYNC="rsync://61.135.158.199/gentoo-portage"&lt;br /&gt;#SYNC="rsync://38.99.64.200/gentoo-portage"&lt;br /&gt;#SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"&lt;br /&gt;#SYNC="rsync://219.111.13.142/gentoo-portage"&lt;br /&gt;#SYNC="rsync://61.135.158.199/gentoo-portage"&lt;br /&gt;#SYNC="rsync://gentoo.kems.net/gentoo-portage"&lt;br /&gt;#SYNC="rsync://202.1.117.1/gentoo-portage"&lt;br /&gt;#SYNC="rsync://ftp.swin.edu.au"&lt;br /&gt;#SYNC="rsync://rsync.gg3.net/portage"&lt;br /&gt;#SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"&lt;br /&gt;#SYNC="rsync://mirror.lupaworld.com/gentoo/gentoo-x86-portage"&lt;br /&gt;#SYNC="rsync://http://mirror.lupaworld.com/gentoo/gentoo-x86-portage/"&lt;br /&gt;#SYNC="rsync://ftp3.tsinghua.edu.cn/gentoo/gentoo-portage"&lt;br /&gt;PORTDIR_OVERLAY="/usr/local/portage/overlay /usr/local/portage/compiz-overlay /usr/local/portage/gfxboot_overlay"&lt;br /&gt;MAKEOPTS="-j2"&lt;br /&gt;ACCEPT_KEYWORDS="~x86"&lt;br /&gt;USE="X aac accessibility alsa -apm -arts avi avahi bash-completion branding bitmap-fonts cairo -cdr clucene cjk crypt loop-aes -cups curl dbus -doc dri dvd -dvdr -eds emboss encode esd fbcon fbcondecor fbsplash festival firefox gdbm gdm gif gnome gpm gstreamer gtk gtk2 hal -ipv6 java jpeg -kde -kde4 -kdeenablefinal ldap libwww lyrics mad -mozilla  mpd mikmod mmx mng mono moznopango mp3 mpeg msn -mysql ncurses nls nptl nptlonly newspr ogg opengl oss pam pcre pdf perl png python qq -qt3 -qt4 quicktime rar real readline rtc sdl session spell srt sse sse2 ssl svg symlink taglib tcpd truetype truetype-fonts type1-fonts unicode vim vim-syntax vorbis win32codecs xml xorg xosd xv zlib"&lt;br /&gt;FEATURES="sandbox parallel-fetch ccache "&lt;br /&gt;LINGUAS="zh_CN"&lt;br /&gt;CCACHE_SIZE="1G"&lt;br /&gt;CCACHE_DIR="/var/tmp/ccache/"&lt;br /&gt;VIDEO_CARDS="radeon fbdev"&lt;br /&gt;ALSA_CARDS="atiixp"&lt;br /&gt;INPUT_DEVICES="keyboard mouse evdev synaptics"&lt;br /&gt;PORTAGE_ECLASS_WARNING_ENABLE="0"&lt;br /&gt;FETCHCOMMAND="/usr/bin/axel -a -n2 \${URI} -o \${DISTDIR}" #&lt;br /&gt;RESUMECOMMAND="/usr/bin/axel -a -n2 \${URI} -o \${DISTDIR}"&lt;br /&gt;&lt;br /&gt;source /usr/local/portage/layman/make.conf&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;剩下的我就不写了，没多大意义了，主要的参考&lt;br /&gt;在IBM ThinkPad X41上安装Gentoo全记录！（第一部分）&lt;br /&gt;&lt;a target='_blank' href='http://www.linuxsir.org/bbs/showthread.php?t=313392'&gt;http://www.linuxsir.org/bbs/showthread.php?t=313392&lt;/a&gt;&lt;br /&gt;在IBM ThinkPad X41上安装Gentoo全记录！（第二部分）&lt;br /&gt;这个帖子写的非常好，基本上照着安装就好了，没什么新的东西。&lt;br /&gt;另外最近blogger访问不了了，大家也是吗？&lt;br /&gt;以前通过proxy.pac脚本都可以，最近好几天了，怎么老是访问不了&lt;br /&gt;郁闷，好多文章都在那里呢&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-1971466048105095039?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/1971466048105095039/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=1971466048105095039&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1971466048105095039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1971466048105095039'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/04/gentoocdrom.html' title='硬盘安装gentoo（无cdrom）    [原]'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2605596771891707878</id><published>2008-03-28T09:38:00.001+08:00</published><updated>2008-03-28T09:38:55.244+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><title type='text'>Linux系统里有几根内存信息</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Linux系统里有几根内存信息&lt;br /&gt;dmidecode |grep -A16 "Memory Device$"&lt;br /&gt;或&lt;br /&gt;dmidecode -t memory&lt;br /&gt;&lt;br /&gt;dmidecode -t 可以看到 可以显示的相关信息&lt;br /&gt;&lt;br /&gt;如：dmidecode -t processor 就可以显示cpu的相关信息。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2605596771891707878?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2605596771891707878/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2605596771891707878&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2605596771891707878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2605596771891707878'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/linux_28.html' title='Linux系统里有几根内存信息'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3026303345282687916</id><published>2008-03-28T09:34:00.001+08:00</published><updated>2008-03-28T09:34:05.141+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><title type='text'>Gentoo portage-utils常用选项 ［转］</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div&gt;   之前一直用的eix equery这些工具，结果上次当equery b 不听话的时候有人告诉我qfile，结果让我改变了对portage-utils的看法，所以就顺带整理了一下目的是方便自已看，各位高手看到下面有误的地方，请提示改正&lt;/div&gt;  &lt;span id='fullpost'&gt;&lt;div style='text-align: left;' dir='ltr'&gt;#------------------------------------------------------------------------------&lt;br /&gt;qlist &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;pkgname&amp;amp;gt;&lt;br /&gt;-I , --installed    *仅显示已安装的包  等同于eix -I --names-only&lt;br /&gt;-S, --slots         *显示已安装的包时同时显示slots&lt;br /&gt;-U, --umap 　       *显示已安装包的同时显示使用的USE标记&lt;br /&gt;-D,--dups           *仅显示包dups&lt;br /&gt;-e, --expact        *Exact match(only CAT/PN or PN without PV)&lt;br /&gt;-a, --all           *显示所有安装包&lt;br /&gt;-d, --dir           *仅显示包安装后的目录  equery files --filter=dir&lt;br /&gt;-o, --obj           *仅显示包安装后的obj&lt;br /&gt;-s, --sym           *仅显示包安装后的软链接&lt;br /&gt;-v, --verbose       *详细得你不想再详细&lt;br /&gt;-q, --quiet         *尽量的减少输出信息，并且连警告都不显示&lt;br /&gt;-C, --nocolor       *输出时不带颜色形式输出&lt;br /&gt;-h, --help          *打印帮助信息并退出&lt;br /&gt;-V, --version       *打印版本信息并退出&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;qpkg &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;misc args&amp;amp;gt; 注意该命令需要管理员权限&lt;br /&gt;Options: -[cpP:vqChV]&lt;br /&gt;-c, --clean         *清除无用的二进制文件目录，也就是 eclean-dist -d  ??有待考证&lt;br /&gt;-p, --pretend       *用过emerge -p就会用这个了&lt;br /&gt;-P, --pkgdir &amp;amp;lt;arg&amp;amp;gt;  *alternate package directory不知如何解释&lt;br /&gt;-V, --verbose  *&lt;br /&gt;-q, --quiet   *&lt;br /&gt;-C, --nocolor *&lt;br /&gt;-h, --help&lt;br /&gt;-V, --version&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;qfile &amp;amp;lt;filename&amp;amp;gt;&lt;br /&gt;Options: -[ef:m:oRx:vqChV]&lt;br /&gt;-e, --Exact          *精确匹配，类似eix -e gcc只查到包名为gcc的包效果一样&lt;br /&gt;-f, --from &amp;amp;lt;arg&amp;amp;gt;     *Read arguments form file &amp;amp;lt;arg&amp;amp;gt; ("-" for stdio)&lt;br /&gt;                     *将读入文件作为qfile的输入(有待考证)&lt;br /&gt;&lt;br /&gt;-m, --max-args &amp;amp;lt;arg&amp;amp;gt; * Treat from file arguments by groups of args(默认为5000)&lt;br /&gt;-o, --orphans        *显示孤立文件 这个是显示孤儿文件，就是不包含在任何安装包里边的文件。（不是通过ebuild安装的，可能是你手工安装的程序，也可能是反删除时候留下的文件），这个一般用来清除系统垃圾文件。&lt;br /&gt;-R, --root-prefix, Assume arguments are already prefixed by $ROOT&lt;br /&gt;                     *假设已将参数前缀设置为$ROOT了(不知如何表达)&lt;br /&gt;&lt;br /&gt;-x, --exclude &amp;amp;lt;arg&amp;amp;gt;  * Don't look in package &amp;amp;lt;arg&amp;amp;gt;排除xxxx&lt;br /&gt;&lt;br /&gt;&amp;amp;lt;注&amp;amp;gt;当equery b filename时未找到匹配时可以试试qfile,可能会给你带来惊喜&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;qlop &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;pkgname&amp;amp;gt;&lt;br /&gt;-g, --gauge      * Gauge number of times a package has been merged&lt;br /&gt;                   比较准确估算出一个包已merged的时间&lt;br /&gt;&lt;br /&gt;-t, --time       *计算一个指定包merge的时间&lt;br /&gt;-H, --human      *输出的是秒形式，所以用此参数转化为人性化的显示方式(需要-t参数的支持)&lt;br /&gt;-l, --list       *显示merge历史&lt;br /&gt;-u, --unlist     *显示unmerge 历史&lt;br /&gt;-c, --current    *显示当前正在emerging的包,相当于genlop -c&lt;br /&gt;&lt;br /&gt;-f, --logfile &amp;amp;lt;arg&amp;amp;gt; *Read emerge logfile instead of /var/log/emerge.log&lt;br /&gt;                    *用logfile的文件来代替/var/log/emerge.log &lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;quse &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;useflag&amp;amp;gt;&lt;br /&gt;-e, --exact          *精确比较，不使用正则表达式&lt;br /&gt;-a, --all            *Show annoying things in IUSE (不管3721全显)&lt;br /&gt;-K, --keywords       *Use the KEYWORDS vs IUSE&lt;br /&gt;-L, --license        *Use the LICENSE vs IUSE&lt;br /&gt;-D, --describe       *显示USE的描述信息，类似 euse -i xxx&lt;br /&gt;-F, --format   &amp;amp;lt;arg&amp;amp;gt; * Use your own variable formats. -F NAME=&lt;br /&gt;-N, --name-only      * Only show package name&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;qcheck &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;pkgname&amp;amp;gt;&lt;br /&gt;-e, --exact          *Exact match (only CAT/PN or PN without PV)&lt;br /&gt;-a, --all            *显示所有包&lt;br /&gt;-u, --update         *更新包的缺失的文件，校验码和修改时间(不要乱用)&lt;br /&gt;-A, --noafk          *忽略缺失的文件&lt;br /&gt;-H, --nohash         *Ignore differing/unknown file chksums&lt;br /&gt;-T, --nomtime        *Ignore differing file mtimes&lt;br /&gt;-v, --verbose&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;qsize &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;pkgname&amp;amp;gt;&lt;br /&gt;-f, --filesystem    *显示已使用的磁盘空间(包占用大小)&lt;br /&gt;-a, --all           *显示所有安装包的大小&lt;br /&gt;-s, --sum           *Include a summary 还会显示一个总和&lt;br /&gt;-S, --sum-only      *仅显示总和 &lt;br /&gt;-m, --megabytes     *用M方式显示 xMbytes&lt;br /&gt;-k, --kilobytes     *用K方式显示 Kbytes&lt;br /&gt;-b, --bytes&lt;br /&gt;-v, --version&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;qdepends &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;pkgname&amp;amp;gt;&lt;br /&gt;-d, --depend        *显示依赖信息&lt;br /&gt;-r, --rdepend       *显示反向依赖信息&lt;br /&gt;-p, --pdepend       *显示PDEPEND信息 (未理解到)&lt;br /&gt;-k, --key &amp;amp;lt;arg&amp;amp;gt;     *User defined vdb key&lt;br /&gt;-Q, --query &amp;amp;lt;arg&amp;amp;gt;   *查询反向依赖&lt;br /&gt;-N, --name-only     *仅显示包名&lt;br /&gt;-a, --all           *显示所有依赖信息&lt;br /&gt;-v, --verbose&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Usage: qtbz2 &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;misc args&amp;amp;gt; : manipulate tbz2 packages&lt;br /&gt;&lt;br /&gt;Options: -[jstxOvqChV]&lt;br /&gt;  -j, --join           * Join tar.bz2 + xpak into a tbz2&lt;br /&gt;  -s, --split          * Split a tbz2 into a tar.bz2 + xpak&lt;br /&gt;  -t, --tarbz2         * Just split the tar.bz2&lt;br /&gt;  -x, --xpak           * Just split the xpak&lt;br /&gt;  -O, --stdout         * Write files to stdout&lt;br /&gt;  -v, --verbose        * Make a lot of noise&lt;br /&gt;  -q, --quiet          * Tighter output; suppress warnings&lt;br /&gt;  -C, --nocolor        * Don't output color&lt;br /&gt;  -h, --help           * Print this help and exit&lt;br /&gt;  -V, --version        * Print version and exit&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Usage: qxpak &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;misc args&amp;amp;gt; : manipulate xpak archives&lt;br /&gt;&lt;br /&gt;Options: -[lxcd:OvqChV]&lt;br /&gt;  -l, --list           * List the contents of an archive&lt;br /&gt;  -x, --extract        * Extract the contents of an archive&lt;br /&gt;  -c, --create         * Create an archive of a directory/files&lt;br /&gt;  -d, --dir      &amp;amp;lt;arg&amp;amp;gt; * Change to specified directory&lt;br /&gt;  -O, --stdout         * Write files to stdout&lt;br /&gt;  -v, --verbose        * Make a lot of noise&lt;br /&gt;  -q, --quiet          * Tighter output; suppress warnings&lt;br /&gt;  -C, --nocolor        * Don't output color&lt;br /&gt;  -h, --help           * Print this help and exit&lt;br /&gt;  -V, --version        * Print version and exit&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;Usage: qatom &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;pkg&amp;amp;gt; : split atom strings&lt;br /&gt;                            拆分原子字符串&lt;br /&gt;Options: -[cvqChV]&lt;br /&gt;  -c, --compare        * Compare two atoms     &lt;br /&gt;                       * 比较两个原子&lt;br /&gt;  -v, --verbose        * Make a lot of noise &lt;br /&gt;  -q, --quiet          * Tighter output; suppress warnings&lt;br /&gt;  -C, --nocolor        * Don't output color&lt;br /&gt;  -h, --help           * Print this help and exit&lt;br /&gt;  -V, --version        * Print version and exit&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;Usage: qgrep &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;misc args&amp;amp;gt; : grep in ebuilds&lt;br /&gt;Options: -[IiHNclLexJEsS:B:A:vqChV]&lt;br /&gt;  -I, --invert-match   * Select non-matching lines&lt;br /&gt;                       * 选择不匹配的行&lt;br /&gt;  -i, --ignore-case    * Ignore case distinctions&lt;br /&gt;                       * 忽略大小分&lt;br /&gt;  -H, --with-filename  * Print the filename for each match&lt;br /&gt;                       * 打印每个匹配的文件名&lt;br /&gt;  -N, --with-name      * Print the package or eclass name for each match&lt;br /&gt;                       * 打印每个匹配的包名或eclass名&lt;br /&gt;  -c, --count          * Only print a count of matching lines per FILE&lt;br /&gt;                       * 只显示每个文件匹配行总个数&lt;br /&gt;  -l, --list           * Only print FILE names containing matches&lt;br /&gt;                       * 只打印文件名里面包含的匹配&lt;br /&gt;  -L, --invert-list    * Only print FILE names containing no match&lt;br /&gt;                       * 只打印文件名里面不匹配的内容&lt;br /&gt;  -e, --regexp         * Use PATTERN as a regular expression&lt;br /&gt;                       * 使用正则表达式&lt;br /&gt;  -x, --extended       * Use PATTERN as an extended regular expression&lt;br /&gt;                       * 使用正则表达式的扩展语法&lt;br /&gt;  -J, --installed      * Search in installed ebuilds instead of the tree&lt;br /&gt;                       * 搜索已安装的ebuilds&lt;br /&gt;  -E, --eclass         * Search in eclasses instead of ebuilds&lt;br /&gt;                       * 搜索&lt;br /&gt;  -s, --skip-comments  * Skip comments lines&lt;br /&gt;                       * 跳过注释行 只要重要的信息&lt;br /&gt;  -S, --skip     &amp;amp;lt;arg&amp;amp;gt; * Skip lines matching &amp;amp;lt;arg&amp;amp;gt;&lt;br /&gt;                       * 跳过匹配&amp;amp;lt;arg&amp;amp;gt;的行&lt;br /&gt;  -B, --before   &amp;amp;lt;arg&amp;amp;gt; * Print &amp;amp;lt;arg&amp;amp;gt; lines of leading context&lt;br /&gt;                       * 打印&lt;br /&gt;  -A, --after    &amp;amp;lt;arg&amp;amp;gt; * Print &amp;amp;lt;arg&amp;amp;gt; lines of trailing context&lt;br /&gt;  -v, --verbose        * Make a lot of noise&lt;br /&gt;  -q, --quiet          * Tighter output; suppress warnings&lt;br /&gt;  -C, --nocolor        * Don't output color&lt;br /&gt;  -h, --help           * Print this help and exit&lt;br /&gt;  -V, --version        * Print version and exit&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;Usage: qmerge &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;pkgnames&amp;amp;gt; : fetch and merge binary package&lt;br /&gt;&lt;br /&gt;Options: -[fFsKUpuyO5vqChV]&lt;br /&gt;  -f, --fetch          * Fetch package and newest Packages metadata&lt;br /&gt;                       * 获取包和最新的包metadata，等同emerge -f&lt;br /&gt;  -F, --force          * Fetch package (skipping Packages)&lt;br /&gt;                       * 获取包 (跳过包)&lt;br /&gt;  -s, --search         * Search available packages&lt;br /&gt;                       * 搜过有效包&lt;br /&gt;  -K, --install        * Install package&lt;br /&gt;                       * 安装包&lt;br /&gt;  -U, --unmerge        * Uninstall package&lt;br /&gt;                       * 卸载包&lt;br /&gt;  -p, --pretend        * Pretend only&lt;br /&gt;                       * 假打&lt;br /&gt;  -u, --update         * Update only&lt;br /&gt;                       * 仅更新&lt;br /&gt;  -y, --yes            * Don't prompt before overwriting&lt;br /&gt;                       * 直接代替你输入yes&lt;br /&gt;  -O, --nodeps         * Don't merge dependencies&lt;br /&gt;                       * 不emerge依赖包&lt;br /&gt;  -5, --nomd5          * Don't verify MD5 digest of files&lt;br /&gt;                       * 不校验文件的MD5信息&lt;br /&gt;  -v, --verbose        * Make a lot of noise&lt;br /&gt;  -q, --quiet          * Tighter output; suppress warnings&lt;br /&gt;  -C, --nocolor        * Don't output color&lt;br /&gt;  -h, --help           * Print this help and exit&lt;br /&gt;  -V, --version        * Print version and exit&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;Usage: qsearch &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;regex&amp;amp;gt; : search pkgname/desc&lt;br /&gt;&lt;br /&gt;Options: -[acsSNHvqChV]&lt;br /&gt;  -a, --all            * List the descriptions of every package in the cache&lt;br /&gt;                       * 显示cache中每个包的描述信息&lt;br /&gt;  -c, --cache          * Use the portage cache&lt;br /&gt;                       * 使用portage cache&lt;br /&gt;  -s, --search         * Regex search package basenames&lt;br /&gt;                       * 用正则表达式搜索包的基本名字&lt;br /&gt;  -S, --desc     &amp;amp;lt;arg&amp;amp;gt; * Regex search package descriptions&lt;br /&gt;                       * 用正则表达式搜索包的基本描述信息&lt;br /&gt;  -N, --name-only      * Only show package name&lt;br /&gt;                       * 只显示包名&lt;br /&gt;  -H, --homepage       * Show homepage info&lt;br /&gt;                       * 显示主页信息&lt;br /&gt;  -v, --verbose        * Make a lot of noise&lt;br /&gt;                       * 详细&lt;br /&gt;  -q, --quiet          * Tighter output; suppress warnings&lt;br /&gt;  -C, --nocolor        * Don't output color&lt;br /&gt;  -h, --help           * Print this help and exit&lt;br /&gt;  -V, --version        * Print version and exit&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;Usage: qcache &amp;amp;lt;opts&amp;amp;gt; &amp;amp;lt;action&amp;amp;gt; &amp;amp;lt;args&amp;amp;gt; : search the metadata cache&lt;br /&gt;&lt;br /&gt;Options: -[p:c:idtansvqChV]&lt;br /&gt;  -p, --matchpkg &amp;amp;lt;arg&amp;amp;gt; * match pkgname&lt;br /&gt;                       * 匹配包名&lt;br /&gt;  -c, --matchcat &amp;amp;lt;arg&amp;amp;gt; * match catname&lt;br /&gt;                       * 匹配&lt;br /&gt;  -i, --imlate         * list packages that can be marked stable on a given arch&lt;br /&gt;                       * 显示可以&lt;br /&gt;  -d, --dropped        * list packages that have dropped keywords on a version bump on a given arch&lt;br /&gt;                       * &lt;br /&gt;  -t, --testing        * list packages that have ~arch versions, but no stable versions on a given arch&lt;br /&gt;                       *&lt;br /&gt;  -s, --stats          * display statistics about the portage tree&lt;br /&gt;  -a, --all            * list packages that have at least one version keyworded for on a given arch&lt;br /&gt;                       * &lt;br /&gt;  -n, --not            * list packages that aren't keyworded on a given arch.&lt;br /&gt;                       *&lt;br /&gt;  -v, --verbose        * Make a lot of noise&lt;br /&gt;  -q, --quiet          * Tighter output; suppress warnings&lt;br /&gt;  -C, --nocolor        * Don't output color&lt;br /&gt;  -h, --help           * Print this help and exit&lt;br /&gt;  -V, --version        * Print version and exit&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3026303345282687916?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3026303345282687916/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3026303345282687916&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3026303345282687916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3026303345282687916'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/gentoo-portage-utils.html' title='Gentoo portage-utils常用选项 ［转］'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2084486280552852458</id><published>2008-03-24T15:04:00.001+08:00</published><updated>2008-03-24T15:04:11.246+08:00</updated><title type='text'>使用Tor+Firefox+FoxyProxy访问被和谐的网站</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div&gt;作者：李延瑞 (lyanry@gmail.com)&lt;/div&gt;&lt;p&gt;2007年10月15日&lt;/p&gt;&lt;p&gt;版本：0.1&lt;/p&gt;&lt;h3 style='color: rgb(106, 90, 205);'&gt;对于GFW，我痛恨但不指责&lt;/h3&gt;&lt;p&gt;整 个中国，相互连接的计算机构成了一个超大的局域网，但是在这个局域网面向海外的出口那里有一堵墙，它的名字叫做“The Great Fire Wall of China”，它的简称就是传说中的GFW，目前对其比较时髦的称谓是“和谐”。就是因为这堵墙，我们才不会被国外那些反华、反共、淫秽的信息所荼毒；也 是因为这堵墙，我们经常难以访问许多优秀的网络站点，譬如维基百科全书、Google Blogger、Google Page等。&lt;/p&gt;&lt;p&gt;对于GFW这种“宁肯错杀一千，也不放过一万”的做法，我的个人态度是非常痛恨但不打算指责，只好努力通过一些技术手段来获取访问那些被GFW了的好网站，来满足自己获取知识的需求。&lt;/p&gt;&lt;p&gt;目 前，我所衷爱并正在使用的操作系统是Gentoo Linux，因此在这篇并不太长的文档中，我要讲述在Gentoo下如何使用Tor、Firefox+Foxyproxy扩展来访问这些被“和谐”了的健 康网站。当然，本文的大部分内容也适合其他Linux发行版。对于Windows用户而言，本文内容除了有关Tor的安装与配置方法有区别外，其他有关 Firefox+FoxyProxy配置的内容是可以作为参考的。&lt;/p&gt;&lt;span id='fullpost'&gt;&lt;h3 style='color: rgb(106, 90, 205);'&gt;让Tor为你编织一些田间小路&lt;/h3&gt;&lt;p&gt;战争年代，难民们要从一座城市到另一座城市，他们要是走大路，很容易被敌军设置的路卡拦截，所以他们会选择一些只有乡下人才知道的田间小路，以隐藏自己的踪迹。&lt;/p&gt;&lt;p&gt;现在，我们身处信息时代，虽然不像战争年代那样残酷，但是从我们计算机发出或接受的信息都有可能被居心叵测的网络“路卡”（包括GFW）所拦截。所以我们要寻找一些可以隐藏自己踪迹的“田间小路”，它就是Tor。&lt;/p&gt;&lt;p&gt;有关Tor的详细描述请参考 &lt;a target='_blank' href='http://tor.eff.org/overview.html.zh-cn'&gt;这里&lt;/a&gt;，本文主要专注于Tor的具体应用。&lt;/p&gt;&lt;p&gt;对于Gentoo用户，安装Tor是一件非常容易的事情，只需要：&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;# emerge -avt tor&lt;/code&gt;&lt;/blockquote&gt;&lt;p&gt;下一步是配置Tor，首先将其一个配置文件示例中的内容作为其默认配置：&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;# cp /etc/tor/torrc.sample /etc/tor/torrc&lt;/code&gt;&lt;/blockquote&gt;&lt;p&gt;然后启动Tor服务，以监听所有来访Tor端口的信息：&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;# /etc/init.d/tor start&lt;/code&gt;&lt;/blockquote&gt;&lt;p&gt;如果不想每次都手动启动Tor服务，可以将其添加到系统启动过程中，这样每次启动Gentoo时，都会自动为你开启Tor服务。设置如下：&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;# rc-update add tor default&lt;/code&gt;&lt;/blockquote&gt;&lt;h3 style='color: rgb(106, 90, 205);'&gt;Firefox的FoxyProxy扩展&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;Firefox有一个扩展，唤作FoxyProxy，是用来为一些站点配置专门的代理服务访问的，它可以从 &lt;a target='_blank' href='https://addons.mozilla.org/en-US/firefox/addon/2464'&gt;这里&lt;/a&gt; 下载安装。如果你对Firefox的扩展安装还处于懵懂无知的境地，可以参考 &lt;a href='http://wiki.mozcn.org/index.php/Firefox:%E5%AE%89%E8%A3%85%E6%89%A9%E5%B1%95'&gt;这里&lt;/a&gt;。我在这里只说一下安装完FoxyProxy扩展并重启Firefox之后的故事。&lt;/p&gt;&lt;p&gt;首先，重启Firefox后，会弹出这样的对话框：&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img p='' style='border: 0pt none ;' src='http://lh6.google.com/lyanry/RxBsNF2tlnI/AAAAAAAAAR8/GTAjC8VGrm0/foxyproxy-warning-1.png'/&gt;&lt;/p&gt;&lt;p&gt;对于这个对话框，嘛也别说了，点击 “是” 按钮，让FoxyProxy可以与Tor协同工作。&lt;/p&gt;&lt;p&gt;紧接着会弹出 ：&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh6.google.com/lyanry/RxBvKF2tloI/AAAAAAAAASg/GHQaNp8VuWg/foxyproxy-warning-2.png'/&gt;&lt;/p&gt;&lt;p&gt;Privoxy是Tor的黄金搭档，专门用于实现Tor的Web代理访问的一个工具，由于FoxyProxy无需要Privoxy的支持即可调动Tor为其工作，所以这里选择“不使用”，而且我们也没必要去安装Privoxy。&lt;/p&gt;&lt;p&gt;下面弹出的对话框是让你选择Tor的监听端口的，默认值为“9050”，我们使用这个默认值就好。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh6.google.com/lyanry/RxBwCF2tlpI/AAAAAAAAASo/47rWU7XXWvs/foxyproxy-warning-3.png'/&gt;&lt;/p&gt;&lt;p&gt;说实在的，我很不太满意FoxyProxy的安装过程，一个一个对话框的向外跳，很烦人呃。为啥就不能把这些设置放在一个对话框面板中让用户进行设定呢？无论你是否愿意，如果像我这样决定使用FoxyProxy了，还是耐心一些了。喏，下面又是一个对话框：&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh6.google.com/lyanry/RxBxgF2tlqI/AAAAAAAAASw/XLzcUiSPvew/foxyproxy-warning-4.png'/&gt;&lt;/p&gt;&lt;p&gt;对于这个对话框所提出的问题，我也不知道如何选择，那么就按照它的提示，选择 “是”。听人劝，吃饱饭。&lt;/p&gt;&lt;p&gt;下 面跳出的这个对话框，不需要你选择什么，直接点击 “确定” 按钮即可。这个对话框实际上是FoxyProxy的配置面板，目前已经为你配置了使用Tor来访问你的 GMail 帐户，实际上在此你可以谢绝这个好意，将这项配置选中并删除。这个面板的用法，在下文中我们还要碰到，在此就略表即可。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh3.google.com/lyanry/RxByJV2tlrI/AAAAAAAAAS4/35LCe_8LFCI/foxyproxy-warning-5.png'/&gt;&lt;/p&gt;&lt;p&gt;下面弹出一个欢迎信息的对话框，祝贺你完成了FoxyProxy有关Tor的配置，点击 “确定” 即可。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxBzVl2tlsI/AAAAAAAAATA/5HoYLSKVw-M/foxyproxy-warning-6.png'/&gt;&lt;/p&gt;&lt;p&gt;下面会弹出最后一个对话框，提示你现在重新启动一下Firefox，请点击 “是”按钮。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh3.google.com/lyanry/RxBz_V2tltI/AAAAAAAAATI/1U7VOOAeE7U/foxyproxy-warning-7.png'/&gt;&lt;/p&gt;&lt;p&gt;埃，傻瓜式的配置过程终于结束了。这个过程让我心里有好多恶心的感觉，感觉那熟悉的Windows风格又回来了。&lt;/p&gt;&lt;p&gt;FoxyProxy安装完后，会在Firefox的任务栏上显示出任务图标：&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxFvIV2tluI/AAAAAAAAATY/6SawwXH1pVo/foxyproxy-icon.png'/&gt;&lt;/p&gt;&lt;h3 style='color: rgb(106, 90, 205);'&gt;狐假狐威的FoxyProxy&lt;/h3&gt;&lt;p&gt;本节主要介绍如何配置FoxyProxy，以便让Firefox畅通无阻地访问经常被和谐的Google Page、Google Blogger站点。&lt;/p&gt;&lt;p&gt;在Firefox任务栏上左键单击FoxyProxy图标，即可弹出FoxyProxy配置对话框，在该对话框中你可以新建、删除特定站点的代理服务器配置。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxGBzV2tlvI/AAAAAAAAATw/NZpL2qdDUt8/foxyproxy-settings-1.png'/&gt;&lt;/p&gt;&lt;p&gt;点击FoxyProxy配置对话框上的“新建代理服务器”按钮，打开下面的代理配置对话框，并在其“常规”页面上填写一些可以让自己明白所设置代理服务器意义的信息：&lt;/p&gt;&lt;p&gt;&lt;img style='border: 0pt none ;' src='http://lh3.google.com/lyanry/RxGMrF2tlwI/AAAAAAAAAUA/6zjoZonhF-U/foxyproxy-settings-2.png'/&gt;&lt;/p&gt;&lt;p&gt;在FoxyProxy代理配置对话框的“代理服务器细节”页面上作以下设置，给出代理服务器地址、端口等信息：&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxGMrV2tlxI/AAAAAAAAAUI/VmgGnQbWIFw/foxyproxy-settings-3.png'/&gt;&lt;/p&gt;&lt;p&gt;在FoxyProxy 代理配置对话框的“模板”页面上设定使用这一代理服务器访问的站点模板。所谓的站点模板实际上就是所访问网站的域名匹配字串，该字串有两种形式：通配符与 正则表达式。这样，Firefox将会根据此处设置的字串去匹配地址栏中你所输入的网址，如果匹配成功，那么就自动使用前面所设定的代理服务器访问相应站 点。&lt;/p&gt;&lt;p&gt;在“模板”配置页面上，点击“添加新模板”按钮，即可打开用于配置新模板的对话框。下图在该对话框中配置了匹配Google Page Creator的模板：&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxGMrV2tlyI/AAAAAAAAAUQ/614V3SOTx0M/foxyproxy-settings-4.png'/&gt;&lt;/p&gt;&lt;p&gt;照 葫芦画瓢，我们可以再建立两个模板：1）用于匹配“*googlepages.com/*”域名的模板，可用于访问Google Page Creator创建的页面；2）用于匹配"*blogspot.com/*"域名的模板，用于访问Google Blogger。新模板配置完毕后，点击配置新模板对话框的“确定”按钮，回转到FoxyProxy代理配置对话框的“模板”页面，在模板列表栏里可以看 到刚才所设定的模板了：&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxG1HV2tl0I/AAAAAAAAAUo/2iU-W7pLQRA/foxyproxy-settings-3-b.png'/&gt;&lt;/p&gt;&lt;p&gt;最后点击确认按钮，可以回转到在FoxyProxy代理配置对话框，在代理服务器列表栏里可以看到相应的代理服务器信息。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxGMrV2tlzI/AAAAAAAAAUY/D_Rqa-Rc_qw/foxyproxy-settings-5.png'/&gt;&lt;/p&gt;&lt;p&gt;最 后，点击FoxyProxy代理配置对话框中的确认按钮结束配置任务。现在，Firefox应该可以访问Google Page Creator、Google Blogger等站点了。如果不放心，可以重新启动一下Firefox。要确认所设定的代理是否可用，可以访问一些Google Page或Google Blogger站点测试一下，比如访问我的 &lt;a target='_blank' href='http://lyanry.googlepages.com/'&gt;Google Page&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;这 一节的内容至此已经结束，但是你也许会奇怪，为什么这一节的标题叫做“狐假狐威”的FoxyProxy呢？这是因为Firefox本身就具备这种专用的代 理服务器配置功能，这一功能是通过代理服务器自动配置脚本来实现的，也就是“.pac”文件，譬如上面FoxyProxy中的Google Servers代理配置过程可以写成一个“google-servers.pac”文件，其内容如下：&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;function FindProxyForURL(url,host){&lt;br /&gt; if(dnsDomainIs(host, ".blogspot.com")){&lt;br /&gt; return "PROXY 72.14.219.190:80";&lt;br /&gt; }&lt;br /&gt; if(dnsDomainIs(host, ".googlepages.com")){&lt;br /&gt; return "PROXY 72.14.219.190:80";&lt;br /&gt; }&lt;br /&gt; if(dnsDomainIs(host, "pages.google.com")){&lt;br /&gt; return "PROXY 72.14.219.190:80";&lt;br /&gt; }&lt;br /&gt; return "DIRECT";&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;这种自动代理配置脚本代码是javascript代码，Firefox与IE中都可以使用它来控制某一网站的代理服务访问模式。有关它的具体用法，可以google到更为详细的资料，此处略表不提。&lt;/p&gt;&lt;h3 style='color: rgb(106, 90, 205);'&gt;FoxyProxy与Tor的配合&lt;/h3&gt;&lt;p&gt;上一节讲了FoxyProxy怎样狐假狐威地作为Google Servers代理服务器的，其实FoxyProxy还是有一些真才实学的，譬如它与Tor的配合使用。&lt;/p&gt;&lt;p&gt;前文已经提到过将Tor用户网络代理访问工具的黄金搭档是Privoxy，但是对于我们仅仅使用Tor来访问一些被GFW的网站而言，使用FoxyProxy即可。下面通过在FoxyProxy中配置一个Tor代理来访问 &lt;code&gt;http://zh.wikipedia.org&lt;/code&gt;作为示例，演示一下FoxyProxy与Tor的配合使用方法。&lt;/p&gt;&lt;p&gt;首先，点击Firefox任务栏上FoxyProxy的图标，打开配置对话框。在“代理服务器”配置页面上的列表栏中显示已配置的代理服务器，如下图所示。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh4.google.com/lyanry/RxNTy12tl1I/AAAAAAAAAU4/sObeb2uTDqc/foxyproxy-tor-settings-1.png'/&gt;&lt;/p&gt;&lt;p&gt;由 于前文在安装FoxyProxy时，已经配置了一个默认的Tor代理服务器，现在用鼠标左键双击列表栏中的Tor服务器条目，即可打开该代理服务器配置页 面，并作出如下图所示的设定。注意，此处对于代理服务器地址与端口的设定，必须与Tor配置文件中的代理服务器地址与端口信息相一致。Tor的配置文件即&lt;code&gt;/etc/tor/torrc&lt;/code&gt;（见前文安装Tor的内容）。对于本文而言，&lt;code&gt;/etc/tor/torrc&lt;/code&gt;文件中Tor的代理服务器地址与端口是与此处FoxyProxy中的设定是一致的。&lt;/p&gt;&lt;p class='separator' style='text-align: center; clear: both;'&gt;&lt;img style='border: 0pt none ;' src='http://lh5.google.com/lyanry/RxNTzF2tl2I/AAAAAAAAAVA/QVWCN8YH1Mo/foxyproxy-tor-settings-2.png'/&gt;&lt;/p&gt;&lt;p&gt;完成Tor代理服务器配置之后，就可以访问 &lt;a target='_blank' href='http://zh.wikipedia.org/'&gt;维基中国&lt;/a&gt;网站了。&lt;/p&gt;&lt;p&gt;你也可以使用Tor来访问其他一些被GFW的内容健康的网站，但是你一定会抱怨访问速度怎么这么慢。这时，你应当好好了解一下Tor的工作原理，只有如此，你才能心里上略加安慰，并积极地使用Tor，甚至把自己的网络也融为Tor的一部分。&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2084486280552852458?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2084486280552852458/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2084486280552852458&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2084486280552852458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2084486280552852458'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/torfirefoxfoxyproxy.html' title='使用Tor+Firefox+FoxyProxy访问被和谐的网站'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6472082977688024979</id><published>2008-03-19T11:51:00.001+08:00</published><updated>2008-03-19T11:56:27.555+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><title type='text'>emerge tips</title><content type='html'>quickpkg portage 备份当前的portage包,以便出现问题恢复&lt;br /&gt;&lt;br /&gt;quickpkg bash 备份当前的bash包,以便出现问题恢复&lt;br /&gt;&lt;br /&gt;emerge -uO portage O就是不考虑依赖关系&lt;br /&gt;&lt;br /&gt;emerge -uDNpv world D=--deep N=--newuse&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6472082977688024979?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6472082977688024979/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6472082977688024979&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6472082977688024979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6472082977688024979'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/emerge-tips.html' title='emerge tips'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3414922578099638883</id><published>2008-03-13T21:51:00.001+08:00</published><updated>2008-03-13T21:51:39.112+08:00</updated><title type='text'>今天辞职了</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;今天辞职了，心理还是怪怪的，这大半年发生了太多的事，希望留在那里的弟兄能够有个好的未来，也希望自己再次考研成功，哎 算了 不写了&lt;br/&gt;改天吧&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3414922578099638883?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3414922578099638883/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3414922578099638883&amp;isPopup=true' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3414922578099638883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3414922578099638883'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/blog-post_13.html' title='今天辞职了'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3870910731598994218</id><published>2008-03-12T09:47:00.002+08:00</published><updated>2008-03-12T09:51:31.929+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>10个你所不知道的杀手级FireFox扩展【转】</title><content type='html'>&lt;span style="font-weight: bold;"&gt;最为重要的是,这些精彩的扩展几乎都不是我们所熟知的著名产品,它可以有效地提升您的浏览体验.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;h3&gt;1. PicLens&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/5579"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_0.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;PicLens可以立即将你的浏览器变成全屏3D视角,形成一个3D浏览墙,可以通过拖放,点击,缩放等操作来加强浏览体验.&lt;br /&gt;&lt;/p&gt;&lt;span id="fullpost"&gt; &lt;h3&gt;2. Snap Links&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/4336"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_1.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;通过拖动快速收集超级链接 &lt;/p&gt; &lt;h3&gt;3. Tab Scope&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/4882"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_2.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;类似于Windows Vista的任务栏预览.&lt;/p&gt; &lt;h3&gt;4. Reminder Fox&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/1191"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_3.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;FireFox的提醒软件,贵人从此少忘事 &lt;/p&gt; &lt;h3&gt;5. Download Statusbar &lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/26"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_4.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;显示下载的进度,再也不用点菜单来浏览下载情况 &lt;/p&gt; &lt;h3&gt;6. HyperWords&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/1941"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_5.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;将FireFox变成专业级的文字处理工具,挺酷吧! &lt;/p&gt; &lt;h3&gt;7. Foxmarks Bookmark Synchronizer&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/2410"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_6.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;将书签同步到网上,就算到了另一台机器也可以轻松获取到 &lt;/p&gt; &lt;h3&gt;8. Tab Effect&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/4258"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_7.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;3D Cube功能&lt;br /&gt;&lt;/p&gt; &lt;h3&gt;9. Cooliris Previews&lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/2207"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_8.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;快速预览一个站点,并且通过图形的方式直接引导访问. &lt;/p&gt; &lt;h3&gt;10. StumbleUpon &lt;/h3&gt; &lt;p&gt;&lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/138"&gt;&lt;img alt="" src="http://s3.amazonaws.com/readers/webupon/2008/03/10/123718_9.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;对网上的内容进行评分,这样你可以参考大家的意见做出自己的选择.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3870910731598994218?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3870910731598994218/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3870910731598994218&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3870910731598994218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3870910731598994218'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/10firefox.html' title='10个你所不知道的杀手级FireFox扩展【转】'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-7639504142873873763</id><published>2008-03-11T11:02:00.001+08:00</published><updated>2008-03-11T11:04:34.213+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='励志'/><title type='text'>《在路上》－－－自勉</title><content type='html'>将这首《在路上》送给自己&lt;br /&gt;希望能在路上，披荆斩棘，一往无前！&lt;br /&gt;&lt;embed src="http://player.youku.com/player.php/sid/XMjU1MTc3Mg==/v.swf" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" align="middle" height="400" width="480"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-7639504142873873763?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/7639504142873873763/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=7639504142873873763&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/7639504142873873763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/7639504142873873763'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/blog-post.html' title='《在路上》－－－自勉'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6416842204719975820</id><published>2008-03-10T15:52:00.001+08:00</published><updated>2008-03-10T15:56:16.721+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ARM'/><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='s3c2410'/><category scheme='http://www.blogger.com/atom/ns#' term='linux开发'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>s3c2410 LCD图片显示【转】</title><content type='html'>最近研究了s3c2410下LCD控制器的相关知识，主要的参考资料就是 三星s3c2410数据手册(arm920T)，英文版，看的不是非常明白，后来参考了WinCE下的部分代码，似有所领悟。于是写了此程序，用以在LCD上显示图片。&lt;br /&gt;本程序可以在LCD上居中显示小于800×480的任意大小的图片。用到的辅助工具就是上篇文章中的RGB分量提取器.&lt;br /&gt;关键模块如下：&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;0、全局变量的定义：&lt;br /&gt;&lt;br /&gt;#define DMA_BUFFER_BASE            0xAC000000&lt;br /&gt;#define DMA_PHYSICAL_BASE        0x35000000  // S3C2410X01 0x30000000&lt;br /&gt;&lt;br /&gt;#define FRAMEBUF_BASE                (DMA_BUFFER_BASE + 0x00100000)&lt;br /&gt;#define FRAMEBUF_DMA_BASE            (DMA_PHYSICAL_BASE + 0x00000000)//0x00100000&lt;br /&gt;&lt;br /&gt;#define IOP_BASE      0x56000000 // 0x56000000&lt;br /&gt;&lt;br /&gt;typedef struct  {&lt;br /&gt;   unsigned int  GPACON;        // 00&lt;br /&gt;   unsigned int  GPADAT;&lt;br /&gt;   unsigned int  PAD1[2];&lt;br /&gt;   ...................&lt;br /&gt;   }IOPreg;&lt;br /&gt;&lt;br /&gt;// Define LCD type of S3C2400X01&lt;br /&gt;#define TFT24BPP    3&lt;br /&gt;#define LCDTYPE     TFT24BPP   // define LCD type as upper definition.&lt;br /&gt;//&lt;br /&gt;// Registers : LCD Controller&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;#define LCD_BASE      0x4D000000 // 0x4D000000&lt;br /&gt;typedef struct  {&lt;br /&gt;   unsigned int  LCDCON1;        // 00&lt;br /&gt;   unsigned int  LCDCON2;        // 04&lt;br /&gt;   unsigned int  LCDCON3;        // 08&lt;br /&gt;   .....................&lt;br /&gt;}LCDreg ;  &lt;br /&gt;&lt;br /&gt;// LCD register value  &lt;br /&gt;&lt;br /&gt;#define MODE_TFT_24BIT            (224)&lt;br /&gt;#define LCD_XSIZE_TFT       (800)  &lt;br /&gt;#define LCD_YSIZE_TFT       (480)&lt;br /&gt;#define ARRAY_SIZE_TFT_24BIT    (SCR_XSIZE*4*SCR_YSIZE)&lt;br /&gt;#define HOZVAL_TFT          (LCD_XSIZE_TFT-1)&lt;br /&gt;#define LINEVAL_TFT         (LCD_YSIZE_TFT-1)&lt;br /&gt;#define MVAL                (13)&lt;br /&gt;#define MVAL_USED           (0)&lt;br /&gt;#define VBPD                ((32-1)&amp;amp;0xff)&lt;br /&gt;#define VFPD                ((11-1)&amp;amp;0xff)&lt;br /&gt;#define VSPW                ((2-1) &amp;amp;0x3f)&lt;br /&gt;#define HBPD                ((88-1)&amp;amp;0x7f)&lt;br /&gt;#define HFPD                ((40-1)&amp;amp;0xff)&lt;br /&gt;#define HSPW                ((128-1)&amp;amp;0xff)&lt;br /&gt;#define CLKVAL_TFT          (1)&lt;br /&gt;#define M5D(n)              ((n) &amp;amp; 0x1fffff)&lt;br /&gt;&lt;br /&gt;U32* pLCDBuffer24=(U32*)FRAMEBUF_DMA_BASE;&lt;br /&gt;U32* picData;&lt;br /&gt;&lt;br /&gt;volatile LCDreg *s2410LCD = (LCDreg *)LCD_BASE;&lt;br /&gt;&lt;br /&gt;volatile IOPreg *s2410IOP= (IOPreg *)IOP_BASE;&lt;br /&gt;&lt;br /&gt;int nCol = 800;//象素列数&lt;br /&gt;int nRow = 480;//象素行数&lt;br /&gt;U32* picDataT=NULL;&lt;br /&gt;&lt;br /&gt;1、入口函数，其中包括了相应端口、寄存器初始化的入口，aa,bb,cc,dd,ee是可选择的5幅预定义图片的GRB码数组，具体代码如下&lt;br /&gt;&lt;br /&gt;void lcd_Main(void)&lt;br /&gt;{&lt;br /&gt;   char sel;&lt;br /&gt;   Uart_Printf("Lcd_Driver ");&lt;br /&gt; &lt;br /&gt;   lcd_port_init();&lt;br /&gt;   lcd_regs_init();&lt;br /&gt; &lt;br /&gt;   Uart_Printf("select one Picture to show(1 2 3 4 5 0) ");&lt;br /&gt; &lt;br /&gt;     while((sel = Uart_Getch()) != 'e')&lt;br /&gt;     {&lt;br /&gt;         Uart_Printf("%c ",sel);&lt;br /&gt;         switch(sel)&lt;br /&gt;         {&lt;br /&gt;         case '1':&lt;br /&gt;            picData = (U32*)aa;break;&lt;br /&gt;       case '2':&lt;br /&gt;            picData =(U32*)bb;break;&lt;br /&gt;       case '3':&lt;br /&gt;            picData = (U32*)cc;break;&lt;br /&gt;       case '4':&lt;br /&gt;            picData = (U32*)dd; break;&lt;br /&gt;       case '5':&lt;br /&gt;            picData = (U32*)ee;break;&lt;br /&gt;       default:&lt;br /&gt;            Uart_Printf("Input 1 2 3 4 5 0 ");&lt;br /&gt;        }&lt;br /&gt;      &lt;br /&gt;        lcd_display();&lt;br /&gt;      &lt;br /&gt;        Uart_Printf("select one Picture to show(1 2 3 4 5 0) ");&lt;br /&gt;    }&lt;br /&gt;   Uart_Printf("Exit");&lt;br /&gt;   //lcd_close();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;2、相应端口设置，包括GPC，GPD，GPG的相应位的设置：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void lcd_port_init(void)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;   // LCD port initialize.&lt;br /&gt;   s2410IOP-&gt;GPCUP  = 0xFFFFFFFF;&lt;br /&gt;   s2410IOP-&gt;GPCCON = 0xAAAAAAAA;&lt;br /&gt;&lt;br /&gt;   s2410IOP-&gt;GPDUP  = 0xFFFFFFFF;&lt;br /&gt;   s2410IOP-&gt;GPDCON = 0xAAAAAAAA;&lt;br /&gt;&lt;br /&gt;   s2410IOP-&gt;GPGCON &amp;amp;= ~(3 &lt;&lt;&gt;GPGCON |=  (1 &lt;&lt;&gt;GPGDAT |=  (1 &lt;&lt;&gt;LCDCON1   =   (1           &lt;&lt; vclk =" HCLK"&gt; About 7 Mhz&lt;br /&gt;                           (MVAL_USED   &lt;&lt;&gt;LCDCON2   =   (VBPD        &lt;&lt;&gt;LCDCON3   =   (HBPD        &lt;&lt;&gt;LCDCON4   =   (MVAL        &lt;&lt;&gt;LCDCON5   = 0x00000000;&lt;br /&gt;/**//*&lt;br /&gt;   s2410LCD-&gt;LCDCON5   =   (0           &lt;&lt;&gt;LCDSADDR1 = ((FRAMEBUF_DMA_BASE &gt;&gt; 22)     &lt;&lt;&gt;&gt; 1)) &lt;&lt; lcdbank =" ((FRAMEBUF_DMA_BASE"&gt;&gt; 22)     &lt;&lt; lcdbaseu =" ((M5D(FRAMEBUF_DMA_BASE)"&gt;&gt; 1) &lt;&lt;&gt;LCDSADDR2 = (M5D(FRAMEBUF_DMA_BASE) &gt;&gt; 1) + ( (LCD_XSIZE_TFT*2) + 0 )*(LINEVAL_TFT+1);&lt;br /&gt;   //LCDBASEL = s2410LCD-&gt;LCDSADDR2&lt;br /&gt; &lt;br /&gt;   s2410LCD-&gt;LCDSADDR3 = (((LCD_XSIZE_TFT - LCD_XSIZE_TFT) / 1) &lt;&lt; offsize =" (((LCD_XSIZE_TFT" pagewidth =" (LCD_XSIZE_TFT)"&gt;TPAL     = 0x0;&lt;br /&gt;   s2410LCD-&gt;LCDCON1 |= 1;&lt;br /&gt; &lt;br /&gt;   #endif&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;4、居中显示图片：&lt;br /&gt;&lt;br /&gt;void lcd_display(void)&lt;br /&gt;{&lt;br /&gt;   int y;&lt;br /&gt;   int pw, ph;&lt;br /&gt;   int sw=800, sh=480;&lt;br /&gt;   U32* pdata;&lt;br /&gt;   U32* pBt=NULL;&lt;br /&gt; &lt;br /&gt;   lcd_clear();&lt;br /&gt; &lt;br /&gt;   get_XY();//获得图片的宽与高，以保存在RGB数组的头两个字节。&lt;br /&gt;   pw = nCol, ph = nRow;&lt;br /&gt; &lt;br /&gt;   pBt = pLCDBuffer24 + sw*(sh/2-ph/2) + (sw/2-pw/2);//定位图片显示的起始位置&lt;br /&gt; &lt;br /&gt;   pdata = (U32*)picDataT;&lt;br /&gt;   for(y=0; y&lt;nrow; pdata="(U32*)(pdata+nCol);"&gt;LCDCON1 |= 0;&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;5、每次显示都要获得图片的宽度和高度，并且清除前面的屏幕，所谓清屏就是显示背景图片（蓝色）：&lt;br /&gt;&lt;br /&gt;void lcd_clear()&lt;br /&gt;{&lt;br /&gt;   int y=0;&lt;br /&gt;   U32* pdata = (U32*)(bgData+2);&lt;br /&gt;   for(y=0; y&lt;480; ++y)&lt;br /&gt;   {  &lt;br /&gt;       memcpy((pLCDBuffer24+800*y),(char*)pdata,800*4);&lt;br /&gt;       pdata = (U32*)(pdata+800);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void get_XY(void)&lt;br /&gt;{&lt;br /&gt;   nCol = picData[0];&lt;br /&gt;   nRow = picData[1];&lt;br /&gt; &lt;br /&gt;   picDataT =(U32*) (picData + 2);&lt;br /&gt;}&lt;/span&gt;&lt;/nrow;&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6416842204719975820?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6416842204719975820/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6416842204719975820&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6416842204719975820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6416842204719975820'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/s3c2410-lcd.html' title='s3c2410 LCD图片显示【转】'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5802989144859305375</id><published>2008-03-10T10:06:00.000+08:00</published><updated>2008-03-10T10:07:14.511+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux系统的开机程序执行顺序</title><content type='html'>开机的程序是这样的：&lt;br /&gt;&lt;br /&gt;1. 加载 BIOS 的硬件信息，并取得第一个开机装置的代号；&lt;br /&gt;&lt;br /&gt;2. 读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等&lt;br /&gt;&lt;br /&gt;等) 的开机信息；&lt;br /&gt;&lt;br /&gt;3. 加载 Kernel 操作系统核心信息， Kernel 开始解压缩，并且尝试驱动所有硬件装&lt;br /&gt;&lt;br /&gt;置；&lt;br /&gt;&lt;br /&gt;4. Kernel 执行 init 程序并取得 run-level 信息；&lt;br /&gt;&lt;br /&gt;5. init 执行 /etc/rc.d/rc.sysinit 档案；&lt;br /&gt;&lt;br /&gt;6. 启动核心的外挂模块 (/etc/modprobe.conf)；&lt;br /&gt;&lt;br /&gt;7. init 执行 run-level 的各个批次档( Scripts )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5802989144859305375?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5802989144859305375/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5802989144859305375&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5802989144859305375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5802989144859305375'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/linux.html' title='Linux系统的开机程序执行顺序'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-4706445523213458199</id><published>2008-03-08T18:59:00.001+08:00</published><updated>2008-03-08T18:59:51.333+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='音乐'/><title type='text'>2007,十张欧美唱片推荐</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/3222163082.html'&gt;Playing My Game&lt;/a&gt; Lene Marlin&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='lene marlin' src='http://pic.yupoo.com/yleo77/251395275a4d/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;静谧的空气里，却不能忽略这样一副好嗓音，一份迷茫，一缕落寞&lt;br /&gt;曲目&lt;span class='yo2keyword yo2keyword_tag'&gt;&lt;a title='Tag 了 1 篇文章' href='http://www.alive77.cn/archives/tag/%E6%8E%A8%E8%8D%90'&gt;推荐&lt;/a&gt;&lt;/span&gt;：Sitting Down Here&lt;/p&gt; &lt;span id='fullpost'&gt;&lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/3846106752.html'&gt;Konvicted&lt;/a&gt; Akon&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='akon' src='http://pic.yupoo.com/yleo77/641735275acb/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;至终都充满了节奏音感，精炼的blues接踵而至，涌入耳膜。如果你喜欢蓝调 嘻哈，怎能错过这位饶舌天才的音乐呢。&lt;br /&gt;曲目推荐：Dont Let Up&lt;/p&gt; &lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/1221632672.html'&gt;Metamorphosis&lt;/a&gt; Hilary Duff&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='221' alt='hilary duff' src='http://pic.yupoo.com/yleo77/293355275df0/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;初次听她的歌完全是冲于专辑封面，略带轻摇滚的音乐风格，自然，甜美却不失张力&lt;br /&gt;曲目推荐：Where Did I Go Right&lt;/p&gt; &lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/4235762620.html'&gt;&lt;br /&gt;Back To Basics&lt;/a&gt; Christina Aguilera&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='238' alt='christina' src='http://pic.yupoo.com/yleo77/259715276387/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;爵士不是我喜欢的音乐 但是在这张专辑里，我听出了不同的味道。珠，玉，野心 迸裂，如果你想跳&lt;br /&gt;曲目推荐：save me from myself&lt;/p&gt; &lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/3609977577.html'&gt;Trust Me&lt;/a&gt; CRAIG DAVID&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='craig david' src='http://pic.yupoo.com/yleo77/899355276430/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;太多的优点 太多的惊艳 太多的……归于兀自。07，我庆幸听到了他的音乐，trust me。你，还想说什么&lt;br /&gt;曲目推荐：Hot Stuff-Let’s Dance&lt;/p&gt; &lt;p&gt;&lt;a href='http://www.douban.com/subject/1982297/'&gt;we are one&lt;/a&gt; Kelly Sweet&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='kelly sweet' src='http://pic.yupoo.com/yleo77/1888052766de/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;清新 空灵 脱俗 如同精灵一般，用天使的嗓音吟唱着凡间的音乐，用娓约的声音诉说着那股抛不开的淡淡悲伤&lt;br /&gt;曲目推荐：we are one&lt;/p&gt; &lt;p&gt;&lt;a href='http://www.douban.com/subject/1960229/'&gt;Music for Tourists&lt;/a&gt; Chris Garneau&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='chris garneau' src='http://pic.yupoo.com/yleo77/102805276895/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;游离在中音区的情感诉说，辅以钢琴与大提琴作为旋律表达。用心去听，或许，你会有种想哭的感觉。&lt;br /&gt;曲目推荐：black and blue&lt;/p&gt; &lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/3563241345.html'&gt;breakaway&lt;/a&gt; Kelly Clarkson&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='kelly clarkson' src='http://pic.yupoo.com/yleo77/477375276c8c/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;可爱的封面包装确实不同味道的风格。发酵的音乐旋律，搭配着摇滚味儿的唱腔，破茧而出。&lt;br /&gt;曲目推荐：BeautifulDisaster&lt;/p&gt; &lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/345679633.html'&gt;Not Going Anywhere&lt;/a&gt; Keren Ann&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='keren ann' src='http://pic.yupoo.com/yleo77/039245276f55/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;一个人呼吸 低调 飘渺的雾气充斥在生活之中 适合于清静的环境 一个人慢慢得思绪 回味 享受&lt;br /&gt;曲目推荐：End Of May&lt;/p&gt; &lt;p&gt;&lt;a href='http://cache.soso.com/music/meks/album/3320971909.html'&gt;Naughty But Nice&lt;/a&gt; Sarah Connor&lt;/p&gt; &lt;div align='center'&gt;&lt;img width='240' height='240' alt='sarah connor' src='http://pic.yupoo.com/yleo77/825785276fcd/small.jpg'/&gt;&lt;/div&gt; &lt;p&gt;独有质感的嗓音 磅礴 大气 听她的歌，总能将情感空间提升到一个思绪澎湃的境界 投入 亦无法平静 欲罢不能。&lt;br /&gt;曲目推荐：Living To Love You&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-4706445523213458199?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/4706445523213458199/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=4706445523213458199&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4706445523213458199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/4706445523213458199'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/2007.html' title='2007,十张欧美唱片推荐'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-270141774198062618</id><published>2008-03-08T11:28:00.001+08:00</published><updated>2008-03-08T11:28:58.925+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><title type='text'>emerge error on which-2.19</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;blockquote&gt;&lt;font color='#000000'&gt;make[2]: Entering directory `/var/tmp/portage/sys-apps/which-2.19/work/which-2.19/tilde'&lt;br/&gt;source='tilde.c' object='tilde.o' libtool=no \&lt;br/&gt;        DEPDIR=.deps depmode=none /bin/sh ../depcomp \&lt;br/&gt;        i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I..     -mtune=pentium-m -march=pentium-m -O2 -pipe -fomit-frame-pointer -msse2 -msse -mmmx -mfpmath=sse -c tilde.c&lt;br/&gt;source='shell.c' object='shell.o' libtool=no \&lt;br/&gt;        DEPDIR=.deps depmode=none /bin/sh ../depcomp \&lt;br/&gt;        i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I..     -mtune=pentium-m -march=pentium-m -O2 -pipe -fomit-frame-pointer -msse2 -msse -mmmx -mfpmath=sse -c shell.c&lt;br/&gt;Unknown depmode none&lt;br/&gt;make[2]: *** [tilde.o] Error 1&lt;br/&gt;make[2]: *** Waiting for unfinished jobs....&lt;br/&gt;Unknown depmode none&lt;br/&gt;make[2]: *** [shell.o] Error 1&lt;br/&gt;make[2]: Leaving directory `/var/tmp/portage/sys-apps/which-2.19/work/which-2.19/tilde'&lt;br/&gt;make[1]: *** [all-recursive] Error 1&lt;br/&gt;make[1]: Leaving directory `/var/tmp/portage/sys-apps/which-2.19/work/which-2.19'&lt;br/&gt;make: *** [all] Error 2&lt;br/&gt; *&lt;br/&gt; * ERROR: sys-apps/which-2.19 failed.&lt;br/&gt; * Call stack:&lt;br/&gt; *               ebuild.sh, line   49:  Called src_compile&lt;br/&gt; *             environment, line 2050:  Called die&lt;br/&gt; * The specific snippet of code:&lt;br/&gt; *           emake || die "emake failed";&lt;br/&gt; *  The die message:&lt;br/&gt; *   emake failed&lt;/font&gt;&lt;/blockquote&gt;&lt;font color='#000000'&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color='#ffffff'&gt;when use this&lt;br/&gt;am_cv_CC_dependencies_compiler_type=gcc3 emerge which &lt;br/&gt;all things goes well&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-270141774198062618?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/270141774198062618/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=270141774198062618&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/270141774198062618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/270141774198062618'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/emerge-error-on-which-219_08.html' title='emerge error on which-2.19'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6678288246555253423</id><published>2008-03-07T11:22:00.001+08:00</published><updated>2008-03-07T11:23:50.286+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='音乐'/><title type='text'>Love In December - Club 8</title><content type='html'>&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/e8vQKY9T2Uo"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/e8vQKY9T2Uo" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6678288246555253423?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6678288246555253423/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6678288246555253423&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6678288246555253423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6678288246555253423'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/love-in-december-club-8.html' title='Love In December - Club 8'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-7418232128578596072</id><published>2008-03-05T10:29:00.002+08:00</published><updated>2008-03-05T10:32:08.062+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fcitx'/><title type='text'>fcitx主体颜色</title><content type='html'>其一&lt;br /&gt;&lt;br /&gt;[界面]&lt;br /&gt;候选词个数=10&lt;br /&gt;主窗口使用3D界面=0&lt;br /&gt;输入条使用3D界面=0&lt;br /&gt;主窗口隐藏模式=1&lt;br /&gt;是否自动隐藏输入条=1&lt;br /&gt;显示虚拟键盘=0&lt;br /&gt;输入条居中=1&lt;br /&gt;首次显示输入条=1&lt;br /&gt;# 输入条固定宽度(仅适用于码表输入法)，0表示不固定宽度&lt;br /&gt;输入条固定宽度=0&lt;br /&gt;输入条偏移量X=0&lt;br /&gt;输入条偏移量Y=67108880&lt;br /&gt;序号后加点=1&lt;br /&gt;显示打字速度=0&lt;br /&gt;显示版本=0&lt;br /&gt;光标色=92 210 131&lt;br /&gt;主窗口背景色=255 255 255&lt;br /&gt;主窗口线条色=229 229 229&lt;br /&gt;主窗口输入法名称色=191 191 191  80 220 150 30 160 250&lt;br /&gt;输入窗背景色=255 255 255&lt;br /&gt;输入窗提示色=250 40 200&lt;br /&gt;输入窗用户输入色=250 40 200&lt;br /&gt;输入窗序号色=250 40 200&lt;br /&gt;输入窗第一个候选字色=30 160 250&lt;br /&gt;# 该颜色值只用于拼音中的用户自造词&lt;br /&gt;输入窗用户词组色=250 40 200&lt;br /&gt;输入窗提示编码色=100 100 255&lt;br /&gt;# 五笔、拼音的单字/系统词组均使用该颜色&lt;br /&gt;输入窗其它文本色=30 160 250&lt;br /&gt;输入窗线条色=229 229 229&lt;br /&gt;输入窗箭头色=30 240 170&lt;br /&gt;虚拟键盘窗背景色=255 255 255&lt;br /&gt;虚拟键盘窗字母色=250 40 200&lt;br /&gt;虚拟键盘窗符号色=30 160 250&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;其二&lt;br /&gt;&lt;br /&gt;粉色&lt;br /&gt;&lt;br /&gt;光标色=102 159 66&lt;br /&gt;主窗口背景色=255 255 255&lt;br /&gt;主窗口线条色=203 202 186&lt;br /&gt;主窗口输入法名称色=153 153 153 102 159 66 56 134 230&lt;br /&gt;输入窗背景色=255 255 255&lt;br /&gt;输入窗提示色=2 89 196&lt;br /&gt;输入窗用户输入色=255 0 132&lt;br /&gt;输入窗序号色=0 66 200&lt;br /&gt;输入窗第一个候选字色=0 99 200&lt;br /&gt;#该颜色值只用于拼音中的用户自造词&lt;br /&gt;输入窗用户词组色=0 99 200&lt;br /&gt;输入窗提示编码色=255 0 132&lt;br /&gt;#五笔、拼音的单字/系统词组均使用该颜色&lt;br /&gt;输入窗其它文本色=56 134 230&lt;br /&gt;输入窗线条色=203 202 186&lt;br /&gt;输入窗箭头色=193 227 151&lt;br /&gt;虚拟键盘窗背景色=220 220 220&lt;br /&gt;虚拟键盘窗字母色=80 0 0&lt;br /&gt;虚拟键盘窗符号色=0 0 0&lt;br /&gt;&lt;br /&gt;其三&lt;br /&gt;&lt;br /&gt;ubuntu主题&lt;br /&gt;[界面]&lt;br /&gt;候选词个数=10&lt;br /&gt;主窗口是否使用3D界面=1 #&lt;br /&gt;输入条使用3D界面=1&lt;br /&gt;主窗口隐藏模式=1       #0--&gt;一直显示在顶层;1--&gt;只有在中文输入状态下才显示;2--&gt; 不显示&lt;br /&gt;显示虚拟键盘=0&lt;br /&gt;是否自动隐藏输入条=1&lt;br /&gt;输入条是否居中=0&lt;br /&gt;首次显示输入条=0&lt;br /&gt;#输入条固定宽度(仅适用于码表输入法)，0表示不固定宽度&lt;br /&gt;输入条固定宽度=0&lt;br /&gt;输入条偏移量X=0&lt;br /&gt;输入条偏移量Y=12&lt;br /&gt;序号后加点=1&lt;br /&gt;显示打字速度=0&lt;br /&gt;显示版本=0&lt;br /&gt;光标色=160 446 46&lt;br /&gt;主窗口背景色=240 240 240&lt;br /&gt;主窗口输入法名称色=153 153 153 200 200 200 240 153 50&lt;br /&gt;主窗口线条色=245 154 49&lt;br /&gt;输入窗背景色=240 240 240&lt;br /&gt;输入窗提示色=48 132 240&lt;br /&gt;输入窗用户输入色=255 0 255&lt;br /&gt;输入窗序号色=239 104 49&lt;br /&gt;输入窗第一个候选字色=238 103 48&lt;br /&gt;#该颜色值只用于拼音中的用户自造词&lt;br /&gt;输入窗用户词组色=241 154 49&lt;br /&gt;输入窗提示编码色=255 0 255&lt;br /&gt;#五笔、拼音的单字/系统词组均使用该颜色&lt;br /&gt;输入窗其它文本色=245 154 49&lt;br /&gt;输入窗线条色=237 104 48&lt;br /&gt;输入窗箭头色=193 227 151&lt;br /&gt;虚拟键盘窗背景色=219 211 188&lt;br /&gt;虚拟键盘窗字母色=245 154 49&lt;br /&gt;虚拟键盘窗符号色=238 103 48&lt;br /&gt;&lt;br /&gt;其四&lt;br /&gt;&lt;br /&gt;黑色主题&lt;br /&gt;[界面]&lt;br /&gt;候选词个数=10&lt;br /&gt;主窗口是否使用3D界面=1 #&lt;br /&gt;输入条使用3D界面=1&lt;br /&gt;主窗口隐藏模式=1       #0--&gt;一直显示在顶层;1--&gt;只有在中文输入状态下才显示;2--&gt; 不显示&lt;br /&gt;显示虚拟键盘=0&lt;br /&gt;是否自动隐藏输入条=1&lt;br /&gt;输入条是否居中=0&lt;br /&gt;首次显示输入条=0&lt;br /&gt;#输入条固定宽度(仅适用于码表输入法)，0表示不固定宽度&lt;br /&gt;输入条固定宽度=0&lt;br /&gt;输入条偏移量X=0&lt;br /&gt;输入条偏移量Y=12&lt;br /&gt;序号后加点=1&lt;br /&gt;显示打字速度=0&lt;br /&gt;显示版本=0&lt;br /&gt;光标色=160 446 46&lt;br /&gt;主窗口背景色=30 34 35&lt;br /&gt;主窗口线条色=29 123 213&lt;br /&gt;主窗口输入法名称色=153 153 153 170 170 170 255 255 0&lt;br /&gt;输入窗背景色=30 34 35&lt;br /&gt;输入窗提示色=1 154 232&lt;br /&gt;输入窗用户输入色=255 0 255&lt;br /&gt;输入窗序号色=255 255 255&lt;br /&gt;输入窗第一个候选字色= 85 255 85&lt;br /&gt;#该颜色值只用于拼音中的用户自造词&lt;br /&gt;输入窗用户词组色=255 255 0&lt;br /&gt;输入窗提示编码色=255 0 255&lt;br /&gt;#五笔、拼音的单字/系统词组均使用该颜色&lt;br /&gt;输入窗其它文本色=255 255 0&lt;br /&gt;输入窗线条色=1 183 255&lt;br /&gt;输入窗箭头色=193 227 151&lt;br /&gt;虚拟键盘窗背景色=30 34 35&lt;br /&gt;虚拟键盘窗字母色=255 255 255&lt;br /&gt;虚拟键盘窗符号色=255 255 255&lt;br /&gt;&lt;br /&gt;其五&lt;br /&gt;&lt;br /&gt;白玉色主题&lt;br /&gt;候选词个数=10&lt;br /&gt;主窗口使用3D界面=0&lt;br /&gt;输入条使用3D界面=0&lt;br /&gt;主窗口隐藏模式=1&lt;br /&gt;是否自动隐藏输入条=1&lt;br /&gt;显示虚拟键盘=0&lt;br /&gt;输入条居中=1&lt;br /&gt;首次显示输入条=1&lt;br /&gt;# 输入条固定宽度(仅适用于码表输入法)，0表示不固定宽度&lt;br /&gt;输入条固定宽度=0&lt;br /&gt;输入条偏移量X=0&lt;br /&gt;输入条偏移量Y=67108880&lt;br /&gt;序号后加点=1&lt;br /&gt;显示打字速度=0&lt;br /&gt;显示版本=0&lt;br /&gt;光标色=92 210 131&lt;br /&gt;主窗口背景色=255 255 255&lt;br /&gt;主窗口线条色=229 229 229&lt;br /&gt;主窗口输入法名称色=191 191 191  80 220 150 30 160 250&lt;br /&gt;输入窗背景色=255 255 255&lt;br /&gt;输入窗提示色=250 40 200&lt;br /&gt;输入窗用户输入色=250 40 200&lt;br /&gt;输入窗序号色=250 40 200&lt;br /&gt;输入窗第一个候选字色=30 160 250&lt;br /&gt;# 该颜色值只用于拼音中的用户自造词&lt;br /&gt;输入窗用户词组色=250 40 200&lt;br /&gt;输入窗提示编码色=100 100 255&lt;br /&gt;# 五笔、拼音的单字/系统词组均使用该颜色&lt;br /&gt;输入窗其它文本色=30 160 250&lt;br /&gt;输入窗线条色=229 229 229&lt;br /&gt;输入窗箭头色=30 240 170&lt;br /&gt;虚拟键盘窗背景色=255 255 255&lt;br /&gt;虚拟键盘窗字母色=250 40 200&lt;br /&gt;虚拟键盘窗符号色=30 160 250&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-7418232128578596072?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/7418232128578596072/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=7418232128578596072&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/7418232128578596072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/7418232128578596072'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/fcitx.html' title='fcitx主体颜色'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-8017022958814874127</id><published>2008-03-03T18:31:00.002+08:00</published><updated>2008-03-03T18:31:49.159+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='音乐'/><title type='text'>vitas-The star</title><content type='html'>&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/P9A1-fxd-hI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/P9A1-fxd-hI" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-8017022958814874127?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/8017022958814874127/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=8017022958814874127&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8017022958814874127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8017022958814874127'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/03/vitas-star.html' title='vitas-The star'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2869796019370258211</id><published>2008-02-27T17:14:00.000+08:00</published><updated>2008-02-27T17:17:23.091+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='闲情逸致'/><title type='text'>重读 《节妇吟》</title><content type='html'>节妇吟&lt;br /&gt;【唐】张籍&lt;br /&gt;&lt;br /&gt;君知妾有夫，赠妾双明珠；&lt;br /&gt;感君缠绵意，系在红罗襦。&lt;br /&gt;妾家高楼连苑起，良人执戟明光里。&lt;br /&gt;知君用心如日月，事夫誓拟同生死。&lt;br /&gt;还君明珠双泪垂，恨不相逢未嫁时！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;今天重读这首诗，心里又有别样的感觉，最近发生了很多事，自己也需要静下来&lt;br /&gt;淡泊以明志，宁静而致远。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2869796019370258211?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2869796019370258211/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2869796019370258211&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2869796019370258211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2869796019370258211'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/02/blog-post.html' title='重读 《节妇吟》'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-6218954694142181855</id><published>2008-02-17T13:31:00.001+08:00</published><updated>2008-02-17T13:31:59.569+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uboot'/><title type='text'>一种在U-BOOT中嵌入千兆网络功能的方法【转】</title><content type='html'>&lt;p&gt;摘  要：U-BOOT是一种开放源码的、用于多种嵌入式微处理器的引导加载程序，目前U-BOOT仅支持10M/100M网络功能。本文介绍了一种让U- BOOT支持千兆网络功能的方法及所需的硬件平台结构，重点介绍了此千兆网络驱动程序的结构及设计方法，并给出了驱动程序在U-BOOT中的移植过程。该 设计可以使U-BOOT功能更加强大，使用更加方便，同时也能使嵌入式系统网络接口设计更加灵活。&lt;br /&gt;关键词： U-BOOT；千兆网；AX88180；驱动&lt;/p&gt; &lt;span id="fullpost"&gt;&lt;p&gt;引言&lt;br /&gt;U-BOOT是德国DENX小组开发的用于多种嵌入式微处理器的引导加载程序，它是系统上电后运行的第一段程序代码，用于初始化目标板 硬件，为嵌入式操作系统提供目标板硬件配置信息，并装载、引导和运行嵌入式操作系统等。U-BOOT支持网络功能，在下载操作系统内核和大的文件系统时， 比其它不支持网络的引导加载程序速度更快、更方便。目前U-BOOT仅支持10M/100M的网络功能，随着科学技术发展，千兆网络功能必将大量应用在嵌 入式系统中。本文介绍了一种让U-BOOT支持千兆网络功能的方法，可以使U-BOOT功能更加强大，使用更加方便。&lt;/p&gt; &lt;p&gt;U-BOOT简介&lt;br /&gt;U-Boot的全称是Universal Boot Loader，它遵循GPL条款的开放源码项目，支持多种处理器，如ARM、PowerPC、MIPS等，也支持Linux、VxWorks、QNX、RTEMS、ARTOS、LynxOS等嵌入式操作系统。&lt;br /&gt;U- BOOT包含两种不同的工作模式：启动加载模式和下载模式。启动加载模式也称为自主模式，即U-BOOT从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行，这种模式是U-BOOT的正常工作模式。下载模式就是在开发或生产过程中，U-BOOT通过网络连接等通信手段从主机下载操作系统内核和文件系统 等到目标机的 RAM 中，然后再写到目标机上的FLASH 类固态存储设备中。U-BOOT允许用户在这两种工作模式间进行切换，系统启动时会延时等待一段时间，如果这时用户没有按键，U-Boot就默认进入启动 加载模式。&lt;br /&gt;U-BOOT代码采用一种高度模块化的编程方式，可以很方便地在不同的硬件平台上进行移植。U-BOOT下包含多个目录，如图1所示。 其中BOARD目录下存放了所有其支持的目标板子目录，比如BOARD/SMDK2440/就是本文将要用到的目标板；COMMON目录是与体系结构无关 的文件，实现各种命令的C文件；CPU目录存放了其支持的CPU类型, 比如arm920t、mips、mpc8260和nios等，每个特定的子目录中都包括cpu.c和interrupt.c、start.S； DRIVERS目录存放了各种外设接口的驱动程序，其中就包含本文用到的千兆网络的驱动程序；FS目录存放了一些文件系统，U-BOOT现在支持 cramfs、fat、fdos、jffs2和registerfs；net目录存放的是与网络有关的代码，BOOTP协议、TFTP协议、RARP协议 和NFS文件系统的实现；INCLUDE目录存放了一些相关头文件，还有对各种硬件平台支持的汇编文件、系统的配置文件和对文件系统支持的文件。&lt;/p&gt; &lt;p&gt;&lt;img onmousewheel="return zoom_img(event,this)" alt="" src="http://www.eaw.com.cn/news/UploadFiles/2007-2/2007212151255560.jpg" onload="&amp;106avascript:if(this.width /&gt;740)this.width=740" border="undefined"&gt;&lt;br /&gt;&lt;br /&gt;图1? U-BOOT目录&lt;/p&gt; &lt;p&gt;硬件平台&lt;br /&gt;本文使用的硬件平台是基于S3C2440A的开发板和基于非PCI千兆以太网控制芯片AX88180的嵌入式网卡，如图2所示。 S3C2440A是ARM920T 核的16/32 位RISC嵌入式微处理器，运行频率高达500MHz，开发板上有64M NAND闪存、64M SDRAM；网卡由MAC芯片AX88180、PHY芯片88E1111、RJ45等电路组成；S3C2440A目标板与网卡之间采用目标板32位扩展总 线相连接，在产品设计时也可以将这两部分设计在同一块板上。 &lt;/p&gt; &lt;p&gt;驱动程序&lt;br /&gt;在U-BOOT中嵌入千兆网络功能需要设计千兆网卡驱动程序，并在U-BOOT中进行移植，在相应的硬件平台上实现通过千兆网口下 载等功能。网卡驱动程序主要由初始化程序eth_init(bd_t*bd)、关闭网络设备程序eth_halt(void)、发送数据包程序 eth_send(volatilevoid* packet，intlength)、接收数据包程序inteth_rx(void)等组成。初始化程序的工作主要是配置和初始化硬件，在初始化程序里可 以完成对网络控制芯片AX88180和PHY芯片的配置，比如将接口设置为1000Mbps、全双工模式等。数据发送就是将上层协议打包好的数据放在发送 数据缓冲区，然后由网卡发送到网络上；数据接收就是在网卡接收到网络传来的数据包产生中断后，从缓冲区将数据取出交给上层协议程序进行解包处理。中断服务 程序处理网卡发送数据包后、接收到数据包后产生的中断以及PHY产生的中断等。&lt;/p&gt; &lt;p&gt;&lt;img onmousewheel="return zoom_img(event,this)" alt="" src="http://www.eaw.com.cn/news/UploadFiles/2007-2/2007212151332187.jpg" onload="&amp;106avascript:if(this.width /&gt;740)this.width=740" border="undefined"&gt;&lt;br /&gt;&lt;br /&gt;图2 硬件平台结构框图 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;网卡初始化程序如下：&lt;br /&gt;int eth_init (bd_t * bd)&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;memset (&amp;amp;axlocal, 0, sizeof(AX88180_PRIVATE));&lt;br /&gt;RESET_MAC;&lt;br /&gt;DISABLE_INTERRUPT;&lt;br /&gt;WRITE_MACREG(CMD, WAKEMOD);&lt;br /&gt;tmp16 = bd-&amp;gt;bi_enetaddr[1];&lt;br /&gt;macid0_val = (tmp16 &amp;lt;&amp;lt; 8) | bd-&amp;gt;bi_enetaddr[0];&lt;br /&gt;tmp16 = bd-&amp;gt;bi_enetaddr[3];&lt;br /&gt;macid1_val = (tmp16 &amp;lt;&amp;lt; 8) | bd-&amp;gt;bi_enetaddr[2];&lt;br /&gt;tmp16 = bd-&amp;gt;bi_enetaddr[5];&lt;br /&gt;macid2_val = (tmp16 &amp;lt;&amp;lt; 8) | bd-&amp;gt;bi_enetaddr[4];&lt;br /&gt;WRITE_MACREG(MACID0, macid0_val);&lt;br /&gt;WRITE_MACREG(MACID1, macid1_val);&lt;br /&gt;WRITE_MACREG(MACID2, macid2_val);&lt;br /&gt;ax88180_PHY_initial();&lt;br /&gt;ax88180_meida_config();&lt;br /&gt;WRITE_MACREG(RXFILTER, DEFAULT_RXFILTER);&lt;br /&gt;INIT_TXRX_VARIABLES;&lt;br /&gt;READ_MACREG(ISR, tmp_regval);&lt;br /&gt;PRINTK(INIT_MSG, "ax88180: The interrupt status = 0x%08lx\n", tmp_regval);&lt;br /&gt;if (tmp_regval)?WRITE_MACREG(ISR, tmp_regval);&lt;br /&gt;WRITE_MACREG(CMD, RXEN | TXEN | WAKEMOD);&lt;br /&gt;return 0;}&lt;/p&gt; &lt;p&gt;驱动移植&lt;br /&gt;驱动移植是在基于S3C2440A硬件平台的U-BOOT中添加驱动程序代码和相关配置，具体如下：&lt;br /&gt;1. 在drivers/目录中添加网口设备驱动程序ax88180.c和ax88180.h。&lt;br /&gt;2. 在lib_arm/board.c中相应位置(参考CS8900)添加如下代码：&lt;br /&gt;#ifdef CONFIG_DRIVER_AX88180&lt;br /&gt;extern void ax88180_get_ enetaddr (uchar * addr);&lt;br /&gt;#endif &lt;br /&gt;#ifdef CONFIG_DRIVER_AX88180&lt;br /&gt;ax88180_get_enetaddr (gd-&amp;gt;bd-&amp;gt;bi_enetaddr);&lt;br /&gt;#endif&lt;br /&gt;3. 在include/configs/smdk2440.h中相应位置(参考CS8900)添加如下代码：&lt;br /&gt;#define CONFIG_DRIVER_AX88180?1&lt;br /&gt;#define AX88180_BASE???0x08000000&lt;br /&gt;4. 最后在drivers/Makefile中加入ax88180.o，重新编译生成U-BOOT即可。&lt;/p&gt; &lt;p&gt;结语&lt;br /&gt;U-BOOT广泛应用在嵌入式系统中，本文阐述的方法可以使U-BOOT功能更强大、使用更方便，文中介绍的硬件平台给嵌入式系统千兆 网络功能的设计提供了一定的指导。本设计虽然基于S3C2440A平台，对其它类似的系统也有很好的借鉴作用，本文介绍的方法已经在产品中得到应用，效果 良好。 ■&lt;/p&gt; &lt;p&gt;参考文献&lt;br /&gt;1． 钱峰. U-Boot在S3C44B0上的移植[J].微计算机信息.2006年第9-2期:P119-121&lt;br /&gt;2． 聂强，孙贺. linux_mig_ release.pdf. &lt;a href="http://www.hhcn.com/chinese/files"&gt;http://www.hhcn.com/chinese/files&lt;/a&gt;&lt;br /&gt;3． Allan Chou. ax88180.c.ASIX Electronics Corporation.2006&lt;/p&gt;   &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-6218954694142181855?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/6218954694142181855/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=6218954694142181855&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6218954694142181855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/6218954694142181855'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/02/u-boot.html' title='一种在U-BOOT中嵌入千兆网络功能的方法【转】'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3869444356592253296</id><published>2008-02-17T13:24:00.001+08:00</published><updated>2008-02-17T13:24:00.274+08:00</updated><title type='text'>U-Boot中SMDK2410的NAND Flash驱动。</title><content type='html'>&lt;span id="fullpost"&gt;    &lt;div twffan="done"&gt;本来不应该先写这个的，呵呵，但是我这个人记忆力很差，说不定过几天我就忘了移植过程中的代码是哪里弄来的了。&lt;img src="http://spaces.msn.com/rte/emoticons/smile_tongue.gif" twffan="done" alt="" /&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;首先庆祝一下，我学生生涯所有的考试都结束了，哈哈哈。不过希望不要补考……听说我们的研究生教学院长赵学增老师的课很变态，120个抓50个……上帝保佑我啊。&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;开始吧。标准的SMDK2410板不支持NAND Flash，启动的时候是这样的：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot 1.1.2 (May 28 2006 - 08:20:50)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot code: 33F80000 -&amp;gt; 33F99A14&amp;nbsp; BSS: -&amp;gt; 33F9DB0C&lt;br /&gt;RAM Configuration:&lt;br /&gt;Bank #0: 30000000 64 MB&lt;br /&gt;Flash:&amp;nbsp; 1 MB&lt;br /&gt;*** Warning - bad CRC, using default environment&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;In:&amp;nbsp;&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Out:&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Err:&amp;nbsp;&amp;nbsp; serial&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New"&gt;有&lt;font face="Tahoma,Helvetica,Sans-Serif"&gt;NAND&lt;/font&gt;支持的多一行（&lt;font face="Tahoma,Helvetica,Sans-Serif"&gt;NAND 64MB&lt;/font&gt;）：&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot 1.1.2 (May 28 2006 - 08:36:42)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot code: 33F80000 -&amp;gt; 33F99A14&amp;nbsp; BSS: -&amp;gt; 33F9DB0C&lt;br /&gt;RAM Configuration:&lt;br /&gt;Bank #0: 30000000 64 MB&lt;br /&gt;Flash:&amp;nbsp; 1 MB&lt;br /&gt;NAND:&amp;nbsp; 64 MB&lt;br /&gt;*** Warning - bad CRC, using default environment&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;In:&amp;nbsp;&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Out:&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Err:&amp;nbsp;&amp;nbsp; serial&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;怎么实现这种支持呢？U-Boot真是功能强大的Bootloader，在/inclued/configs/smdk2410.h中有这么一段&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;/***********************************************************&lt;br /&gt;&amp;nbsp;* Command definition&lt;br /&gt;&amp;nbsp;***********************************************************/&lt;br /&gt;#define CONFIG_COMMANDS \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;(CONFIG_CMD_DFL&amp;nbsp; | \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFG_CMD_CACHE&amp;nbsp; | \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#ff0000"&gt;CFG_CMD_NAND&amp;nbsp; | \&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*CFG_CMD_EEPROM |*/ \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*CFG_CMD_I2C&amp;nbsp; |*/ \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*CFG_CMD_USB&amp;nbsp; |*/ \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFG_CMD_REGINFO&amp;nbsp; | \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFG_CMD_DATE&amp;nbsp; | \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFG_CMD_ELF)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;需 要说明一下CONFIG_CMD_DFL，定义的是默认指令，包括bdinfo、bootd、coninfo、saveenv、flinfo、 erase、protect、iminfo、imls、itest、loadb、loads、md、mm、nm、mw、cp、cmp、crc、base、 loop、loopw、mtest、sleep、bootp、tftpboot、rarpboot、run等常用指令，这些指令我以后会结合使用做适当的 说明。关于指令的宏定义说明可以看看U-Boot的README里面的Monitor Functions。这就是对编译成功后的U-Boot支持的命令的定义，SMDK2410默认的smdk2401.h中，红色字部分是注释掉的。但是要 支持NAND Flash远没有去掉一个注释这么简单。&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;我们可以试试单纯把这个注释去掉是什么结果，老步骤：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;make distclean&lt;/div&gt;&lt;div twffan="done"&gt;make smdk2410_config&lt;/div&gt;&lt;div twffan="done"&gt;make&lt;/div&gt;&lt;div twffan="done"&gt;……一堆编译信息飘过……&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;出 错了，位置指向cmd_nand.c这个文件，好几处错误。原因是SMDK2410的配置里根本就没有对NAND Flash支持的宏定义和函数。怎么办？自己写么？好在U-Boot里有另外一个可以让我们借鉴的配置VCMA9。在Source Navigator里搜索一下vcma，看看vcma9.h和vcma9.c，可以从中摘取出一段宏定义和一些函数声明。网上有人的做法是将其放在 smdk2410.h和smdk2410.c中，但是白痴的cross-2.95.3和cross-3.2都不能认到cmd_nand.c中已经在 smdk2410.h和smdk2410.c中定义的宏所指的函数，就算是加上extern的也不行。也许你没有看懂刚才这句话，解释一下，例如 cmd_nand.c中有这样一段&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;if(ale_wait)&lt;br /&gt;&amp;nbsp;&amp;nbsp;NAND_WAIT_READY(nand);&amp;nbsp;/* do the worst case 25us wait */&lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;udelay(10);&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;其中NAND_WAIT_READY(nand)，在smdk2410.h中定义为&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#define NAND_WAIT_READY(nand)&amp;nbsp;NF_WaitRB()&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;而NF_WaitRB()在smdk2410.c中定义为&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_WaitRB(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;while (!(nand-&amp;gt;NFSTAT &amp;amp; (1&amp;lt;&amp;lt;0)));&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;这个编译器死活说NF_WaitRB()未定义，就算是我在cmd_nand.c中加上这样一句也不起作用&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;extern void NF_WaitRB(void)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;也许是我C学的不好，搞不清楚多个文件共同编译的时候static inline的引用关系，不管它，我把这些宏中定义的函数的申明放在了cmd_nand.c中，为了不太无耻，我在前面加上了针对SMDK2410的选择性编译。&lt;font color="#ff0000"&gt;（请注意，下面这些代码拷贝到cmd_nand.c中的适当位置，cmd_nand.c中有许多选择性编译的宏，注意放的位置，不要被忽略掉了）&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;/*-----------------------------------------------------------------------&lt;br /&gt;&amp;nbsp;* NAND flash basic functions&lt;br /&gt;&amp;nbsp;* Added by Lu Xianzi 2006.5.27&lt;br /&gt;&amp;nbsp;* Copied from board/mpl/vcma9/vcma9.h &amp;amp; vcma9.c&lt;br /&gt;&amp;nbsp;*/&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#if (CONFIG_SMDK2410)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#include &amp;lt;s3c2410.h&amp;gt;&lt;br /&gt;typedef enum {&lt;br /&gt;&amp;nbsp;NFCE_LOW,&lt;br /&gt;&amp;nbsp;NFCE_HIGH&lt;br /&gt;} NFCE_STATE;&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_Conf(u16 conf)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;nand-&amp;gt;NFCONF = conf;&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_Cmd(u8 cmd)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;nand-&amp;gt;NFCMD = cmd;&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_CmdW(u8 cmd)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;NF_Cmd(cmd);&lt;br /&gt;&amp;nbsp;udelay(1);&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_Addr(u8 addr)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;nand-&amp;gt;NFADDR = addr;&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_SetCE(NFCE_STATE s)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;switch (s) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;case NFCE_LOW:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;nand-&amp;gt;NFCONF &amp;amp;= ~(1&amp;lt;&amp;lt;11);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;&amp;nbsp;case NFCE_HIGH:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;nand-&amp;gt;NFCONF |= (1&amp;lt;&amp;lt;11);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_WaitRB(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;while (!(nand-&amp;gt;NFSTAT &amp;amp; (1&amp;lt;&amp;lt;0)));&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_Write(u8 data)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;nand-&amp;gt;NFDATA = data;&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline u8 NF_Read(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;return(nand-&amp;gt;NFDATA);&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_Init_ECC(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;nand-&amp;gt;NFCONF |= (1&amp;lt;&amp;lt;12);&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline u32 NF_Read_ECC(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;return(nand-&amp;gt;NFECC);&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;extern ulong nand_probe(ulong physadr);&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_Reset(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NF_SetCE(NFCE_LOW);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NF_Cmd(0xFF);&amp;nbsp;&amp;nbsp;/* reset command */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 10; i++);&amp;nbsp;/* tWB = 100ns. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NF_WaitRB();&amp;nbsp;&amp;nbsp;/* wait 200~500us; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NF_SetCE(NFCE_HIGH);&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;static inline void NF_Init(void)&lt;br /&gt;{&lt;br /&gt;#if 0 /* a little bit too optimistic */&lt;br /&gt;#define TACLS&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;#define TWRPH0&amp;nbsp; 3&lt;br /&gt;#define TWRPH1&amp;nbsp; 0&lt;br /&gt;#else&lt;br /&gt;#define TACLS&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;#define TWRPH0&amp;nbsp; 4&lt;br /&gt;#define TWRPH1&amp;nbsp; 2&lt;br /&gt;#endif&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NF_Conf((1&amp;lt;&amp;lt;15)|(0&amp;lt;&amp;lt;14)|(0&amp;lt;&amp;lt;13)|(1&amp;lt;&amp;lt;12)|(1&amp;lt;&amp;lt;11)|(TACLS&amp;lt;&amp;lt;8)|(TWRPH0&amp;lt;&amp;lt;4)|(TWRPH1&amp;lt;&amp;lt;0));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*nand-&amp;gt;NFCONF = (1&amp;lt;&amp;lt;15)|(1&amp;lt;&amp;lt;14)|(1&amp;lt;&amp;lt;13)|(1&amp;lt;&amp;lt;12)|(1&amp;lt;&amp;lt;11)|(TACLS&amp;lt;&amp;lt;8)|(TWRPH0&amp;lt;&amp;lt;4)|(TWRPH1&amp;lt;&amp;lt;0); */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 1&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xxx,&amp;nbsp; r xxx,&amp;nbsp;&amp;nbsp; r xxx */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* En 512B 4step ECCR nFCE=H tACLS&amp;nbsp;&amp;nbsp; tWRPH0&amp;nbsp;&amp;nbsp; tWRPH1 */&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NF_Reset();&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;void nand_init(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;S3C2410_NAND * const nand = S3C2410_GetBase_NAND();&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&amp;nbsp;NF_Init();&lt;br /&gt;#ifdef DEBUG&lt;br /&gt;&amp;nbsp;printf("NAND flash probing at 0x%.8lX\n", (ulong)nand);&lt;br /&gt;#endif&lt;br /&gt;&amp;nbsp;printf ("%4lu MB\n", nand_probe((ulong)nand) &amp;gt;&amp;gt; 20);&lt;br /&gt;}&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#endif /* (CONFIG_SMDK2410) */&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;然后把下面这些宏定义放在smdk2410.h中&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;/*-----------------------------------------------------------------------&lt;br /&gt;&amp;nbsp;* NAND flash settings&lt;br /&gt;&amp;nbsp;* Added by Lu Xianzi 2006.5.27&lt;br /&gt;&amp;nbsp;* Copied from include/conifgs/vcma9.h&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;#if (CONFIG_COMMANDS &amp;amp; CFG_CMD_NAND)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#define CFG_MAX_NAND_DEVICE&amp;nbsp;1&amp;nbsp;/* Max number of NAND devices&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;#define SECTORSIZE 512&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#define ADDR_COLUMN 1&lt;br /&gt;#define ADDR_PAGE 2&lt;br /&gt;#define ADDR_COLUMN_PAGE 3&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#define NAND_ChipID_UNKNOWN &amp;nbsp;0x00&lt;br /&gt;#define NAND_MAX_FLOORS 1&lt;br /&gt;#define NAND_MAX_CHIPS 1&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#define NAND_WAIT_READY(nand)&amp;nbsp;NF_WaitRB()&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#define NAND_DISABLE_CE(nand)&amp;nbsp;NF_SetCE(NFCE_HIGH)&lt;br /&gt;#define NAND_ENABLE_CE(nand)&amp;nbsp;NF_SetCE(NFCE_LOW)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;br /&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#define WRITE_NAND_COMMAND(d, adr)&amp;nbsp;NF_Cmd(d)&lt;br /&gt;#define WRITE_NAND_COMMANDW(d, adr)&amp;nbsp;NF_CmdW(d)&lt;br /&gt;#define WRITE_NAND_ADDRESS(d, adr)&amp;nbsp;NF_Addr(d)&lt;br /&gt;#define WRITE_NAND(d, adr)&amp;nbsp;&amp;nbsp;NF_Write(d)&lt;br /&gt;#define READ_NAND(adr)&amp;nbsp;&amp;nbsp;&amp;nbsp;NF_Read()&lt;br /&gt;/* the following functions are NOP's because S3C24X0 handles this in hardware */&lt;br /&gt;#define NAND_CTL_CLRALE(nandptr)&lt;br /&gt;#define NAND_CTL_SETALE(nandptr)&lt;br /&gt;#define NAND_CTL_CLRCLE(nandptr)&lt;br /&gt;#define NAND_CTL_SETCLE(nandptr)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font color="#ff0000" face="Courier New, Courier, Monospace"&gt;/* #define CONFIG_MTD_NAND_VERIFY_WRITE&amp;nbsp;1 */&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;&lt;font color="#ff0000"&gt;/* This definition above is commented by Lu Xianzi. 2006.05.28&lt;br /&gt;&amp;nbsp;&amp;nbsp; Because there's no definition of a macro called __mem_pci,&lt;br /&gt;&amp;nbsp;&amp;nbsp; there will be a link error.&lt;br /&gt;&amp;nbsp;*/&lt;/font&gt;&lt;br /&gt;#define CONFIG_MTD_NAND_ECC_JFFS2&amp;nbsp;1&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;#endif&amp;nbsp;/* CONFIG_COMMANDS &amp;amp; CFG_CMD_NAND */&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;注 意这段宏定义中与vcma9.h中不同的是我标记红色的部分，网上的一些移植说明没有解决这个问题，导致最后的链接无法通过。事实上，我这样做取消了 cmd_nand.c中对NAND Flash的写校验和ECC校验。__mem_pci是一个什么东西我也不知道，在U-Boot目录下搜索包含“__mem_pci”字串的文件也没有找 到，除了使用它的/include/asm/io.h。顺便说一下，这个麻烦是从cmd_nand.c中的nand_write_page函数中 readb(nand-&amp;gt;IO_ADDR)这个宏开始的，你可以用Source Navigator查找一下引用，最后就指向没有__mem_pci宏的这个问题。希望有高手看到这篇文章，并给我指出解决的办法，呵呵。&lt;img src="http://spaces.msn.com/rte/emoticons/smile_regular.gif" twffan="done" alt="" /&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;做完这些修改，就再来一次老步骤&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;make distclean&lt;/div&gt;&lt;div twffan="done"&gt;make smdk2410_config&lt;/div&gt;&lt;div twffan="done"&gt;make&lt;/div&gt;&lt;div twffan="done"&gt;………………&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;生 成了U-Boot.bin。NAND Flash的驱动到此完成，好不好使呢？试试看。上次我们已经在板子里烧写进了U-Boot，是一个可以支持串口传输的U-Boot，要是现在还用 sjf2410往里烧U-Boot.bin就太冤大头了。可以利用串口进行传输，操作步骤如下：&lt;/div&gt;&lt;div twffan="done"&gt;使用超级终端，建立一个连接：文件〉新建连接；名称随便，图表随便，确定；连接时使用选择你的开发板所接的COM口；端口设置中，每秒位数选115200，数据位选8，奇偶校验选无，停止位选1，数据流控制选“无”。打开开发板的电源，出现以下提示：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot 1.1.2 (May 28 2006 - 08:20:50)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot code: 33F80000 -&amp;gt; 33F99A14&amp;nbsp; BSS: -&amp;gt; 33F9DB0C&lt;br /&gt;RAM Configuration:&lt;br /&gt;Bank #0: 30000000 64 MB&lt;br /&gt;Flash:&amp;nbsp; 1 MB&lt;br /&gt;*** Warning - bad CRC, using default environment&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;In:&amp;nbsp;&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Out:&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Err:&amp;nbsp;&amp;nbsp; serial&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # loadb &lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;## Ready for binary (kermit) download to 0x33000000 at 115200 bps...&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;loadb 这个指令以kermit协议从串口下载二进制文件到开发板的内存中，默认下载到0x33000000。当然你可以改在别的地址，例如：loadb 30000000就是下载到0x30000000。这时候选择超级终端菜单上：传送〉发送文件，文件名选择编译好的U-Boot.bin，协议选择 Kermit，点发送。可以看到发送进度。&lt;/div&gt;&lt;div twffan="done"&gt;发送结束出现提示：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;## Total Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00019a14 = 104980 Bytes&lt;br /&gt;## Start Addr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x33000000&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;这时可以测试新的修改好不好使：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # go 33000000&lt;br /&gt;## Starting application at 0x33000000 ...&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;br /&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot 1.1.2 (May 28 2006 - 08:36:42)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;U-Boot code: 33F80000 -&amp;gt; 33F99A14&amp;nbsp; BSS: -&amp;gt; 33F9DB0C&lt;br /&gt;RAM Configuration:&lt;br /&gt;Bank #0: 30000000 64 MB&lt;br /&gt;Flash:&amp;nbsp; 1 MB&lt;br /&gt;NAND:&amp;nbsp; 64 MB&lt;br /&gt;*** Warning - bad CRC, using default environment&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;In:&amp;nbsp;&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Out:&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;Err:&amp;nbsp;&amp;nbsp; serial&lt;br /&gt;LXZROB #&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;go 指令可以直接执行内存地址上的程序，例如刚才下载到0x33000000的新的支持NAND的U-Boot，可以看到出现了“NAND:&amp;nbsp;&amp;nbsp; 64MB”这一项。输入help，你会看到比刚才的U-Boot多了一组指令nand，输入help nand，可以看到更加细节的指令：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # help nand&lt;br /&gt;nand info&amp;nbsp; - show available NAND devices&lt;br /&gt;nand device [dev] - show or set current device&lt;br /&gt;nand read[.jffs2[s]]&amp;nbsp; addr off size&lt;br /&gt;nand write[.jffs2] addr off size - read/write `size' bytes starting&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at offset `off' to/from memory address `addr'&lt;br /&gt;nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; offset `off' (entire device if not specified)&lt;br /&gt;nand bad - show bad blocks&lt;br /&gt;nand read.oob addr off size - read out-of-band data&lt;br /&gt;nand write.oob addr off size - read out-of-band data&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;输入nand info，可以看到：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # nand info&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;Device 0: Samsung unknown 64Mb at 0x4e000000 (64 MB, 16 kB sector)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;说明我们的驱动成功了。也可以试试其他指令。&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;但是现在在NOR Flash中的U-boot还是不支持NAND的，需要重新烧写。U-Boot支持自己烧写自己。&lt;/div&gt;&lt;div twffan="done"&gt;先看看NOR Flash的情况：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # flinfo&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)&lt;br /&gt;&amp;nbsp; Size: 1 MB in 19 Sectors&lt;br /&gt;&amp;nbsp; Sector Start Addresses:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00000000 (RO) 00004000 (RO) 00006000 (RO) 00008000 (RO) 00010000 (RO)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00020000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00030000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00040000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00050000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00060000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00070000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00080000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00090000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000A0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000B0000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000C0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000D0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000E0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000F0000 (RO)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;一共有19个sector，其中前5个总计128kb的sector有U-Boot程序，是写保护的。要烧写首先要去掉写保护：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # protect off 0 1ffff&lt;br /&gt;Un-Protected 5 sectors&lt;br /&gt;LXZROB # flinfo&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)&lt;br /&gt;&amp;nbsp; Size: 1 MB in 19 Sectors&lt;br /&gt;&amp;nbsp; Sector Start Addresses:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00004000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00006000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00008000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00010000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00020000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00030000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00040000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00050000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00060000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00070000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00080000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00090000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000A0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000B0000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000C0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000D0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000E0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000F0000 (RO)&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;可以看到写保护已经去掉，擦除：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # erase 0 1ffff&lt;br /&gt;Erasing sector&amp;nbsp; 0 ... ok.&lt;br /&gt;Erasing sector&amp;nbsp; 1 ... ok.&lt;br /&gt;Erasing sector&amp;nbsp; 2 ... ok.&lt;br /&gt;Erasing sector&amp;nbsp; 3 ... ok.&lt;br /&gt;Erasing sector&amp;nbsp; 4 ... ok.&lt;br /&gt;Erased 5 sectors&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;然后烧写：&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;&lt;font face="Courier New, Courier, Monospace"&gt;LXZROB # cp.b 33000000 0 19a14&lt;br /&gt;Copy to Flash... done&lt;/font&gt;&lt;/div&gt;&lt;div twffan="done"&gt;&amp;nbsp;&lt;/div&gt;&lt;div twffan="done"&gt;cp.b 是用来拷贝内存信息的，其格式为cp [.b, .w, .l] source target count，输入这样的指令是因为刚才把程序下载到了0x33000000，NOR Flash的起始地址是0x0，下载的程序长度为0x19a14。重启开发板，U-Boot的烧写就完成了。&lt;/div&gt;   &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3869444356592253296?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3869444356592253296/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3869444356592253296&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3869444356592253296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3869444356592253296'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/02/u-bootsmdk2410nand-flash.html' title='U-Boot中SMDK2410的NAND Flash驱动。'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-1143474176923453687</id><published>2008-01-29T15:20:00.001+08:00</published><updated>2008-01-29T15:20:59.597+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>利用google突破各种封锁来下载你要的东西</title><content type='html'>&lt;span style="font-family: Verdana;"&gt;在搜索框上输入： “index of/ ” 　inurl:lib&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再按搜索你将进入许多图书馆，并且一定能下载自己喜欢的书籍。&lt;/span&gt;&lt;span id="fullpost"&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;在搜索框上输入： “index of /” 　cnki&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再按搜索你就可以找到许多图书馆的CNKI、VIP、超星等入口！&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;在搜索框上输入：　“index of /” 　ppt&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再按搜索你就可以突破网站入口下载powerpint作品！&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;在搜索框上输入： “index of /” 　mp3&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再按搜索你就可以突破网站入口下载mp3、rm等影视作品！&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;在搜索框上输入：　“index of /” 　swf&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再按搜索你就可以突破网站入口下载flash作品！&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;在搜索框上输入： “index of /” 　要下载的软件名&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再按搜索你就可以突破网站入口下载软件！&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;注意引号应是英文的！&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再透露一下，如果你输入：&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;“index of /” 　AVI&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;另补上第二篇&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;用GOOgle看世界!!!只要你在GOOGLE里输入特殊的关键字,就可以搜到数千个摄象头的IP地址!通过他你就可以看到其所摄的实时影象!!&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;在google里输入&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;inurl:"viewerframe?mode="&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;随便打开一个,然后按提示装一个插件,就可以看到了!!!&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再补上第三篇&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;三则黑客的Google搜索技巧简介&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;大 家都知道，Google毫无疑问是当今世界上最强大的搜索引擎。然而，在黑客手中，它也是一个秘密武器，它能搜索到一些你意想不到的信息。赛迪编者把他们 进行了简单的总结不是希望您利用他去攻击别人的网站，而是利用这些技巧去在浩如烟海的网络信息中，来个大海捞针，寻找到对您有用的信息。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;如 果您是一名普通网民，您可以使用黑客的技巧扩大自己的视野，提高自己的检索效率；如果您是一名网管，请您赶快看看您的网站是否做好了对下面黑客探测手段的 防范措施，如果没有就赶快来个亡羊补牢，毕竟隐患胜于明火，防范胜于救灾；如果您是一名黑客，相信您早以在别的黑客站点上见过类似的方法，这篇文章对您没 什么用处，这里的技巧对您是小儿科，菜鸟级！您可以节省宝贵的时间做更有意义的事情，这篇文章您不用看了，到别处去吧！&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;基于上面的考虑我编发了这篇文章。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　搜索URL&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　比如我们提交这种形式：passwd.txt site:virtualave.net&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　 　看到了什么？是不是觉得太不可思议了！有很多基于CGI/PHP/ASP 类型的留言板存在这种问题。有时我们得到密码甚至还是明码的！管理员或许太不负责了，或许安全防范的意识太差了，如果你是网络管理员，赶快检查一下不要让 恶意攻击者捡了便宜。不要太相信DES加密，即使我们的密码经过DES 加密的密码，黑客们还是可以通过许多破解软件来搞定。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　这次我们能得到包含密码的文件。“site:virtualave.net”意思是只搜索 virutalave.net 的URL。virutalave.net是一个网络服务器提供商。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　同样，我们可以搜索一些顶级域名，比如：.net .org .jp .in .gr&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　config.txt site:.jp&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　admin.txt site:.tw&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　搜索首页的目录&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　首页是非常有用的，它会提供给你许多有用的信息。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　我们提交如下的形式：&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　"Index of /admin"&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　"Index of /secret"&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　"Index of /cgi-bin" site:.edu&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　你可以自己定义搜索的首页字符。这样就可以获得许多信息。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　搜索特定的文件类型&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　比如你想指定一种文件的类型，可以提交如下形式：&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　filetype:.doc site:.mil classified&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;　　这个就是搜索军方的资料，你可以自定义搜索。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;再提供一个第四篇&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;Google 的特殊功能&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;1 、查询电话号码&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;Google 的搜索栏中最新加入了电话号码和美国街区地址的查询信息。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;个人如想查找这些列表，只要填写姓名，城市和省份。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;如果该信息为众人所知，你就会在搜索结果页面的最上方看到搜索的电话和街区地址&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;你还可以通过以下任何一种方法找到该列表：&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;名字（或首位大写字母），姓，电话地区号&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;名字（或首位大写字母），姓，邮递区号&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;名字（或首位大写字母），姓，城市（可写州）&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;名字（或首位大写字母），姓，州&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;电话号码，包括区号&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;名字，城市，州&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;名字，邮递区号&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;2 、查找 PDF 文件&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;现在 GOOGLE 的搜索结果中包括了 PDF 文件。尽管 PDF 文件不如 HTML 文件那么多，但他们经常具备一些其他文件不具备的高质量信息&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;为了显示一个搜索结果是 PDF 文件而不是网页， PDF 文件的标题开头显示蓝色文本。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;这就是让你知道 ACRTOBAT READER 程序会启动来阅读文件&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;如果你的计算机没装有该程序，计算机会指导你去能免费下载该程序的网页。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;使用 PDF 文件时，相关的网页快照会由“ TEXT VERSION ”代替，它是 PDF 文档的复制文件，该文件除去了所有格式化命令。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;如果你在没有 PDF 链接的情况下想看一系列搜索结果，只要在搜索栏中打上 -inurldf 加上你的搜索条件。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;3 、股票报价&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;用 Google 查找股票和共有基金信息，只要输入一个或多个 NYSE ， NASDAQ ， AMEX 或&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;共有基金的股票行情自动收录机的代码，也可以输入在股市开户的公司名字。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;如果 Google 识别出你查询的是股票或者共有基金，它回复的链接会直接连到高质量的金融信息提供者提供的股票和共有基金信息。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;在你搜索结果的开头显示的是你查询的股市行情自动收录器的代码。如果你要查找一家公司的名字（比如， INTEL ），请查看“股票报价”在 Google 搜索结果的金融栏里会有那个公司的主页的链接（比如， &lt;/span&gt;&lt;a style="font-family: Verdana;" href="http://www.intel.com/" target="_blank"&gt;&lt;font color="#003366"&gt;WWW.INTEL.COM&lt;/font&gt;&lt;/a&gt;&lt;span style="font-family: Verdana;"&gt; ）。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;Google 是以质量为基础来选择和决定金融信息提供者的，包括的因素有下载速度，用户界面及其功能。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;4 、找找谁和你链接&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;有些单词如果带有冒号就会有特殊的意思。比如 link ：操作员。查询 link:siteURL ，就会显示所有指向那个 URL 的网页。举例来说，链接 &lt;/span&gt;&lt;a style="font-family: Verdana;" href="http://www.google.com/" target="_blank"&gt;&lt;font color="#003366"&gt;www.Google.com&lt;/font&gt;&lt;/a&gt;&lt;span style="font-family: Verdana;"&gt; 会向你显示所有指向 GOOGLE 主页的网页。但这种方法不能与关键字查询联合使用。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;5 、查找站点&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;单词 site 后面如果接上冒号就能够将你的搜索限定到某个网站。具体做法是：在 c 搜索栏中使用 site:sampledomain.com 这个语法结构。比如，在斯坦福找申请信息，输入：&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;admission site:&lt;/span&gt;&lt;a style="font-family: Verdana;" href="http://www.stanford.edu/" target="_blank"&gt;&lt;font color="#003366"&gt;www.stanford.edu&lt;/font&gt;&lt;/a&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;6 、查找字典释意&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;查找字典释意的方法是在搜索栏中输入你要查询的内容。在我们根据要求找到所有的字典释意都会标有下划线，位于搜索结果的上面，点击链接你会找到字典提供者根据要求给出的相关定义。 7 、用 GOOLGE 查找地图&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;想用 Google 查找街区地图，在 Google 搜索栏中输入美国街区地址，包括邮递区号或城市 / 州（比如 165 大学大街 PALO ALTO CA ）。通常情况下，街区地址和城市的名字就足够了。&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;当 Google 识别你的要求是查找地图，它会反馈给你有高质量地图提供者提供的链接，使你直接找到相关地图。我们是以质量为基础选择这些地图提供者。值得注意的是 Google 和使用的地图信息提供者没有任何关联。&lt;/span&gt;   &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-1143474176923453687?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/1143474176923453687/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=1143474176923453687&amp;isPopup=true' title='6 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1143474176923453687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1143474176923453687'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/google.html' title='利用google突破各种封锁来下载你要的东西'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-1224270963989385152</id><published>2008-01-29T11:23:00.001+08:00</published><updated>2008-01-29T11:27:47.039+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='人生感悟'/><title type='text'>一个北大学子毕业后的14点感悟【转】</title><content type='html'>&lt;div id="art" width="100%" style="margin: 15px;"&gt; &lt;div twffan="done" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1，我刚工作的时候，在一家小公司，很小很小的。和我一起进去的另外2个都是普通一点 的学校的。我们刚去的时候，基本上有了电话都是我站起来跑过去接，其它人根本就不动身。以至于到了后来，电话一响，如果我不起身，大家就会一直等着，一直 等到我终于忍不了了起身去接。每天下班以后，我要检查办公室的垃圾袋，看看是不是需要把垃圾袋提走。而其他人，比如老员工和另外的实习生，他们根本不会去 提垃圾袋。 &lt;/div&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;div twffan="done" align="left"&gt;　　2，工作形势非常严峻。尤其是对于刚毕业的学生。如果是大公司，它们可能有能力支 付生手的培训时间和金钱，也有能力承受生手因不熟悉业务而给公司带来的损失，但是对于绝大部分小公司，它们根本就不愿意或者说无法承受这些。所以在一个大 专毕业的熟手和一个北大毕业的生手中间，他们宁可选择前者。 &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　3，中关村乃至海淀乃至北京，是一个廉价高等教育人才市场。这个大环境决定了我们 在用人单位眼里，都是金属，而不是金子。在这里，大学生就是廉价劳动力，商人看刚毕业的大学生的感觉，和建筑工地上包工头看民工的眼光没有任何区别。尤其 在以赚钱为唯一目的的大部分小公司。所以，刚毕业的同学最需要做的，就是赶紧让自己成为一个熟工。&lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　4，在学校的时候，好好享受自尊的感觉。有人说，他读大学的时候，以为他毕业后要 变成一条狗只需要3年的时间，但是工作后，他发现对自己真是太不自信了，其实要变成一条狗根本不用3年，半年就足够了。这话是我大4时看见的，过了2年 后，我发现这条伟大真理完全可以和牛顿定律媲美。我们在北大里，享受的是中国最大的自由和民主，这是个可怕的甜蜜。因为当你第一次受到指着鼻子的责骂时你 一下子无法接受。 &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　5，你在北大的时候，可能会觉得某人很俗。离开北大的时候，你可能会立志你绝对不 要俗。但是过了几年后，你会发现只有那些完成了由不俗到俗的成功转变的同学才能衣着不俗地参加聚会，而那些尚未完成转变的同学则可能潦倒落魄地出现在你面 前。所以，当你在学校的时候，千万不要讥笑（哪怕是在心里）身边那些俗又俗的同学，因为他们很可能就是将来同学聚会上的主角，也是你mm对你进行再教育的 榜样。 &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　6，在我们所受到的教育里，师长一直告诉我们要诚实、对人真诚。还有，中国的老话 叫“买卖不成仁义在”。这在企业竞争已经到人性化程度的西方世界可能还是真理，但是在现在的中国商场上那是……胡说。举个例子吧，我的诚实让公司失去了一 个客户，让我个人赢得了一个朋友；当这个朋友因我的诚实而给我带来一个大买卖时，我已经被公司老板因那次业务失败而炒了鱿鱼；所以最后我把这宗大买卖带到 了新服务的公司。 &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　这件事的结果最后是好的；但是这只是一个幸运的偶然。我想大部分人不会这么幸运。 工作以后，如果你每天统计一下，你会惊讶于自己现在从早晨走进办公室的那一刻起就开始说假话。这假话对同事说、对老板说、对客户说、一直说到家里，如果你 的女友or男友还没有工作，而是留在学校上研上博（就像我的情况），你会让他们大为震惊，他们很可能悲痛欲绝地对你说“你怎么能这么说？”然后，你可能更 加愤慨地对她or他说：“这只是交际的手段/业务的需要/如果你能给我提供一个饭碗我肯定不这么说……”最后的最后，你们很可能对彼此失望，比如，对方觉 得你变了；你觉得对方toonaive，toosimple，不理解你。 &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　7，当你还在学校的时候，平时有空多看几部白痴一点幼稚一点的片子，比如《流星花 园》那种。当年我对此嗤之以鼻，现在我一想起一个宿舍的女生围着一台破电脑看它的情景我就鼻子发酸！！！！现在我们已经没什么心思能沉在一部片子里耐心地 看下去了，偶尔看看电视，就是拿着遥控器拼命跳台。 &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　 8，当你还在学校的时候，多去上上课，少在宿舍打游戏睡觉。多看看那些底高望重的老教授，没问题也找几个出来问问吧，就当小时候听奶奶讲故事。因为，工作 以后就不要指望谁这么耐心给你讲东西了，老板要是让你做啥，不懂的话千万别问！自己想办法查！不要以为像在学校一样，好问是美德！你多问几句，脾气好的老 板会不理你，晾着你知道你自己讪讪地走开，脾气稍微不好地老板会对你阴阴地说：“你们北大的就这素质？这都不会？”你可能会心里喊冤：“拜托！我接触这项 业务才2天，我不问我怎么知道？”你这么想就错了。老板要的是结果，不是过程。他管你怎么做到的，总之你做到了才算完。我现在每想到大学时候不少次我都在 课堂上睡觉，我就觉得特别对不起讲堂上的老师。 &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　9，当你还在学校的时候，能谈恋爱就谈场恋爱，那时候谈恋爱才叫谈恋爱！你的她很 可能只是因为喜欢你而跟你谈恋爱；你们可能大夏天一起挤公交去动物园，在臭气烘烘的车厢里晃来晃去都是一种甜蜜一种幸福；工作以后你就别指望了！如果她跟 你谈了3年你还没有能买房能加薪的迹象，你就完蛋了！如果你跟她谈了3年你还没有能买房能跟她结婚的迹象，你也完蛋了，你可能会开始怀疑你是不是在耽误她 的青春她的时间。那时候你们一起再坐公交车，你都会觉得心酸：你堂堂一个北大男子汉，还要让lp挤公交车！ &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　10，当你还在学校的时候，多原谅舍友的小过失。不要因为她or他不小心把一杯水 泼在你的英语词典上就对她or他生气甚至要求赔偿；不要因为她or他的臭袜子忘记从你床上拿走你就对别人抱怨！不要因为她or他借了你2块钱买水果一直忘 记还就在意。不要不要因为她or他的无意中的缺点或失误而对他生气。当你工作以后，你会发现其实他们原来并没有那么讨厌，你会惊讶当初你干吗总是为这种事 情而生气，你会慢慢忘记他们的不好而只记得当初你们床头夜话时的温馨、买一包零食回来大家一起吃的开心。当你刚上大学的时候，你可能感叹过真心朋友只有在 高中才交得到；但当你工作以后你会发现，大学才最可能交到一辈子的能互相倾诉互相帮忙的朋友！ &lt;br /&gt;&lt;/div&gt; &lt;div twffan="done" align="left"&gt;　　11，如果你是女生，当你还在学校的时候，多体谅那些你不喜欢甚至讨厌但是狂追你 的男生！因为无论你多讨厌他，毕竟他们是真心喜欢你的，在他们眼里，你很可能就是天使！而在工作后，你在老板看来，很可能你只不过是狗屎！人的一生中没有 多少机会得到一些最真最纯的东西，很多年后那些看起来又矮又丑的男生可能结婚成家，你很可能已经被世事磨得没有知觉，而当你再和他们相遇，你很可能会突然 发现他们原来这么好、这么好、这么这么好，原来他们一点都不丑……你会很想很想哭！ &lt;br /&gt;&lt;/div&gt; &lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　12，当你在学校的时候，多读一点书，少上网做一些没有意义的东西，比如灌水比如 聊qq！因为你一旦离开校园，你就很可能顶多只有读读《瑞丽》《成都今夜将我遗忘》这样的垃圾杂志和快餐书，而不再有机会去想万圣和风入松！更不会有机会 有时间有气氛去看那里的书！我在大2的时候，曾经惊觉我读的名著基本上停留在高中时代，而当我工作后我发现我读过的书完全停留在大学毕业以前！ &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　13，当你还在学校的时候，你可能为那些该死的偷车贼而痛不欲生咬牙切齿，你可能 会在临上课前5分钟才起床，然后慢悠悠散步去上课；当工作以后，你最大的可能就是每天6点起床，在沙丁鱼罐头一样的公交车里焦急地等待你的公交车在堵车长 龙里挤牙膏一样一点一点地往前爬；当你因某天某段路发生交通事故而迟到了5分钟却因为老板还没来而庆幸时，很可能某个你的亲密同事已经在准备报告给老板 了。当你晚上再经历同样的堵车回到家想看点书时，你很可能发现时钟已经指到9了，而你这时候很可能还没吃饭！ &lt;/div&gt;&lt;br /&gt;&lt;div twffan="done" align="left"&gt;　　14，如果你是女生，当你还在学校的时候，不要为了&lt;a class="link1" href="http://club.chinaren.com/query/query_adv.jsp?type=3&amp;amp;key=%E5%87%8F%E8%82%A5" target="_blank"&gt;&lt;font color="#0000ff"&gt;减肥&lt;/font&gt;&lt;/a&gt;而 生饿自己把自己弄出胃病来！因为你会发现一旦你有了胃病而后工作你会郁闷todeath！你在学校的时候，很可能因为某天例假来了而轻易就选择不去上课， 而当你工作后，哪怕你痛得浑身发凉你也可能强迫自己不请假！因为你要把一年里有限的几个请假机会留给你最最需要的时候！在学校的时候，你可能觉得在苗条和 健康中你会选择前者，等到你工作了，你会发现，健康才是人生最大的财富！&lt;/div&gt; &lt;/div&gt;   &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-1224270963989385152?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/1224270963989385152/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=1224270963989385152&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1224270963989385152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/1224270963989385152'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/14.html' title='一个北大学子毕业后的14点感悟【转】'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-2001136750342437856</id><published>2008-01-28T11:39:00.001+08:00</published><updated>2008-01-29T11:28:58.496+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ARM'/><category scheme='http://www.blogger.com/atom/ns#' term='启动'/><category scheme='http://www.blogger.com/atom/ns#' term='linux开发'/><title type='text'>Linux启动时间的极限优化</title><content type='html'>&lt;div id="art" width="100%" style="margin: 15px;"&gt; &lt;div&gt; &lt;div class="main_post"&gt; &lt;p&gt;　　在上次完成&lt;a href="http://blog.oasisfeng.com/2006/09/15/embedded-linux-cutdown/"&gt;&lt;font color="#0000ff"&gt;嵌入式应用的Linux裁减&lt;/font&gt;&lt;/a&gt;后， Linux的启动时间仍需要 7s 左右，虽然勉强可以接受，但仍然没有达到我个人所追求的目标——2s 以内。况且，在实际的商用环境中，设备可靠性的要求可是“5个9”（99.999%，即OOS时间低于5分钟/年），这就意味着每减少一秒钟Linux启 动（设备复位）时间，对可靠性都是一个明显的提升。&lt;/p&gt;&lt;span id="fullpost"&gt; &lt;p&gt;　　言归正传，如何着手对Linux的启动时间进行优化呢？&lt;/p&gt; &lt;p&gt;&lt;span id="more-118"&gt;&lt;/span&gt;　　&lt;a href="http://www.celinuxforum.org/"&gt;&lt;font color="#0000ff"&gt;CELF(The Consumer Electronics Linux Forum)&lt;/font&gt;&lt;/a&gt;论坛为我们指引了一个方向。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;（1）首先是对Linux启动过程的跟踪和分析，生成详细的启动时间报告。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;　　较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳，便于汇总分析。PrintkTime最早为CELF所 提供的一个内核补丁，在后来的Kernel 2.6.11版本中正式纳入标准内核。所以大家可能在新版本的内核中直接启用该功能。如果你的Linux内核因为某些原因不能更新为2.6.11之后的版 本，那么可以参考CELF提供的方法修改或直接下载它们提供的补丁：&lt;a href="http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes"&gt;&lt;font color="#0000ff"&gt;http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;　　开启PrintkTime功能的方法很简单，只需在内核启动参数中增加“time”即可。当然，你也可以选择在编译内核时直接指定 “Kernel hacking”中的“Show timing information on printks”来强制每次启动均为内核信息增加时间戳。这一种方式还有另一个好处：你可以得到内核在解析启动参数前所有信息的时间。因此，我选择后一种 方式。&lt;/p&gt; &lt;p&gt;　　当完成上述配置后，重新启动Linux，然后通过以下命令将内核启动信息输出到文件：&lt;/p&gt; &lt;p&gt;&lt;code&gt;&lt;font face="新宋体"&gt;dmesg -s 131072 &amp;gt; ktime&lt;/font&gt;&lt;/code&gt;&lt;/p&gt; &lt;p&gt;　　然后利用一个脚本“show_delta”（位于Linux源码的scripts文件夹下）将上述输出的文件转换为时间增量显示格式：&lt;/p&gt; &lt;p&gt;&lt;code&gt;&lt;font face="新宋体"&gt;/usr/src/linux-x.xx.xx/scripts/show_delta ktime &amp;gt; dtime&lt;/font&gt;&lt;/code&gt;&lt;/p&gt; &lt;p&gt;　　这样，你就得到了一份关于Linux启动时间消耗的详细报告。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;（2）然后，我们就来通过这份报告，找出启动中相对耗时的过程。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;　　必须明确一点：报告中的时间增量和内核信息之间没有必然的对应关系，真正的时间消耗必须从内核源码入手分析。&lt;/p&gt; &lt;p&gt;　　这一点对于稍微熟悉编程的朋友来说都不难理解，因为时间增量只是两次调用printk之间的时间差值。通常来说，内核启动过程中在完成一些耗时 的任务，如创建hash索引、probe硬件设备等操作后会通过printk将结果打印出来，这种情况下，时间增量往往反映的是信息对应过程的耗时；但有 些时候，内核是在调用printk输出信息后才开始相应的过程，那么报告中内核信息相应过程的时间消耗对应的是其下一行的时间增量；还有一些时候，时间消 耗在了两次内核信息输出之间的某个不确定的时段，这样时间增量可能就完全无法通过内核信息反应出来了。&lt;/p&gt; &lt;p&gt;　　所以，为了准确判断真正的时间消耗，我们需要结合内核源码进行分析。必要的时候，例如上述第三种情形下，还得自己在源码中插入printk打印，以进一步确定实际的时间消耗过程。&lt;/p&gt; &lt;p&gt;　　以下是我上次裁减后Linux内核的启动分析：&lt;/p&gt; &lt;p&gt;　　内核启动总时间： 6.188s&lt;/p&gt; &lt;p&gt;　　关键的耗时部分：&lt;br /&gt;　　1) 0.652s - Timer,IRQ,Cache,Mem Pages等核心部分的初始化&lt;br /&gt;　　2) 0.611s - 内核与RTC时钟同步&lt;br /&gt;　　3) 0.328s - 计算Calibrating Delay（4个CPU核心的总消耗）&lt;br /&gt;　　4) 0.144s - 校准APIC时钟&lt;br /&gt;　　5) 0.312s - 校准Migration Cost&lt;br /&gt;　　6) 3.520s - Intel E1000网卡初始化&lt;/p&gt; &lt;p&gt;　　下面，将针对上述各部分进行逐一分析和化解。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;（3）接下来，进行具体的分项优化。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;　　CELF已经提出了一整套针对消费类电子产品所使用的嵌入式Linux的启动优化方案，但是由于面向不同应用，所以我们只能部分借鉴他们的经验，针对自己面对的问题作出具体的分析和尝试。&lt;/p&gt; &lt;p&gt;　　内核关键部分（Timer、IRQ、Cache、Mem Pages……）的初始化目前暂时没有比较可靠和可行的优化方案，所以暂不考虑。&lt;/p&gt; &lt;p&gt;　　对于上面分析结果中的 2、3 两项，CELF已有专项的优化方案：“RTCNoSync”和“PresetLPJ”。&lt;/p&gt; &lt;p&gt;　　前者通过屏蔽启动过程中所进行的RTC时钟同步或者将这一过程放到启动后进行（视具体应用对时钟精度的需求而定），实现起来比较容易，但需要为 内核打补丁。似乎CELF目前的工作仅仅是去掉了该过程，而没有实现所提到的“延后”处理RTC时钟的同步。考虑到这个原因，我的方案中暂时没有引入这一 优化（毕竟它所带来的时间漂移已经达到了“秒”级），继续关注中。&lt;/p&gt; &lt;p&gt;　　后者是通过在启动参数中强制指定LPJ值而跳过实际的计算过程，这是基于LPJ值在硬件条件不变的情况下不会变化的考虑。所以在正常启动后记录下内核信息中的“Calibrating Delay”数值后就可以在启动参数中以下面的形式强制指定LPJ值了：&lt;/p&gt; &lt;p&gt;&lt;code&gt;&lt;font face="新宋体"&gt;lpj=9600700&lt;/font&gt;&lt;/code&gt;&lt;/p&gt; &lt;p&gt;　　上面分析结果中的 4、5 两项都是SMP初始化的一部分，因此不在CELF研究的范畴（或许将来会有采用多核的MP4出现？……），只能自力更生了。研究了一下SMP的初始化代 码，发现“Migration Cost”其实也可以像“Calibrating Delay”采用预置的方式跳过校准时间。方法类似，最后在内核启动参数中增加：&lt;/p&gt; &lt;p&gt;&lt;code&gt;&lt;font face="新宋体"&gt;migration_cost=4000,4000&lt;/font&gt;&lt;/code&gt;&lt;/p&gt; &lt;p&gt;　　而Intel的网卡驱动初始化优化起来就比较麻烦了，虽然也是开源，但读硬件驱动完全不比读一般的C代码，况且建立在如此肤浅理解基础上的“优 化”修改也实在难保万全。基于可靠性的考虑，我最终在两次尝试均告失败后放弃了这一条路。那么，换一个思维角度，可以借鉴CELF在 “ParallelRCScripts”方案中的“并行初始化”思想，将网卡驱动独立编译为模块，放在初始化脚本中与其它模块和应用同步加载，从而消除 Probe阻塞对启动时间的影响。考虑到应用初始化也可能使用到网络，而在我们的实际硬件环境中，只有eth0是供应用使用的，因此需要将第一个网口初始 化的0.3s时间计算在内。&lt;/p&gt; &lt;p&gt;　　除了在我的方案中所遇到的上述各优化点，CELF还提出了一些你可能会感兴趣的有特定针对性的专项优化，如：&lt;/p&gt; &lt;p&gt;　　ShortIDEDelays - 缩短IDE探测时长（我的应用场景中不包含硬盘，所以用不上）&lt;br /&gt;　　KernelXIP - 直接在ROM或Flash中运行内核（考虑到兼容性因素，未采用）&lt;br /&gt;　　IDENoProbe - 跳过未连接设备的IDE口&lt;br /&gt;　　OptimizeRCScripts - 优化initrd中的linuxrc脚本（我采用了BusyBox更简洁的linuxrc）&lt;/p&gt; &lt;p&gt;　　以及其它一些尚处于设想阶段的优化方案，感兴趣的朋友可以访问&lt;a href="http://tree.celinuxforum.org/CelfPubWiki/BootupTimeResources"&gt;&lt;font color="#0000ff"&gt;CELF Developer Wiki&lt;/font&gt;&lt;/a&gt;了解详情。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;（4）优化结果&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;　　经过上述专项优化，以及对inittab、rcS脚本的冗余裁减，&lt;strong&gt;整个Linux内核的启动时间从优化前的 6.188s 下降到了最终的 2.016s，如果不包含eth0的初始化，则仅需 1.708s&lt;/strong&gt;（eth0初始化可以和系统中间件及部分应用加载并行），基本达到了既定目标。与Kexec配合，可以大大降低软件故障导致的复位时间，有效的提升了产品的可靠性。&lt;/p&gt; &lt;p&gt;　　大家如果对内核启动时间的优化还有什么建议或疑惑，都欢迎与我探讨。:)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt;   &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-2001136750342437856?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/2001136750342437856/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=2001136750342437856&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2001136750342437856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/2001136750342437856'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/linux_28.html' title='Linux启动时间的极限优化'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5299363733202490424</id><published>2008-01-28T11:37:00.001+08:00</published><updated>2008-01-28T11:42:18.858+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='裁剪'/><category scheme='http://www.blogger.com/atom/ns#' term='ARM'/><category scheme='http://www.blogger.com/atom/ns#' term='s3c2410'/><title type='text'>嵌入式应用Linux裁减的初次尝试</title><content type='html'>&lt;div class="main_post"&gt;       &lt;p&gt;　　前段时间因为嵌入式应用开发的需要，对Linux进行了一次大幅度的裁减。由于是初次接触Linux启动的核心部分，所以基本上还是对网上各种裁减方案的拼凑和整理，包含自己理解的部分实在很少。总的来说效果不算理想，后面还有很长的路要走。&lt;/p&gt; &lt;p&gt;这里就大致说说目前这个Linux裁减方案的“雏形”吧。&lt;/p&gt; &lt;span id="fullpost"&gt;&lt;p&gt;&lt;span id="more-101"&gt;&lt;/span&gt;　　1. 内核裁减&lt;/p&gt; &lt;p&gt;对Linux内核部分的裁减主要根据实际需求进行了重编译，去掉了大部分用不上的特性，以及实际硬件环境之外的设备驱动。这一过程没啥技术含量，就不细说了。&lt;/p&gt; &lt;p&gt;2. initrd改造&lt;/p&gt; &lt;p&gt;常规的Linux系统启动过程中，initrd仅仅充当一个临时的rootfs，在加载实际的rootfs后即被卸载或转移。出于精简的考虑，我将 原rootfs并入了initrd，让它直接充当rootfs，以节省启动时间，并减小体积。（这个改造方案相对来说最简单，也足以满足实际需要）&lt;/p&gt; &lt;p&gt;改造的过程主要是基于原make install自动生成的initrd镜像之上，进行以下“手术”：&lt;/p&gt; &lt;p&gt;(1) 用BusyBox的linuxrc替代原initrd中的初始化脚本，并将原linuxrc脚本中有用得上的初始化任务都合并至etc/inittab中，以节省启动时间。&lt;/p&gt; &lt;p&gt;(2) 因为要充当rootfs，所以还需为initrd添加Linux启动及运行所必须的一些文件夹和文件（主要复制自原rootfs）：&lt;/p&gt; &lt;p&gt;&lt;code&gt;/dev&lt;br /&gt;tty3 - tty10   终端会话设备（Console登录使用）&lt;br /&gt;ttyS0、ttyS1   串口终端设备（串口登录使用）&lt;br /&gt;ptmx、pts      虚拟终端设备（远程登录使用）&lt;br /&gt;/etc&lt;br /&gt;fstab          加载设备的配置文件（后面详述）&lt;br /&gt;gettydefs      仅保留Virtual Console一项&lt;br /&gt;group          仅保留root对应的项&lt;br /&gt;hostname       包含本机的主机名&lt;br /&gt;inittab        初始化脚本（后面详述）&lt;br /&gt;issue          包含本机的全程登录欢迎文字&lt;br /&gt;passwd         仅保留root对应的项&lt;br /&gt;shadow         仅保留root对应的项&lt;br /&gt;termcap        仅保留用于本地console及远程登录的配置项&lt;br /&gt;/etc/init.d&lt;br /&gt;rcS            次级初始化脚本（后面详述）&lt;br /&gt;/lib&lt;br /&gt;libcrypt.so.1  登录认证（login）所需的库文件&lt;br /&gt;/mnt&lt;br /&gt;/proc&lt;br /&gt;/sys&lt;br /&gt;/tmp&lt;br /&gt;/usr&lt;br /&gt;/var&lt;/code&gt;&lt;/p&gt; &lt;p&gt;(3) 修改etc/fstab存储设备加载配置文件，只包含下面四行：&lt;/p&gt; &lt;p&gt;&lt;code&gt;sysfs /sys sysfs defaults 0 0&lt;br /&gt;proc /proc proc defaults 0 0&lt;br /&gt;tmpfs /dev/shm tmpfs size=512m 0 0&lt;br /&gt;devpts /dev/pts devpts defaults 0 0&lt;/code&gt;&lt;/p&gt; &lt;p&gt;由于实际硬件环境的内存比较大，所以给临时文件系统分配的内存上限比较充裕&lt;/p&gt; &lt;p&gt;(4) 创建etc/inittab初始化脚本。由于init模块采用了BusyBox的精简版本，而它采用的inittab文件格式较普通版本有一些区别，所以特别按照BusyBox的格式重新编写了。文件较大，下面仅列举其中的关键部分：&lt;/p&gt; &lt;p&gt;&lt;code&gt;::sysinit:/bin/mount -a　加载etc/fstab中配置的所有存储设备&lt;br /&gt;::sysinit:/bin/mkdir /dev/shm/var　在tmpfs中划分用作var的部分&lt;br /&gt;::sysinit:/bin/mkdir /dev/shm/tmp　在tmpfs中划分用作tmp的部分&lt;br /&gt;::sysinit:/bin/chmod 1777 /dev/shm/var　修改var为合适的权限&lt;br /&gt;::sysinit:/bin/chmod 1777 /dev/shm/tmp　修改tmp为合适的权限&lt;br /&gt;::sysinit:/bin/mount --bind /dev/shm/var /var　将/var绑定到tmpfs中&lt;br /&gt;::sysinit:/bin/mount --bind /dev/shm/tmp /tmp　将/tmp绑定到tmpfs中&lt;/code&gt;&lt;/p&gt; &lt;p&gt;::sysinit:/bin/hostname -F /etc/hostname　从etc/hostname中读取并设置主机名&lt;br /&gt;::sysinit:/sbin/ifconfig lo 127.0.0.1 up　配置IP环回界面&lt;br /&gt;::sysinit:/sbin/telnetd　启动Telnet Daemon&lt;br /&gt;::sysinit:/etc/init.d/rcS　调用次级初始化脚本（完成不能在inittab中进行的初始化任务）&lt;/p&gt; &lt;p&gt;::sysinit:/bin/mkdir /var/log　创建日志文件夹&lt;br /&gt;::sysinit:/bin/touch /var/log/messages　创建日志文件&lt;br /&gt;::respawn:/sbin/syslogd -n -m 30 -C　加载循环缓冲模式的系统日志daemon&lt;br /&gt;::respawn:/sbin/klogd -n&lt;/p&gt; &lt;p&gt;::askfirst:/bin/login　在console创建登录进程&lt;br /&gt;tty2::askfirst:/bin/login　在tty2-tty6上创建额外的登录进程&lt;br /&gt;tty3::askfirst:/bin/login&lt;br /&gt;...&lt;br /&gt;ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100　在串口COM1上创建登录进程&lt;br /&gt;tty10::respawn:/sbin/logread -f　将所有日志打印输出到tty10&lt;/p&gt; &lt;p&gt;(5) 创建etc/init.d/rcS次级初始化脚本，包含以下内容：&lt;/p&gt; &lt;p&gt;&lt;code&gt;/bin/mount -o remount,rw /　将rootfs重新加载为可读可写方式&lt;/code&gt;&lt;/p&gt; &lt;p&gt;注：由于试验的方便，生成的initrd采用了Ext2文件系统。在实际应用中考虑换为CRAMFS（压缩ROM镜像文件系统），以进一步缩减镜像文件体积并提高读取效率。&lt;/p&gt; &lt;p&gt;3. Boot Loader修改&lt;/p&gt; &lt;p&gt;由于这个裁减方案仅仅使用了内核镜像及initrd，保持了与标准引导方式的高度兼容，因此适用于几乎任何Boot Loader。由于裁减实验中需要频繁替换内核和initrd镜像，因此使用了便于控制的GRUB，以提高实验效率。如果最终方案采取Flash作为镜像 载体，则建议使用LILO，以提高兼容性并节省空间。&lt;br /&gt;为了与本方案中以initrd作为rootfs保持一致，Boot Loader的配置文件中需要修改引导参数，指定“root=/dev/ram0”，无需其它额外的参数。&lt;/p&gt; &lt;p&gt;经过上述裁减，整个Linux的启动时间已经缩短到10s以内。内核+initrd的镜像大小也不足3M，基本达到了预期的目标。后续会针对启动的各个环节作进一步的分析和优化，以期进一步缩短启动时间。&lt;/p&gt;        &lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5299363733202490424?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5299363733202490424/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5299363733202490424&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5299363733202490424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5299363733202490424'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/linux.html' title='嵌入式应用Linux裁减的初次尝试'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3911196998255191264</id><published>2008-01-28T11:21:00.001+08:00</published><updated>2008-01-28T11:43:53.278+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux开发'/><title type='text'>2.6的Kernel LOGO真容易改</title><content type='html'>&lt;span style="font-family:Verdana;"&gt;试着改了一下，似乎比2.4容易。2.6的logo数据在/drivers/video/logo里，ppm文件就是logo图像了。每个ppm对应一 个.c文件，内容大概就是图像尺寸、调色板、位图数据等信息。.c文件无需自己建立，在make的时候如果不存在某个ppm文件对应的.c文件，就会自动 从ppm生成一个，然后把它编译成.o文件。所以看看目录下哪些.ppm文件有同名的.o文件，就说明那个logo被编译进了kernel。标准的224 色logo是logo_linux_clut224.ppm，因此修改这个图片就可以实现修改logo了。&lt;/span&gt; &lt;span style="font-family:Verdana;"&gt;在windows下，可以用PaintShopProX直接打开ppm进行编辑，编辑完毕后用decrease color depth命令降为224色，然后保存，把logo_linux_clut224.c删掉，重新make就可以了。这个是我昨晚随便改的logo&lt;/span&gt;&lt;img style="font-family: Verdana;" src="http://files.myopera.com/Returner/smilies/blue15.gif" /&gt;&lt;span style="font-family:Verdana;"&gt; :&lt;/span&gt; &lt;span class="imgcenter"  style="font-family:Verdana;"&gt;&lt;img alt="" src="http://my.opera.com/Returner/homes/blog/logo_linux_clut224_2.gif" /&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;br /&gt;在 深入一点点。很容易发现，对于一般的vga console，logo是由drivers/video/fbmem.c里的fb_show_logo()函数显示的，这个函数的调用者是 drivers/video/console/fbcon.c（跟2.4差不多，嗯）。这个函数做的事情不多，就是先把非8位色深的位图转换为8位色深， 然后用info-&amp;gt;fbops-&amp;gt;fb_imageblit(info, &amp;amp;image);把logo显示出来，有一个cpu时显示一个logo，有2个cpu时显示2个，以此类推。&lt;/span&gt;  &lt;span style="font-family:Verdana;"&gt;略加修改，就可以实现将logo居中显示，并加入一个“重复显示右边界”，也就是把logo最右边4个点宽的区域作为背景填充到整个logo bar。diff如下：&lt;/span&gt; &lt;pre style="font-family: Verdana;"&gt;--- /gs2e/source/linux26-2edev/drivers/video/fbmem.c2006-08-29 14:07:15.000000000 +0800&lt;br /&gt;+++ ./fbmem.c2006-09-27 20:40:08.000000000 +0800&lt;br /&gt;@@ -375,9 +375,9 @@&lt;br /&gt;int fb_show_logo(struct fb_info *info)&lt;br /&gt;{&lt;br /&gt;u32 *palette = NULL, *saved_pseudo_palette = NULL;&lt;br /&gt;-unsigned char *logo_new = NULL;&lt;br /&gt;-struct fb_image image;&lt;br /&gt;-int x;&lt;br /&gt;+unsigned char *logo_new = NULL, *border = NULL;&lt;br /&gt;+struct fb_image image, imageborder;&lt;br /&gt;+int x, xoffset;&lt;br /&gt;&lt;br /&gt;/* Return if the frame buffer is not mapped or suspended */&lt;br /&gt;if (fb_logo.logo == NULL || info-&amp;gt;state != FBINFO_STATE_RUNNING)&lt;br /&gt;@@ -421,12 +421,45 @@&lt;br /&gt;image.height = fb_logo.logo-&amp;gt;height;&lt;br /&gt;image.dy = 0;&lt;br /&gt;&lt;br /&gt;+#ifdef CONFIG_LOGO_REPEAT_RIGHT&lt;br /&gt;+border = kmalloc(4 * fb_logo.logo-&amp;gt;height, GFP_KERNEL);&lt;br /&gt;+if (border != NULL){&lt;br /&gt;+  for (x = 0; x &amp;lt; fb_logo.logo-&amp;gt;height; x++){ /* use x as y */&lt;br /&gt;+*((u32 *)border + x) = /* will repeat 4 pixels of the right side*/&lt;br /&gt;+*(u32 *)(image.data + (x+1)*fb_logo.logo-&amp;gt;width - 4);&lt;br /&gt;+  }&lt;br /&gt;+  imageborder.depth = 8;&lt;br /&gt;+  imageborder.data = border;&lt;br /&gt;+  imageborder.width = 4;&lt;br /&gt;+  imageborder.height = image.height;&lt;br /&gt;+  imageborder.dy = 0;&lt;br /&gt;+  for (x = 0; x &amp;lt; info-&amp;gt;var.xres; x+=4){&lt;br /&gt;+imageborder.dx = x;&lt;br /&gt;+info-&amp;gt;fbops-&amp;gt;fb_imageblit(info, &amp;amp;imageborder);&lt;br /&gt;+  }&lt;br /&gt;+  kfree(border);&lt;br /&gt;+}&lt;br /&gt;+#endif&lt;br /&gt;+#ifndef CONFIG_CENTER_LOGO&lt;br /&gt;+xoffset = 0;&lt;br /&gt;for (x = 0; x &amp;lt; num_online_cpus() * (fb_logo.logo-&amp;gt;width + 8) &amp;amp;&amp;amp;&lt;br /&gt;     x &amp;lt;= info-&amp;gt;var.xres-fb_logo.logo-&amp;gt;width; x += (fb_logo.logo-&amp;gt;width + 8)) {&lt;br /&gt;image.dx = x;&lt;br /&gt;info-&amp;gt;fbops-&amp;gt;fb_imageblit(info, &amp;amp;image);&lt;br /&gt;}&lt;br /&gt;-&lt;br /&gt;+#else&lt;br /&gt;+xoffset = (info-&amp;gt;var.xres - num_online_cpus() * (fb_logo.logo-&amp;gt;width + 8))&amp;gt;&amp;gt;1;&lt;br /&gt;+if (xoffset&amp;lt;0)xoffset = 0;&lt;br /&gt;+        for (x = xoffset; x &amp;lt; num_online_cpus() * (fb_logo.logo-&amp;gt;width + 8) + xoffset  &amp;amp;&amp;amp;&lt;br /&gt;+             x &amp;lt;= info-&amp;gt;var.xres-fb_logo.logo-&amp;gt;width+xoffset; x += (fb_logo.logo-&amp;gt;width + 8)) {&lt;br /&gt;+               image.dx = x;&lt;br /&gt;+               info-&amp;gt;fbops-&amp;gt;fb_imageblit(info, &amp;amp;image);&lt;br /&gt;+}&lt;br /&gt;+#endif&lt;br /&gt;kfree(palette);&lt;br /&gt;if (saved_pseudo_palette != NULL)&lt;br /&gt;info-&amp;gt;pseudo_palette = saved_pseudo_palette;&lt;br /&gt;&lt;/pre&gt;  &lt;span style="font-family:Verdana;"&gt;我在这里定义了两个配置变量，CONFIG_LOGO_REPEAT_RIGHT和CONFIG_CENTER_LOGO，修改/drivers/video/logo/Kconfig，加上:&lt;/span&gt; &lt;pre style="font-family: Verdana;"&gt;config CENTER_LOGO&lt;br /&gt;       bool "Center logo"&lt;br /&gt;       depends on LOGO&lt;br /&gt;       default n&lt;br /&gt;config LOGO_REPEAT_RIGHT&lt;br /&gt;       bool "Repeat the right border (4 pixels)"&lt;br /&gt;       depends on LOGO&lt;br /&gt;       default n&lt;br /&gt;&lt;/pre&gt; &lt;span style="font-family:Verdana;"&gt;这样就可以在make menuconfig之类的界面中设置是否开启这两项功能了。&lt;/span&gt; &lt;span style="font-family:Verdana;"&gt;更多关于logo hack的信息，可以参考：&lt;/span&gt; &lt;a style="font-family: Verdana;" href="http://gentoo-wiki.com/HOWTO_Linux_Logo_Hack" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;http://gentoo-wiki.com/HOWTO_Linux_Logo_Hack&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3911196998255191264?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3911196998255191264/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3911196998255191264&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3911196998255191264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3911196998255191264'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/26kernel-logo.html' title='2.6的Kernel LOGO真容易改'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-5266104096518280492</id><published>2008-01-28T11:19:00.001+08:00</published><updated>2008-01-28T11:19:56.343+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux开发'/><title type='text'>[Linux] 更換Linux Boot up Logo</title><content type='html'>在&lt;span style="color: rgb(80, 80, 153);"&gt;2.4&lt;/span&gt; kernel 需要浩大工程才能完成的 Logo更換, 沒想到在&lt;span style="color: rgb(255, 0, 0);"&gt;2.6&lt;/span&gt; 中是&lt;br /&gt;a piece of cake....&lt;br /&gt;如何換咧?&lt;br /&gt;&lt;br /&gt;別吵!! 準備好飲料爆米花, silence your mobile phone, 我們正式開始.&lt;br /&gt;&lt;br /&gt;1. 到&lt;a href="http://kernel.org/"&gt;http://kernel.org&lt;/a&gt;下載2.6 kernel, 目前已經到2.6.11.4了!&lt;br /&gt;&lt;br /&gt;2. 準備好美美的圖片, 使用png 格式, 顏色要少於224, 此例是使用1024x80.&lt;br /&gt;        使用pngtopnm及pnmtoplainpnm這兩個tool來轉換&lt;br /&gt; &lt;span style="color: rgb(0, 150, 150);"&gt; pngtopnm my_logo.png | pnmtoplainpnm &amp;gt; logo_linux_clut224.ppm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;  cp logo_linux_clut224.ppm /your_kernel_source/drivers/video/logo/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Untar kernel source code後,  執行 make menuconfig&lt;br /&gt;   &lt;span style="color: rgb(0, 150, 150);"&gt;   Graphics Support -&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        [*] Support for frame buffer devices&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        [*] VESA VGA graphics support&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;    Console display driver support -&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        [*] Video mode selection support&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        &amp;lt;*&amp;gt; Framebuffer Console support&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        [*]Select compiled-in fonts&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        [*]VGA 8x16 font&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;    Logo configuration-&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        [*]Bootup logo&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 150, 150);"&gt;        [*] Standard 224-color Linux logo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. 接下來就是compile kernel囉, 這都不會就收工了 =.=|||&lt;br /&gt;  &lt;span style="color: rgb(0, 150, 150);"&gt;make bzImage&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. 選好心儀的bootloader, 在append 參數中, 加上 '&lt;span style="color: rgb(255, 0, 0);"&gt;vga=0x318&lt;/span&gt;' 會設定&lt;br /&gt;  開機時使用1024x768 24bit的模式.&lt;br /&gt;&lt;br /&gt;6. 開機試試囉... Enjoy yourself ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-5266104096518280492?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/5266104096518280492/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=5266104096518280492&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5266104096518280492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/5266104096518280492'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/linux-linux-boot-up-logo.html' title='[Linux] 更換Linux Boot up Logo'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3933549710117068181</id><published>2008-01-28T11:17:00.001+08:00</published><updated>2008-01-28T11:17:22.852+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux开发'/><title type='text'>lInux下修改logo</title><content type='html'>&lt;font style="color: rgb(0, 1, 255);" size="4"&gt;&lt;font style="color: rgb(0, 1, 2);" size="2"&gt;&lt;font style="color: rgb(0, 1, 255);" size="4"&gt;但你如果想在LCD上显示自己的Logo，那下面我介绍一下自定义Logo的方法：&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;     &lt;font size="3"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; （1）进入&lt;/font&gt;&lt;font size="3"&gt;linux&lt;/font&gt;&lt;font size="3"&gt;的&lt;/font&gt;&lt;font size="3"&gt;kde&lt;/font&gt;&lt;font size="3"&gt;图形界面，使用&lt;/font&gt;&lt;font size="3"&gt;The&amp;nbsp; GIMP 图像编辑器&lt;/font&gt;&lt;font size="3"&gt;打开你想要的&lt;/font&gt;&lt;font size="3"&gt;图像文件，依次选择图像&lt;/font&gt;&lt;font size="3"&gt;-&amp;gt;&lt;/font&gt;&lt;font size="3"&gt;模式&lt;/font&gt;&lt;font size="3"&gt;-&amp;gt;&lt;/font&gt;&lt;font size="3"&gt;索引颜色，将颜色改为224色；至于图片大小，不要大于你的显示器分辨率就好（我只试过80＊80和320＊240的大小），最后将文件保存为&lt;/font&gt;&lt;font size="3"&gt;ppm&lt;/font&gt;&lt;font size="3"&gt;格式&lt;span style="color: rgb(255, 1, 2);"&gt;（ASCii码）&lt;/span&gt;，文件名为：&lt;span style="color: rgb(255, 1, 2);"&gt;logo_linux_clut224&lt;/span&gt;.ppm。&lt;/font&gt;&lt;br /&gt;&lt;font size="3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; （2）将logo_linux_clut224.ppm拷贝到/drivers/video/logo文件夹下，替换原有的文件（记得备份啊，以防万一）。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; （3）重新编译内核，tftp到开发板启动。&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3933549710117068181?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3933549710117068181/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3933549710117068181&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3933549710117068181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3933549710117068181'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/linuxlogo_28.html' title='lInux下修改logo'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-3786281921540760979</id><published>2008-01-28T11:14:00.001+08:00</published><updated>2008-01-28T11:14:41.817+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux开发'/><title type='text'>linux启动logo修改</title><content type='html'>&lt;span style="font-family: Verdana;" class="oblog_text"&gt;&lt;div id="art" style="margin: 15px; line-height: 150%;"&gt;&lt;span style="font-size: 12pt;"&gt;本文针对的嵌入式系统为Intel Xscale pxa255 400MHz, Linux OS.&lt;/span&gt;  &lt;p&gt;&lt;span style="font-size: 12pt;"&gt;一般的嵌入式系统刚启动时,在显示屏的左上方都会出现一个小企鹅的logo,如何才能将该logo改为我们喜欢的图片,比如自己的照片,风景或公司的图标呢,下面给出了答案.虽然本文针对的是嵌入式系统,但对PC机系统也是一样的.&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="font-size: 12pt;"&gt;1)首先下载linux progress project软件包lpp-0.4.2.tar.gz,解压，在contrib的boot_logo目录中运行make,生成boot_logo工具；&lt;/span&gt;&lt;/pre&gt; &lt;pre&gt;&lt;span style="font-size: 12pt;"&gt;&lt;br /&gt;2)将要在启动时显示的图片用GIMP打开，另存为origin.pcx格式文件;&lt;br /&gt;3)运行#convert -colors 214 -dither -resize 640x480 origin.pcx converted.pcx生成214色，640x480的pcx文件，&lt;br /&gt;注意不要生成800x600的格式，这种情况下生成的内核会死机，可能是因为内核太大，将存放文件系统的Flash给Erase掉的缘故；&lt;br /&gt;4)运行./boot_logo convertd.pcx linux_logo.h生成linux_logo文件，将它拷贝到/include/linux/目录下，&lt;br /&gt;修改drivers/video/fbcon.c为&lt;br /&gt;#define LOGO_H 480&lt;br /&gt;#define LOGO_W 640&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: 12pt;"&gt;重新编译内核即可.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-3786281921540760979?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/3786281921540760979/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=3786281921540760979&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3786281921540760979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/3786281921540760979'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/linuxlogo.html' title='linux启动logo修改'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-8472845151766195923</id><published>2008-01-26T20:12:00.001+08:00</published><updated>2008-01-26T20:37:35.956+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ARM'/><category scheme='http://www.blogger.com/atom/ns#' term='电源管理'/><title type='text'>2410 第七章 时钟和电源管理</title><content type='html'>&lt;h3 style="margin: 13pt 0cm; font-family: verdana;"&gt;&lt;span style=";font-size:100%;" &gt;概述&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;时钟和电源管理模块由&lt;span lang="EN-US"&gt;3&lt;/span&gt;部分组成：时钟控制、&lt;span lang="EN-US"&gt;USB&lt;/span&gt;控制、电源控制。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;时钟控制部分产生&lt;span lang="EN-US"&gt;3&lt;/span&gt;种时钟信号：&lt;span lang="EN-US"&gt;CPU&lt;/span&gt;用的&lt;span lang="EN-US"&gt;FCLK,AHB&lt;/span&gt;总线用的&lt;span lang="EN-US"&gt;HCLK,APB&lt;/span&gt;总线用的&lt;span lang="EN-US"&gt;PCLK&lt;/span&gt;。&lt;br /&gt;有&lt;span lang="EN-US"&gt;2&lt;/span&gt;个锁相环，一个用于&lt;span lang="EN-US"&gt;FCLK HCLK PCLK,&lt;/span&gt;另一个用&lt;span lang="EN-US"&gt;48MHz&lt;/span&gt;的&lt;span lang="EN-US"&gt;USB&lt;/span&gt;时钟。可以通过不使能锁相环来达到慢速省电目的。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;电源管理模块提供了&lt;span lang="EN-US"&gt;4&lt;/span&gt;种模式： &lt;span lang="EN-US"&gt;Normal&lt;/span&gt;模式、&lt;span lang="EN-US"&gt;Slow&lt;/span&gt;模式、&lt;span lang="EN-US"&gt;Idle&lt;/span&gt;模式、&lt;span lang="EN-US"&gt;Power_Off&lt;/span&gt;模式。&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;&lt;br /&gt;Normal Mode&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;&lt;br /&gt;该模式下如果所有外围设备都打开时电流消耗最大，允许用户通过软件关闭外围设备达到省电目的。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;Slow Mode&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-size:100%;color:black;"  &gt;不采用&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;PLL&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;的模式，能量消耗仅取决于外时钟的频率。由外部提供的时钟源作&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;FCLK&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;Idle&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Mode&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-size:100%;color:black;"  &gt;关掉了给&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;cpu&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;的&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;FCLK&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;时钟，但外围设备时钟仍存在，任何到&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;CPU&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;的中断请求可以将&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;cpu&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;唤醒。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;Power_off Mode&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style=";font-size:100%;color:black;"  &gt;这种模式关掉了内部供电，仅有给&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;wake_up&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;部分的供电还存在。可以通过外部中断或实时时钟中断可以唤醒。&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;h3 style="margin: 13pt 0cm; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;功能描述&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;时钟结构&lt;/strong&gt;：主时钟源来自外部晶振&lt;span lang="EN-US"&gt;XTlpll&lt;/span&gt;或外部时钟&lt;span lang="EN-US"&gt;EXTCLK&lt;/span&gt;。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;时钟源选择&lt;/strong&gt;：通过&lt;span lang="EN-US"&gt;OM[3: 2]&lt;/span&gt;的高低电平选择，现在我们采用&lt;span lang="EN-US"&gt;00&lt;/span&gt;。&lt;span lang="EN-US"&gt;OM[3&lt;/span&gt;：&lt;span lang="EN-US"&gt;2]&lt;/span&gt;的状态在&lt;span lang="EN-US"&gt;nRESET&lt;/span&gt;的上升沿锁存。&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;尽管&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;MPLL&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;在上电复位后就开始工作，但是&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;MPLL&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;输出不作为系统时钟，只有对&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;MPLLCON&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;写入适当的数值后才可以。即使用户不想改变&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;MPLLCON&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;的值，也要重新写一遍才能使其起作用。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style=";color:black;" &gt;时钟控制逻辑&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;：时钟控制逻辑决定要使用的时钟源，当锁相环被设置为一个新的值时，时钟控制逻辑切断&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;FCLK&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;直到&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;PLL&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;输出稳定。时钟控制逻辑在上电复位或从&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  lang="EN-US" &gt;power_down&lt;/span&gt;&lt;span style=";font-size:100%;color:black;"  &gt;状态启动时使能。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;上电复位：注意上电后必须通过设置&lt;span lang="EN-US"&gt;PLLCON&lt;/span&gt;才能使&lt;span lang="EN-US"&gt;PLL&lt;/span&gt;作用。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;在正常操作状态下改变&lt;span lang="EN-US"&gt;PLL&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;设置&lt;/strong&gt;：通过改变ＰＭＳ的值来实现。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;ＵＳＢ时钟控制&lt;/strong&gt;：ＵＣＬＫ不起作用直到ＵＰＬＬ被设置。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;ＦＣＬＫ、ＨＣＬＫ、ＰＣＬＫ：&lt;/strong&gt;可以通过&lt;span lang="EN-US"&gt;HDIVN&lt;/span&gt;、&lt;span lang="EN-US"&gt;PDIVN&lt;/span&gt;、&lt;span lang="EN-US"&gt;CLKDIVN&lt;/span&gt;来改变&lt;span lang="EN-US"&gt;3&lt;/span&gt;种时钟的比率，推荐采用&lt;span lang="EN-US"&gt;1&lt;/span&gt;：&lt;span lang="EN-US"&gt;2&lt;/span&gt;：&lt;span lang="EN-US"&gt;4&lt;/span&gt;的比率。在设置完&lt;span lang="EN-US"&gt;PMS&lt;/span&gt;的值后，需要设置&lt;span lang="EN-US"&gt;CLKDIVN&lt;/span&gt;寄存器，该寄存器设置的值在&lt;span lang="EN-US"&gt;PLL&lt;/span&gt;锁定后生效，只需要&lt;span lang="EN-US"&gt;1.5&lt;/span&gt;个&lt;span lang="EN-US"&gt;HCLK&lt;/span&gt;即可完成比率的修改。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt; &lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;电源管理：&lt;/strong&gt;&lt;span lang="EN-US"&gt;4&lt;/span&gt;种模式及特点。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;Power_Off&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;模式：&lt;/strong&gt;外部中断&lt;span lang="EN-US"&gt;EINT[15:0]&lt;/span&gt;或&lt;span lang="EN-US"&gt;RTC alarm&lt;/span&gt;中断可以从该模式&lt;span lang="EN-US"&gt;wakeup.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;进入&lt;span lang="EN-US"&gt;PowerOff&lt;/span&gt;模式的流程：&lt;span lang="EN-US"&gt;1&lt;/span&gt;。将&lt;span lang="EN-US"&gt;GPIO&lt;/span&gt;端口设置为适当的状态； &lt;span lang="EN-US"&gt;2&lt;/span&gt;。&lt;span lang="EN-US"&gt;……….&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt; &lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;VDDi&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;和&lt;span lang="EN-US"&gt;VDDiarm&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;的控制：&lt;/strong&gt;在&lt;span lang="EN-US"&gt;PowerOff&lt;/span&gt;模式，仅&lt;span lang="EN-US"&gt;VDDi&lt;/span&gt;和&lt;span lang="EN-US"&gt;VDDiarm&lt;/span&gt;通过&lt;span lang="EN-US"&gt;PWREN&lt;/span&gt;管脚控制被关闭。如果&lt;span lang="EN-US"&gt;PWREN&lt;/span&gt;为高，&lt;span lang="EN-US"&gt;VDDi&lt;/span&gt;和&lt;span lang="EN-US"&gt;VDDiarm&lt;/span&gt;被外部电源提供，如果为低则关闭。尽管&lt;span lang="EN-US"&gt;VDDi&lt;/span&gt;，&lt;span lang="EN-US"&gt;VDDiarm&lt;/span&gt;，&lt;span lang="EN-US"&gt;VDDi_MPLL&lt;/span&gt;，&lt;span lang="EN-US"&gt;VDDi_UPLL&lt;/span&gt;可能被关闭，其他电源必须被提供。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;EINT[15:0]&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;启动信号：&lt;/strong&gt; &lt;span lang="EN-US"&gt;EINTn&lt;/span&gt;管脚必须被设置为中断管脚，在启动后，相应的&lt;span lang="EN-US"&gt;EINTn&lt;/span&gt;管脚将不被用作启动，可以被用作外部中断请求。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;电池故障信号&lt;span lang="EN-US"&gt;(nBATT_FLT):&lt;/span&gt; 当&lt;span lang="EN-US"&gt;cpu&lt;/span&gt;不在&lt;span lang="EN-US"&gt;PowerOff&lt;/span&gt;模式时，&lt;span lang="EN-US"&gt;nBATT_FLT&lt;/span&gt;将要引起低电平触发的中断。当在&lt;span lang="EN-US"&gt;PowerOff&lt;/span&gt;模式时，&lt;span lang="EN-US"&gt;nBATT_FLT&lt;/span&gt;信号将会禁止芯片从&lt;span lang="EN-US"&gt;PowerOff&lt;/span&gt;模式启动，故所有的&lt;span lang="EN-US"&gt;wakeup&lt;/span&gt;信号被屏蔽，此举用来保护系统电量低时不出现故障。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-align: left; font-family: verdana;"&gt; &lt;/p&gt;&lt;span style=";font-size:100%;" &gt;时钟和电源管理部分寄存器&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;LOCKTIME:&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;UPLL&lt;/span&gt;&lt;span style="font-size:100%;"&gt;、 &lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;MPLL&lt;/span&gt;&lt;span style="font-size:100%;"&gt; 锁定时间的计数值。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;MPLLCON&lt;/span&gt;&lt;/strong&gt; UPLLCON:这两个寄存器都有&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;MDIV PDIV SDIV&lt;/span&gt;&lt;span style="font-size:100%;"&gt;设置，对于输入１２Ｍ的晶振，有相应的推荐值，产生２００Ｍ和４８Ｍ的频率。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;CLKCON:&lt;/span&gt;&lt;/strong&gt; 为各种外围接口提供时钟。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;CLKSLOW:&lt;/span&gt;&lt;/strong&gt;　是否打开２个ＰＬＬ。&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;CLKDIVN:&lt;/span&gt;&lt;/strong&gt; 设置&lt;span lang="EN-US"&gt;FCLK&lt;/span&gt;、 &lt;span lang="EN-US"&gt;HCLK&lt;/span&gt;、 &lt;span lang="EN-US"&gt;PCLK&lt;/span&gt;比率的寄存器。&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8453070348577261465-8472845151766195923?l=kenshinxf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kenshinxf.blogspot.com/feeds/8472845151766195923/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8453070348577261465&amp;postID=8472845151766195923&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8472845151766195923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8453070348577261465/posts/default/8472845151766195923'/><link rel='alternate' type='text/html' href='http://kenshinxf.blogspot.com/2008/01/armmovldr.html' title='2410 第七章 时钟和电源管理'/><author><name>KenShinXF</name><uri>http://www.blogger.com/profile/06347406938679764206</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://bp3.blogger.com/_2HFtNoJYhCU/SIrQsF7P4PI/AAAAAAAAF8c/zIbIYMx_qxI/S220/b217b57f6f7baaa4_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8453070348577261465.post-87363112517210374</id><published>2008-01-25T11:21:00.001+08:00</published><updated>2008-01-25T11:21:40.093+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vi'/><category scheme='http://www.blogger.com/atom/ns#' term='BASH'/><title type='text'>Best of Vim Tips 中文版</title><content type='html'>每个想深入学习&amp;nbsp;Vim 用户都会认真阅读的文章，官网链接：&lt;a href="http://www.rayninfo.co.uk/vimtips.html" target="_blank" rel="nofollow"&gt;&lt;font color="#810081"&gt;http://www.rayninfo.co.uk/vimtips.html&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;&lt;p&gt;这篇文章被很多人翻译过，但那是都很早了，所在原来的一系列翻译的基础上修正原来翻译欠妥的，错误的，以及近两年更新的内容。&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;p&gt;&lt;span style="font-family: Verdana;"&gt;__BEGIN__&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;/p&gt;&lt;span style="font-family: Verdana;"&gt;------------------------------------------------------------------------------&lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;# searching 查找 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/joe/e &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: cursor set to End of match &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把光标定位在匹配单词最后一个字母处 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/joe/e+1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: cursor set to End of match plus 1 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把光标定位在匹配单词最后一个字母的下一个字母处 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/joe/s-2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: cursor set to Start of match minus 2 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把光标定位在匹配单词第一个字母往前数两个字母的位置 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/^joe.*fred.*bill/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: normal &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 标准的正则表达式 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/^[A-J]\+/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: search for lines beginning with one or more A-J &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找以一个或多个 A-J 中的字母开头的行 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/begin\_.*end &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : search over possible multiple lines &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找在 begin 和 end 两个单词之间尽可能多的行 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/fred\_s*joe/i &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: any whitespace including newline &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找在 fred 和 joe 两个单词之间任意多的空格，包括新行 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/fred\|joe &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Search for FRED OR JOE &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找 fred 或 joe &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/\([^0-9]\|^\)%.*% &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Search for absence of a digit or beginning of line &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/.*fred\&amp;amp;.*joe &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Search for FRED AND JOE in any ORDER! &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找同时包含 FRED 和 JOE 的行，不分前后顺序 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/\&amp;lt;fred\&amp;gt;/i &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: search for fred but not alfred or frederick &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找 fred, 而不是 alfred 或者 frederick，也就是全字匹配 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/\&amp;lt;\d\d\d\d\&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Search for exactly 4 digit numbers &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找4个数字的全字匹配 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/\D\d\d\d\d\D &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Search for exactly 4 digit numbers &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找4个数字的全字匹配 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;/\&amp;lt;\d\{4}\&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: same thing &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;span style="font-family: Verdana;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 同上 &lt;/span&gt;&lt;br style="font-family: Verdana;" /&gt;&lt;p style="font-family: Verdana;"&gt;# finding empty lines 查找空行 &lt;br /&gt;/^\n\{3} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: find 3 empty lines &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查找 3 行空行 &lt;br /&gt;# Specify what you are NOT searching for (vowels) &lt;br /&gt;# 指定不要查找什么 &lt;br /&gt;/\c\v([^aeiou]&amp;amp;\a){4} &amp;nbsp; &amp;nbsp; &amp;nbsp; : search for 4 consecutive consanants &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# using rexexp memory in a search &lt;br /&gt;# 在查找中使用正则表达式存储 &lt;br /&gt;/\(fred\).*\(joe\).*\2.*\1 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Repeating the Regexp (rather than what the Regexp finds) &lt;br /&gt;# 重复正则表达式 &lt;br /&gt;/^\([^,]*,\)\{8} &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# visual searching &lt;br /&gt;# 可视模式下的查找 &lt;br /&gt;:vmap // y/&amp;lt;C-R&amp;gt;"&amp;lt;CR&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; : search for visually highlighted text &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;查找被高亮显示的文本 &lt;br /&gt;:vmap &amp;lt;silent&amp;gt; // &amp;nbsp; &amp;nbsp;y/&amp;lt;C-R&amp;gt;=escape(@", '\\/.*$^~[]')&amp;lt;CR&amp;gt;&amp;lt;CR&amp;gt; : with spec chars &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# searching over multiple lines \_ means including newline &lt;br /&gt;# 查找多行。\_ 表示包括新行 &lt;br /&gt;/&amp;lt;!--\_p\{-}--&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: search for multiple line comments &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;查找多行注释 &lt;br /&gt;/fred\_s*joe/i &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: any whitespace including newline &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;查找在 fred 和 joe 两个单词之间任意多的空 &lt;br /&gt;格，包括新行 &lt;br /&gt;/bugs\(\_.\)*bunny &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: bugs followed by bunny anywhere in file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bugs 后任意位置含有 bunny 单词的多个行 &lt;br /&gt;:h \_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : help &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;帮助 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# search for declaration of subroutine/function under cursor &lt;br /&gt;# 查找光标下子程序/函数的声明 &lt;br /&gt;:nmap gx yiw/^\(sub\&amp;lt;bar&amp;gt;function\)\s\+&amp;lt;C-R&amp;gt;"&amp;lt;CR&amp;gt; &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# multiple file search &lt;br /&gt;# 在多个文件中查找 &lt;br /&gt;:bufdo /searchstr &lt;br /&gt;:argdo /searchstr &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# How to search for a URL without backslashing &lt;br /&gt;# 如何不使用反斜线查找 URL &lt;br /&gt;?&lt;a href="http://www.vim.org/" target="_blank" rel="nofollow"&gt;&lt;font color="#0000ff"&gt;http://www.vim.org/&lt;/font&gt;&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: search BACKWARDS!!! clever huh! &lt;br /&gt;---------------------------------------- &lt;br /&gt;# substitution &lt;br /&gt;# 替换 &lt;br /&gt;:%s/fred/joe/igc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: general substitute command &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;普通替换命令 &lt;br /&gt;:%s/\r//g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Delete DOS returns ^M &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除 DOS 回车符 ^M &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Is your Text File jumbled onto one line? use following &lt;br /&gt;# 你的文本文件是否乱七八糟的排成一行？使用如下命令 &lt;br /&gt;:%s/\r/\r/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Turn DOS returns ^M into real returns &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;转换 DOS 回车符 ^M 为真正的回车符 &lt;br /&gt;:%s= &amp;nbsp;*$== &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: delete end of line blanks &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除行尾空格 &lt;br /&gt;:%s= \+$== &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Same thing &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;同上 &lt;br /&gt;:%s#\s*\r\?$## &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Clean both trailing spaces AND DOS returns &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除行尾空格和 DOS 回车符 &lt;br /&gt;:%s#\s*\r*$## &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : same thing &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除行尾空格和 DOS 回车符 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# deleting empty lines &lt;br /&gt;# 删除空行 &lt;br /&gt;:%s/^\n\{3}// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : delete blocks of 3 empty lines &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除三行空行 &lt;br /&gt;:%s/^\n\+/\r/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : compressing empty lines &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 压缩多行空行为一行 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# IF YOU ONLY WANT TO KNOW ONE THING &lt;br /&gt;# 如果你只想明白一件事情 &lt;br /&gt;:'a,'bg/fred/s/dick/joe/igc : VERY USEFUL &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;非常有用 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# duplicating columns &lt;br /&gt;# 复制列 &lt;br /&gt;:%s= [^ ]\+$=&amp;amp;&amp;amp;= &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: duplicate end column &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;复制最后一列 &lt;br /&gt;:%s= \f\+$=&amp;amp;&amp;amp;= &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: same thing &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;同上 &lt;br /&gt;:%s= \S\+$=&amp;amp;&amp;amp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : usually the same &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;同上 &lt;br /&gt;# memory &lt;br /&gt;# 记忆，或叫引用 &lt;br /&gt;:s/\(.*\):\(.*\)/\2 : \1/ &amp;nbsp; : reverse fields separated by : &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;反转以 : 分隔的字段 &lt;br /&gt;:%s/^\(.*\)\n\1/\1$/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: delete duplicate lines &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除重复的行 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# non-greedy matching \{-} &lt;br /&gt;# 非贪婪匹配 \{-} &lt;br /&gt;:%s/^.\{-}pdf/new.pdf/ &amp;nbsp; &amp;nbsp; &amp;nbsp;: delete to 1st pdf only &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;只删除到第一个 pdf &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# use of optional atom \? &lt;br /&gt;:%s#\&amp;lt;[zy]\?tbl_[a-z_]\+\&amp;gt;#\L&amp;amp;#gc : lowercase with optional leading characters &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 不懂 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# over possibly many lines &lt;br /&gt;# 匹配尽可能多的行 &lt;br /&gt;:%s/&amp;lt;!--\_.\{-}--&amp;gt;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: delete possibly multi-line comments &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 删除尽可能多的注释 &lt;br /&gt;:help /\{-} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : help non-greedy &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;非贪婪匹配的帮助 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# substitute using a register &lt;br /&gt;# 使用寄存器替换 &lt;br /&gt;:s/fred/&amp;lt;c-r&amp;gt;a/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : sub "fred" with contents of register "a" &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;用"a"寄存器里的内容替换"fred" &lt;br /&gt;:s/fred/\=@a/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: better alternative as register not displayed &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;更好的方法，不用显示寄存器内容 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# multiple commands on one line &lt;br /&gt;# 写在一行里的复杂命令 &lt;br /&gt;:%s/\f\+\.gif\&amp;gt;/\r&amp;amp;\r/g | v/\.gif$/d | %s/gif/jpg/ &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# ORing &lt;br /&gt;:%s/suck\|buck/loopy/gc &amp;nbsp; &amp;nbsp; : ORing (must break pipe) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;不懂 &lt;br /&gt;# Calling a VIM function &lt;br /&gt;# 调用 Vim 函数 &lt;br /&gt;:s/__date__/\=strftime("%c")/ : insert datestring &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 插入日期 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Working with Columns sub any str1 in col3 &lt;br /&gt;# 处理列，替换所有在第三列中的 str1 &lt;br /&gt;:%s:\(\(\w\+\s\+\)\{2}\)str1:\1str2: &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Swapping first &amp;amp; last column (4 columns) &lt;br /&gt;# 交换第一列和最后一列 (共4列) &lt;br /&gt;:%s:\(\w\+\)\(.*\s\+\)\(\w\+\)$:\3\2\1: &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# filter all form elements into paste register &lt;br /&gt;# 把所有的form元素（就是html里面的form啦）放到register里 &lt;br /&gt;:redir @*|sil exec 'g#&amp;lt;\(input\|select\|textarea\|/\=form\)\&amp;gt;#p'|redir END &lt;br /&gt;:nmap ,z :redir @*&amp;lt;Bar&amp;gt;sil exec &lt;br /&gt;'g@&amp;lt;\(input\&amp;lt;Bar&amp;gt;select\&amp;lt;Bar&amp;gt;textarea\&amp;lt;Bar&amp;gt;/\=form\)\&amp;gt;@p'&amp;lt;Bar&amp;gt;redir END&amp;lt;CR&amp;gt; &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# increment numbers by 6 on certain lines only &lt;br /&gt;# 不懂 &lt;br /&gt;:g/loc\|function/s/\d/\=submatch(0)+6/ &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# better &lt;br /&gt;# 更好的方法 &lt;br /&gt;:%s#txtdev\zs\d#\=submatch(0)+1#g &lt;br /&gt;:h /\zs &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# increment only numbers gg\d\d &amp;nbsp;by 6 (another way) &lt;br /&gt;# 不懂 &lt;br /&gt;:%s/\(gg\)\@&amp;lt;=\d\+/\=submatch(0)+6/ &lt;br /&gt;:h zero-width &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# find replacement text, put in memory, then use \zs to simplify substitute &lt;br /&gt;# 查找需替换的文本，保存，然后使用 \zs 命令简单替换 &lt;br /&gt;:%s/"\([^.]\+\).*\zsxx/\1/ &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Pull word under cursor into LHS of a substitute &lt;br /&gt;# 不懂 &lt;br /&gt;:nmap &amp;lt;leader&amp;gt;z :%s#\&amp;lt;&amp;lt;c-r&amp;gt;=expand("&amp;lt;cword&amp;gt;")&amp;lt;cr&amp;gt;\&amp;gt;# &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Pull Visually Highlighted text into LHS of a substitute &lt;br /&gt;# 不懂 &lt;br /&gt;:vmap &amp;lt;leader&amp;gt;z :&amp;lt;C-U&amp;gt;%s/\&amp;lt;&amp;lt;c-r&amp;gt;*\&amp;gt;/ &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# all following performing similar task, substitute within substitution &lt;br /&gt;# Multiple single character substitution in a portion of line only &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;:%s,\(all/.*\)\@&amp;lt;=/,_,g &amp;nbsp; &amp;nbsp; : replace all / with _ AFTER "all/" &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Same thing &lt;br /&gt;:s#all/\zs.*#\=substitute(submatch(0), '/', '_', 'g')# &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Substitute by splitting line, then re-joining &lt;br /&gt;:s#all/#&amp;amp;^M#|s#/#_#g|-j! &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Substitute inside substitute &lt;br /&gt;:%s/.*/\='cp '.submatch(0).' all/'.substitute(submatch(0),'/','_','g')/ &lt;br /&gt;---------------------------------------- &lt;br /&gt;# global command display (see tip 227) &lt;br /&gt;# 全局命令显示（参见 tip 227) &lt;br /&gt;:g/fred.*joe.*dick/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : display all lines fred,joe &amp;amp; dick &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 显示所有包含fred,joe 和 dick 的行 &lt;br /&gt;:g/\&amp;lt;fred\&amp;gt;/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : display all lines fred but not freddy &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示所有全字匹配 fred 的行 &lt;br /&gt;:g/&amp;lt;pattern&amp;gt;/z#.5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: display with context &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示上下文 &lt;br /&gt;:g/&amp;lt;pattern&amp;gt;/z#.5|echo "==========" &amp;nbsp;: display beautifully &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示得很漂亮 &lt;br /&gt;:g/^\s*$/d &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: delete all blank lines &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除所有的空行 &lt;br /&gt;:g!/^dd/d &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : delete lines not containing string &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除所有行首不是 dd 的行 &lt;br /&gt;:v/^dd/d &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: delete lines not containing string &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 同上 &lt;br /&gt;:g/fred/,/joe/d &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : not line based (very powerfull) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;并不基于行(非常强大) &lt;br /&gt;:g/{/ ,/}/- s/\n\+/\r/g &amp;nbsp; &amp;nbsp; : Delete empty lines but only between {...} &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;删除在 {...} 只见的空行 &lt;br /&gt;:v/./.,/./-1join &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: compress empty lines &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;压缩空行 &lt;br /&gt;:g/^$/,/./-j &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: compress empty lines &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;压缩空行 &lt;br /&gt;:g/&amp;lt;input\|&amp;lt;form/p &amp;nbsp; &amp;nbsp;: ORing &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;不懂 &lt;br /&gt;:g/^/pu _ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : double space file (pu = put) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;把文件中空行增加一倍 &lt;br /&gt;:g/^/m0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Reverse file (m = move) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;翻转文件 &lt;br /&gt;:g/fred/t$ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: copy lines matching fred to EOF &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;把匹配 fred 的行拷贝到文件最后 &lt;br /&gt;:g/stage/t'a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: copy lines matching stage to marker a &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;把匹配 stage 的行做标记a &lt;br /&gt;:%norm jdd &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: delete every other line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;隔一行删除一行 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# incrementing numbers (type &amp;lt;c-a&amp;gt; as 5 characters) &lt;br /&gt;:.,$g/^\d/exe "norm! \&amp;lt;c-a&amp;gt;": increment numbers &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 增加每行行首的数字 &lt;br /&gt;:'a,'bg/\d\+/norm! ^A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: increment numbers &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 增加标记 a 到标记 b 只见每行行首的数字 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# storing glob results (note must use APPEND) &lt;br /&gt;# 保存全局命令的结果 (注意必须使用添加模式) &lt;br /&gt;:g/fred/y A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : append all lines fred to register a &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;添加所有为fred所匹配的行到register a &lt;br /&gt;:'a,'b g/^Error/ . w &amp;gt;&amp;gt; errors.txt &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# duplicate every line in a file wrap a print '' around each duplicate &lt;br /&gt;# 复制每一行，然后在复制出来的每一行两侧加上一个 print '复制出来的内容' &lt;br /&gt;:g/./yank|put|-1s/'/"/g|s/.*/Print '&amp;amp;'/ &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# replace string with contents of a file, -d deletes the "mark" &lt;br /&gt;# 用文件中的内容替换字符串，-d 表示删除“标记” &lt;br /&gt;:g/^MARK$/r tmp.ex | -d &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Global combined with substitute (power editing) &lt;br /&gt;# 全局命令和替换命令联姻 (强大的编辑能力) &lt;br /&gt;:'a,'bg/fred/s/joe/susan/gic : &amp;nbsp;can use memory to extend matching &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;可以使用反向引用来匹配 &lt;br /&gt;:g/fred/,/joe/s/fred/joe/gic : &amp;nbsp;non-line based (ultra) &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Find fred before beginning search for joe &lt;br /&gt;# 先找fred，然后找joe &lt;br /&gt;:/fred/;/joe/-2,/sid/+3s/sally/alley/gIC &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Absolutely essential &lt;br /&gt;# 基础 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;* # g* g# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : find word under cursor (&amp;lt;cword&amp;gt;) (forwards/backwards) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;寻找光标处的狭义单词(&amp;lt;cword&amp;gt;) (前向/后向) &lt;br /&gt;% &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : match brackets {}[]() &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;括号配对寻找 {}[]() &lt;br /&gt;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : repeat last modification &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;matchit.vim &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : % now matches tags &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;script&amp;gt; &amp;lt;?php etc &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;使得 % 能够配对标记 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;script&amp;gt; &amp;lt;?php 等等 &lt;br /&gt;&amp;lt;C-N&amp;gt;&amp;lt;C-P&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: word completion in insert mode &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;插入模式下的单词自动完成 &lt;br /&gt;&amp;lt;C-X&amp;gt;&amp;lt;C-L&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Line complete SUPER USEFUL &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;行自动完成(超级有用) &lt;br /&gt;/&amp;lt;C-R&amp;gt;&amp;lt;C-W&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Pull &amp;lt;cword&amp;gt; onto search/command line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;把狭义单词 &amp;lt;cword&amp;gt; 写到 搜索命令行 &lt;br /&gt;/&amp;lt;C-R&amp;gt;&amp;lt;C-A&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Pull &amp;lt;CWORD&amp;gt; onto search/command line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;把广义单词 &amp;lt;cWORD&amp;gt; 写到 搜索命令行 &lt;br /&gt;:set ignorecase &amp;nbsp; &amp;nbsp; : you nearly always want this &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;搜索时忽略大小写 &lt;br /&gt;:syntax on &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: colour syntax in Perl,HTML,PHP etc &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;在 Perl,HTML,PHP 等中进行语法着色 &lt;br /&gt;:h regexp&amp;lt;C-D&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;: type control-D and get a list all help topics containing &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 按下 control-D 键即可得到包含有 regexp 的帮助主题的列表 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regexp (plus use TAB to Step thru list) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(使用TAB可以实现帮助的自动补齐) &lt;br /&gt;---------------------------------------- &lt;br /&gt;# MAKE IT EASY TO UPDATE/RELOAD _vimrc &lt;br /&gt;# 使更新 _vimrc 更容易 &lt;br /&gt;:nmap ,s :source $VIM/_vimrc &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：nmap 是绑定一个在normal模式下的快捷键 &lt;br /&gt;:nmap ,v :e $VIM/_vimrc &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：在normal模式下，先后按下 ,s 两个键执行_vimrc，而 ,v 则是编辑_vimrc &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;#VISUAL MODE (easy to add other HTML Tags) &lt;br /&gt;# visual 模式 (例子是：轻松添加其他的 HTML Tags) &lt;br /&gt;:vmap sb "zdi&amp;lt;b&amp;gt;&amp;lt;C-R&amp;gt;z&amp;lt;/b&amp;gt;&amp;lt;ESC&amp;gt; &amp;nbsp;: wrap &amp;lt;b&amp;gt;&amp;lt;/b&amp;gt; around VISUALLY selected Text &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 在visual模式下选中的文字前后分别 &lt;br /&gt;加上&amp;lt;b&amp;gt;和&amp;lt;/b&amp;gt; &lt;br /&gt;:vmap st "zdi&amp;lt;?= &amp;lt;C-R&amp;gt;z ?&amp;gt;&amp;lt;ESC&amp;gt; &amp;nbsp;: wrap &amp;lt;?= &amp;nbsp; ?&amp;gt; around VISUALLY selected Text &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;在visual模式下选中的文字前后分别加 &lt;br /&gt;上&amp;lt;?= 和 ?&amp;gt; &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Exploring &lt;br /&gt;# 文件浏览 &lt;br /&gt;:Exp(lore) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: file explorer note capital Ex &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;开启目录浏览器，注意首字母E是大写的 &lt;br /&gt;:Sex(plore) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : file explorer in split window &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;在一个分割的窗口中开启目录浏览器 &lt;br /&gt;:ls &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : list of buffers &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示当前buffer的情况 &lt;br /&gt;:cd .. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: move to parent directory &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;进入父目录 &lt;br /&gt;:args &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : list of files &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示目前打开的文件 &lt;br /&gt;:lcd %:p:h &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: change to directory of current file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;更改到当前文件所在的目录 &lt;br /&gt;:autocmd BufEnter * lcd %:p:h &amp;nbsp; : change to directory of current file &lt;br /&gt;automatically (put in _vimrc) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;自动更改到当前文件所在的目录 (放到 _vimrc) &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Buffer Explorer (Top Ten Vim Script) &lt;br /&gt;# 缓冲区(buffer)浏览器 (第三方的一个最流行的脚本) &lt;br /&gt;# needs bufexplorer.vim &amp;nbsp;&lt;a href="http://www.vim.org/script.php?script_id=42" target="_blank" rel="nofollow"&gt;&lt;font color="#0000ff"&gt;http://www.vim.org/script.php?script_id=42&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;# 需要下载 bufexplorer.vim &lt;br /&gt;\be &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : buffer explorer list of buffers &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;在缓冲区浏览器中打开缓冲区列表 &lt;br /&gt;\bs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : buffer explorer (split window) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;以分割窗口的形式打开缓冲区浏览器 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Changing Case &lt;br /&gt;guu &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : lowercase line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;行小写 &lt;br /&gt;gUU &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : uppercase line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;行大写 &lt;br /&gt;Vu &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: lowercase line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;行小写 &lt;br /&gt;VU &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: uppercase line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;行大写 &lt;br /&gt;g~~ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : flip case line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;行翻转 &lt;br /&gt;vEU &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Upper Case Word &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;字大写(狭义字) &lt;br /&gt;vE~ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Flip Case Word &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;字翻转(狭义字) &lt;br /&gt;ggguG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : lowercase entire file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;把整个文章全部小写 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Titlise Visually Selected Text (map for .vimrc) &lt;br /&gt;vmap ,c :s/\&amp;lt;\(.\)\(\k*\)\&amp;gt;/\u\1\L\2/g&amp;lt;CR&amp;gt; &lt;br /&gt;# Uppercase first letter of sentences &lt;br /&gt;# 大写所有句子的第一个字母 &lt;br /&gt;:%s/[.!?]\_s\+\a/\U&amp;amp;\E/g &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;gf &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: open file name under cursor (SUPER) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;取当前光标处的广义字作为文件名，然后试图打开它！ &lt;br /&gt;ga &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: display hex,ascii value of char under cursor &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示光标处字符的ascii,hex,oct,... &lt;br /&gt;ggVGg? &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: rot13 whole file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;用rot13编码整个文件 &lt;br /&gt;ggg?G &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : rot13 whole file (quicker for large file) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;用rot13编码整个文件(对大文件更快一些) &lt;br /&gt;:8 | normal VGg? &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: rot13 from line 8 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;从第8行开始，用rot13编码后面的文本 &lt;br /&gt;:normal 10GVGg? &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : rot13 from line 8 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;从第8行开始，用rot13编码后面的文本 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# 【关于rot13——谁让英文是偶数个字母啊】 &lt;br /&gt;# ROT13 是一种简单的编码，它把字母分成前后两组，每组13个，编码和解码 &lt;br /&gt;# 的算法相同，仅仅交换字母的这两个部分，即：[a..m] --&amp;gt; [n..z] 和 [n..z] &lt;br /&gt;# --&amp;gt; [a..m] 。 ROT13 用简易的手段使得信件不能直接被识别和阅 &lt;br /&gt;# 读，也不会被搜索匹配程序用通常的方法直接找到。经常用于 USENET 中发表一 &lt;br /&gt;# 些攻击性或令人不快的言论或有简单保密需要的文章。 &lt;br /&gt;# 由于 ROT13 是自逆算法，所以，解码和编码是同一个过程。 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;&amp;lt;C-A&amp;gt;,&amp;lt;C-X&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : increment,decrement number under cursor &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;增加,减少 光标处的狭义字所表示的数字 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;win32 users must remap CNTRL-A &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Win32的用户可能需要重新定义一下Ctrl-A &lt;br /&gt;&amp;lt;C-R&amp;gt;=5*5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: insert 25 into text (mini-calculator) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;插入25 (一个迷你计算器) &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Makes all other tips superfluous &lt;br /&gt;:h 42 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: also &lt;a href="http://www.google.com/search?q=42" target="_blank" rel="nofollow"&gt;&lt;font color="#0000ff"&gt;http://www.google.com/search?q=42&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;:h holy-grail &lt;br /&gt;:h! &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Markers &amp;amp; moving about &lt;br /&gt;# 标记和移动 &lt;br /&gt;'. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : jump to last modification line (SUPER) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 跳到最后修改的那一行 (超级有用) &lt;br /&gt;`. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : jump to exact spot in last modification line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 不仅跳到最后修改的那一行，还要定位到修改点 &lt;br /&gt;g; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : cycle thru recent changes (oldest first) (new in vim6.3) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 循环跳转修改点(从最老的修改点开始) (vim6.3中新增) &lt;br /&gt;g, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : reverse direction (new in vim6.3) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 反向循环跳转修改点 (vim6.3中新增) &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;:changes &lt;br /&gt;:h changelist &amp;nbsp; &amp;nbsp;: help for above &lt;br /&gt;&amp;lt;C-O&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: retrace your movements in file (starting from most recent) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;依次沿着你的跳转记录向回跳 (从最近的一次开始) &lt;br /&gt;&amp;lt;C-I&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: retrace your movements in file (reverse direction) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;依次沿着你的跳转记录向前跳 &lt;br /&gt;:ju(mps) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : list of your movements &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 列出你跳转的足迹 &lt;br /&gt;:help jump-motions &lt;br /&gt;:history &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : list of all your commands &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 列出历史命令记录 &lt;br /&gt;:his c &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : commandline history &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 命令行命令历史 &lt;br /&gt;:his s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : search history &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 搜索命令历史 &lt;br /&gt;q/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Search history Window &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 搜索命令历史的窗口 &lt;br /&gt;q: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : commandline history Window &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 命令行命令历史的窗口 &lt;br /&gt;:&amp;lt;C-F&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: history Window &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 历史命令记录的窗口 &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Abbreviations &amp;amp; maps &lt;br /&gt;# # 缩写和键盘映射 &lt;br /&gt;:map &amp;nbsp; &amp;lt;f7&amp;gt; &amp;nbsp; :'a,'bw! c:/aaa/x &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：map是映射一个normal模式下的键 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 这里是把F7键映射成把标记a到标记b中间的内容另存为一个文件/aaa/x &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 标记(mark)的方法：把光标移动到需要标记的地方，输入m，然后输 &lt;br /&gt;入标记名，例如a &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 引用标记的方法：'a ，即：单引号加标记名 &lt;br /&gt;:map &amp;nbsp; &amp;lt;f8&amp;gt; &amp;nbsp; :r c:/aaa/x &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：把F8键映射成在当前位置插入文件/aaa/x的内容 &lt;br /&gt;:map &amp;nbsp; &amp;lt;f11&amp;gt; &amp;nbsp;:.w! c:/aaa/xr&amp;lt;CR&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：.（点号）表示当前行 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 所以F11就是把当前行存为/aaa/xr &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 最后的&amp;lt;CR&amp;gt;表示一个回车 &lt;br /&gt;:map &amp;nbsp; &amp;lt;f12&amp;gt; &amp;nbsp;:r c:/aaa/xr&amp;lt;CR&amp;gt; &lt;br /&gt;:ab php &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: list of abbreviations beginning php &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 列出php表示的缩写 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：定义一个缩写使用：:iab hm hmisty &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 一个有趣的现象是，它列出的会是php和它的前子串开头的缩写 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 例如，有这么几个缩写： &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # h =&amp;gt; hmisty1 , hm =&amp;gt; hmisty2 , hmi =&amp;gt; hmisty3, m =&amp;gt; hmisty4 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 那么使用 :ab hm会显示这么几个缩写：hm 和 h &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 而不是你想象中的 hm 和 hmi &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;:map , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : list of maps beginning , &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 列出以逗号开始的键盘映射 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# allow use of F10 for mapping (win32) &lt;br /&gt;# 允许 F10 的映射用法 (win32) &lt;br /&gt;set wak=no &amp;nbsp; &amp;nbsp; &amp;nbsp; : :h winaltkeys &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 参见 :h winaltkeys &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# For use in Maps &lt;br /&gt;# 在键盘映射中常用的表示 &lt;br /&gt;&amp;lt;CR&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : carriage Return for maps &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;回车 &lt;br /&gt;&amp;lt;ESC&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Escape &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ESC &lt;br /&gt;&amp;lt;LEADER&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : normally \ &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;转义符号 \ &lt;br /&gt;&amp;lt;BAR&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: | pipe &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;管道符号 &lt;br /&gt;&amp;lt;BACKSPACE&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;: backspace &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;退格符号 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# display RGB colour under the cursor eg #445588 &lt;br /&gt;# 显示光标下数值的 RGB 颜色 &lt;br /&gt;:nmap &amp;lt;leader&amp;gt;c :hi Normal guibg=#&amp;lt;c-r&amp;gt;=expand("&amp;lt;cword&amp;gt;")&amp;lt;cr&amp;gt;&amp;lt;cr&amp;gt; &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Using a register as a map (preload registers in .vimrc) &lt;br /&gt;:let @m=":'a,'bs/" &lt;br /&gt;:let @s=":%!sort -u" &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;# List your Registers &lt;br /&gt;# 列出寄存器(Registers) &lt;br /&gt;:reg &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : display contents of all registers &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示所有寄存器的内容 &lt;br /&gt;:reg a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : display content of individual registers &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 显示 a 寄存器的内容 &lt;br /&gt;"1p.... &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: retrieve numeric registers one by one &lt;br /&gt;:let @y='yy@"' &amp;nbsp; : pre-loading registers (put in .vimrc) &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Useful tricks &lt;br /&gt;# 有用的窍门 &lt;br /&gt;"ayy@a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : execute "Vim command" in a text file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把当前行作为一个Vim命令来执行 &lt;br /&gt;yy@" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : same thing using unnamed register &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 同上，不过是用匿名寄存器 &lt;br /&gt;u@. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: execute command JUST typed in &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 只执行键入的命令 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Get output from other commands (requires external programs) &lt;br /&gt;# 从其他程序获取输出 (需要外部程序) &lt;br /&gt;:r!ls.exe &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: reads in output of ls &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 读取ls的输出到当前位置 &lt;br /&gt;!!date &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : same thing (but replaces/filters current line) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 读取date的输出 (但是会替换当前行的内容) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：其实你输入了!!后，vim就自动转换到 :.! 等待你继续输入 &lt;br /&gt;# Sorting with external sort &lt;br /&gt;# 使用外部程序sort进行排序(sort是Unix标准命令，ls,date也是) &lt;br /&gt;:%!sort -u &amp;nbsp; &amp;nbsp; &amp;nbsp; : use an external program to filter content &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 使用sort程序排序整个文件（用结果重写文件） &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：%表示整个文件的所有行 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # !sort表示执行外部命令sort &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # -u是sort的参数，man sort看看，这个参数的意义是合并相同的行 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # u就是unique,如果两行内容相同，则结果中只保留一行的说 &lt;br /&gt;:'a,'b!sort -u &amp;nbsp; : use an external program to filter content &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 对mark a 到mark b中间的内容进行排序 &lt;br /&gt;!1} sort -u &amp;nbsp; &amp;nbsp; &amp;nbsp;: sorts paragraph (note normal mode!!) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 排序当前段落 (只能在normal模式下使用!!) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译释：!表示使用filter，1}表示filter的对象是从当前行开始向后 &lt;br /&gt;数一段 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 段落指到空行处结束，不包括空行 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 其实你一旦输入 !1}，vim就自动计算当前段落应该到那一行(eg.+ &lt;br /&gt;5)，然后生成 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # :.,.+5! 等待之后输入sort -u，回车，完成操作 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # .表示当前行，.+5当然就是当前行向后数5行 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Multiple Files Management (Essential) &lt;br /&gt;# 多文档操作 (基础) &lt;br /&gt;:bn &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: goto next buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 跳转到下一个buffer &lt;br /&gt;:bp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: goto previous buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 跳转到上一个buffer &lt;br /&gt;:wn &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: save file and move to next (super) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 存盘当前文件并跳转到下一个 &lt;br /&gt;:wp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: save file and move to previous &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 存盘当前文件并跳转到上一个 &lt;br /&gt;:bd &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: remove file from buffer list (super) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把这个文件从buffer列表中做掉 &lt;br /&gt;:bun &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Buffer unload (remove window but not from list) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 卸掉buffer (关闭这个buffer的窗口但是不把它从列表中做掉) &lt;br /&gt;:badd file.c &amp;nbsp; &amp;nbsp; : file from buffer list &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把文件file.c添加到buffer列表 &lt;br /&gt;:b 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : go to buffer 3 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 跳到第3个buffer &lt;br /&gt;:b main &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: go to buffer with main in name eg main.c (ultra) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 跳到一个名字中包含main的buffer,例如main.c &lt;br /&gt;:sav php.html &amp;nbsp; &amp;nbsp;: Save current file as php.html and "move" to php.html &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把当前文件存为php.html并打开php.html &lt;br /&gt;:sav! %&amp;lt;.bak &amp;nbsp;: Save Current file to alternative extension &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 换一个后缀保存 &lt;br /&gt;:sav! %:r.cfm &amp;nbsp; &amp;nbsp;: Save Current file to alternative extension &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;:e! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: return to unmodified file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 返回到修改之前的文件(修改之后没有存盘) &lt;br /&gt;:w c:/aaa/% &amp;nbsp; &amp;nbsp; &amp;nbsp;: save file elsewhere &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把文件存到一个地儿 &lt;br /&gt;:e # &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : edit alternative file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 编辑标记为#的buffer(这个buffer必须含有一个可编辑的文件) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 用ls命令就能看到哪一个buffer有# &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # %a表示当前正在编辑的buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # u 表示不能编辑或者已经被做掉的buffer &lt;br /&gt;:rew &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : return to beginning of editted files list (:args) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 回到第一个可编辑的文件 &lt;br /&gt;:brew &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: buffer rewind &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 回到第一个buffer &lt;br /&gt;:sp fred.txt &amp;nbsp; &amp;nbsp; : open fred.txt into a split &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 在一个水平分割的窗口中打开文件fred.txt # 译注：vs fred.txt可 &lt;br /&gt;以实现垂直分割 &lt;br /&gt;:sball,:sb &amp;nbsp; &amp;nbsp; &amp;nbsp; : Split all buffers (super) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把当前所有含有可编辑文件的buffer显示到一个分割窗口中 &lt;br /&gt;:scrollbind &amp;nbsp; &amp;nbsp; &amp;nbsp;: in each split window &lt;br /&gt;:map &amp;nbsp; &amp;lt;F5&amp;gt; :ls&amp;lt;CR&amp;gt;:e # : Pressing F5 lists all buffer, just type number &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;在normal模式下按F5键，则会显示所有含有一个 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;可编辑文件的buffer，然后提示你输入buffer的序号， &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;输入后回车，则编辑这个buffer &lt;br /&gt;:set hidden &amp;nbsp; &amp;nbsp; &amp;nbsp;: Allows to change buffer w/o saving current buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 允许不保存buffer而切换buffer (w/o=without) &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Quick jumping between splits &lt;br /&gt;# 在分割窗口中快速切换 &lt;br /&gt;:map &amp;lt;C-J&amp;gt; &amp;lt;C-W&amp;gt;j&amp;lt;C-W&amp;gt;_ &lt;br /&gt;# 这是一个键盘绑定，把Ctrl-J定义成切换到下一个窗口并最大化 &lt;br /&gt;:map &amp;lt;C-K&amp;gt; &amp;lt;C-W&amp;gt;k&amp;lt;C-W&amp;gt;_ &lt;br /&gt;# 这是一个键盘绑定，把Ctrl-K定义成切换到上一个窗口并最大化 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;# Recording (BEST TIP of ALL) &lt;br /&gt;# 命令录制 (最佳技巧) &lt;br /&gt;qq &amp;nbsp;# record to q &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;录制到q &lt;br /&gt;your complex series of commands &amp;nbsp;# 输入一系列复杂的指令 &lt;br /&gt;q &amp;nbsp; # end recording &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;再次按q停止录制 &lt;br /&gt;@q &amp;nbsp;# to execute &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;执行q中存储的指令 &lt;br /&gt;@@ &amp;nbsp;# to Repeat &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;重复执行 &lt;br /&gt;5@@ # to Repeat 5 times &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;重复执行5遍 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# editing a register/recording &lt;br /&gt;# 编辑寄存器/录制 &lt;br /&gt;"qp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:display contents of register q (normal mode) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示寄存器 q 的内容 (普通模式) &lt;br /&gt;&amp;lt;ctrl-R&amp;gt;q &amp;nbsp; :display contents of register q (insert mode) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 显示寄存器 q 的内容 (插入模式) &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# you can now see recording contents, edit as required &lt;br /&gt;# 你现在可以看到记录内容，随便编辑 &lt;br /&gt;"qdd &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :put changed contacts back into q &lt;br /&gt;@q &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :execute recording/register q &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;执行记录/寄存器 q &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Operating a Recording on a Visual BLOCK &lt;br /&gt;# 在可视块中运行记录 &lt;br /&gt;1) define recording/register &lt;br /&gt;1) 定义记录/寄存器 &lt;br /&gt;qq:s/ to/ from/g^Mq &lt;br /&gt;2) Define Visual BLOCK &lt;br /&gt;2) 定义可视块 &lt;br /&gt;V} &lt;br /&gt;3) hit : and the following appears &lt;br /&gt;3) 键入 : 将显示下面信息 &lt;br /&gt;:'&amp;lt;,'&amp;gt; &lt;br /&gt;4)Complete as follows &lt;br /&gt;4) 完成如下操作 &lt;br /&gt;:'&amp;lt;,'&amp;gt;norm @q &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Visual is the newest and usually the BEST editting mode &lt;br /&gt;# 可视模式是最新也通常是最好的编辑模式 &lt;br /&gt;# Visual basics &lt;br /&gt;# 可视模式基础 &lt;br /&gt;v &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: enter visual mode &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 进入可视模式 &lt;br /&gt;V &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: visual mode whole line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 整行的可视模式 &lt;br /&gt;&amp;lt;C-V&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; : enter VISUAL BLOCK mode &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 进入可视块模式 &lt;br /&gt;gv &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : reselect last visual area &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 重新选取最新的可视区域 &lt;br /&gt;o &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: navigate visual area &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 浏览可视区域 &lt;br /&gt;"*y &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: yank visual area into paste buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 复制可视区域到剪贴板 &lt;br /&gt;V% &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : visualise what you match &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ??? &lt;br /&gt;V}J &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Join Visual block (great) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 连接可视块 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Delete first 2 characters of 10 successive lines &lt;br /&gt;# 删除连续10行中每行的头2个字符 &lt;br /&gt;0&amp;lt;c-v&amp;gt;10j2ld &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# how to copy a set of columns using VISUAL BLOCK &lt;br /&gt;# 如何用可视块拷贝几列 &lt;br /&gt;# visual block (AKA columnwise selection) (NOT BY ordinary v command) &lt;br /&gt;# 可视块(并非通常的 v 命令) &lt;br /&gt;&amp;lt;C-V&amp;gt; then select "column(s)" with motion commands (win32 &amp;lt;C-Q&amp;gt;) &lt;br /&gt;&amp;lt;C-V&amp;gt;，然后通过移动命令选择列 (win32 &amp;lt;C-Q&amp;gt;) &lt;br /&gt;then c,d,y,r etc &lt;br /&gt;然后执行 c,d,y,r 等命令 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;# _vimrc essentials &lt;br /&gt;# _vimrc基础 &lt;br /&gt;:set incsearch : jumps to search word as you type (annoying but excellent) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 实时匹配你输入的内容 &lt;br /&gt;:set wildignore=*.o,*.obj,*.bak,*.exe : tab complete now ignores these &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tab键的自动完成现在会忽略这些 &lt;br /&gt;:set shiftwidth=3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : for shift/tabbing &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;自动缩进设为4个字符 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 译注：一个tab位通常是8个字符 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 所以，我们还要设定 :set tabstop=4，这 &lt;br /&gt;样，所有的缩进都是4字符了 &lt;br /&gt;:set vb t_vb=". &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : set silent (no beep) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;沉默方式(不要叫beep！) &lt;br /&gt;:set browsedir=buffer &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Maki GUI File Open use current directory &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;设置 GUI 版本文件打开时，使用当前路径 &lt;br /&gt;---------------------------------------- &lt;br /&gt;# launching Win IE &lt;br /&gt;# 加载 IE 浏览器 &lt;br /&gt;:nmap ,f :update&amp;lt;CR&amp;gt;:silent !start c:\progra~1\intern~1\iexplore.exe file://%:p&amp;lt;CR&amp;gt; &lt;br /&gt;:nmap ,i :update&amp;lt;CR&amp;gt;: !start c:\progra~1\intern~1\iexplore.exe &amp;lt;cWORD&amp;gt;&amp;lt;CR&amp;gt; &lt;br /&gt;# 译释：nmap是做一个normal模式下的键盘绑定 &lt;br /&gt;# 这里绑定了一个逗号命令 ,f &lt;br /&gt;# :update是写这个文件，与:w不同，它只有当文件被修改了的时候才写 &lt;br /&gt;# :silent别让弹出窗口报告执行结果 &lt;br /&gt;# !...后面就是执行windows命令了。呵呵，去问bill gates什么意思吧。 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# FTPing from VIM &lt;br /&gt;# 用 VIM 通过 ftp 编辑文件 &lt;br /&gt;:cmap ,r &amp;nbsp;:Nread &lt;a href="ftp://209.51.134.122/public_html/index.html" target="_blank" rel="nofollow"&gt;&lt;font color="#0000ff"&gt;ftp://209.51.134.122/public_html/index.html&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;:cmap ,w &amp;nbsp;:Nwrite &lt;a href="ftp://209.51.134.122/public_html/index.html" target="_blank" rel="nofollow"&gt;&lt;font color="#0000ff"&gt;ftp://209.51.134.122/public_html/index.html&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;gvim &lt;a href="ftp://209.51.134.122/public_html/index.html" target="_blank" rel="nofollow"&gt;&lt;font color="#0000ff"&gt;ftp://209.51.134.122/public_html/index.html&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;# 译注：cmap是命令(command)模式绑定 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# appending to registers (use CAPITAL) &lt;br /&gt;# 附加到一个register (用大写的register名字) &lt;br /&gt;"a5yy &amp;nbsp; #复制5行到a中 &lt;br /&gt;10j &amp;nbsp; &amp;nbsp; #下移10行 &lt;br /&gt;"A5yy &amp;nbsp; #再添加5行到a中 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;[I &amp;nbsp; &amp;nbsp; : show lines matching word under cursor &amp;lt;cword&amp;gt; (super) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 显示光标处的狭义字可以匹配的行(高级指令) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 译注：# 可以全文查找与光标处的狭义字相匹配的字， &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 这在查找函数原型和实现，或者变量使用的时候很有用 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Conventional Shifting/Indenting &lt;br /&gt;# 常规缩进 &lt;br /&gt;:'a,'b&amp;gt;&amp;gt; &amp;nbsp; # 把mark a到mark b之间的内容缩进两次 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# visual shifting (builtin-repeat) &lt;br /&gt;# 在visual模式下缩进 (无限可重复) &lt;br /&gt;:vnoremap &amp;lt; &amp;lt;gv &lt;br /&gt;# 译释：:vnoremap 重定义了visual模式下 &amp;lt; 符号的含义 &lt;br /&gt;# 把它定义成 &amp;lt;gv &lt;br /&gt;# 即：先&amp;lt;向外缩进，然后gv重新选择上一次选择了的区域 &lt;br /&gt;# 这样在visual模式下就可以实现连续按&amp;lt;而连续缩进了 &lt;br /&gt;:vnoremap &amp;gt; &amp;gt;gv &lt;br /&gt;# 同里，内缩 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Block shifting (magic) &lt;br /&gt;# 块缩进 &lt;br /&gt;&amp;nbsp;&amp;gt;i{ &lt;br /&gt;&amp;nbsp;&amp;gt;a{ &lt;br /&gt;# also &lt;br /&gt;&amp;nbsp;&amp;gt;% and &amp;lt;% &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Redirection &amp;amp; Paste register * &lt;br /&gt;# 重定向到剪贴板和从剪贴板粘贴 &lt;br /&gt;:redir @* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: redirect commands to paste buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 重定向命令的输出结果（最下方命令行上的结果） &lt;br /&gt;:redir END &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : end redirect &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 结束重定向 &lt;br /&gt;:redir &amp;gt;&amp;gt; out.txt &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: redirect to a file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 重定向到一个文件 &lt;br /&gt;# Working with Paste buffer &lt;br /&gt;# 操作剪贴板 &lt;br /&gt;"*yy &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : yank to paste &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 复制到剪贴板中 &lt;br /&gt;"*p &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: insert from paste buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 从剪贴板中粘贴 &lt;br /&gt;# yank to paste buffer (ex mode) &lt;br /&gt;# 拷贝到剪贴板 (ex 模式) &lt;br /&gt;:'a,'by* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Yank range into paste &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把标记a到标记b见的内容拷贝到剪贴板 &lt;br /&gt;:%y* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Yank whole buffer into paste &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把整个文件拷贝到剪贴板 &lt;br /&gt;# filter non-printable characters from the paste buffer &lt;br /&gt;# 从剪贴板上过滤非可打印字符 &lt;br /&gt;# useful when pasting from some gui application &lt;br /&gt;# 当从一些 GUI 程序粘贴时会有用处 &lt;br /&gt;:nmap &amp;lt;leader&amp;gt;p :let @* = substitute(@*,'[^[:print:]]','','g')&amp;lt;cr&amp;gt;"*p &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Re-Formatting text &lt;br /&gt;# 重新格式化文本 &lt;br /&gt;gq} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Format a paragraph &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 格式化一个段落 &lt;br /&gt;ggVGgq &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Reformat entire file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 重新格式化整个文件 &lt;br /&gt;Vgq &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: current line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 格式化当前行 &lt;br /&gt;# break lines at 70 chars, if possible after a ; &lt;br /&gt;# 在70列的时候换行 &lt;br /&gt;:s/.\{,69\};\s*\|.\{,69\}\s\+/&amp;amp;\r/g &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Operate command over multiple files &lt;br /&gt;# 对多个文档实施命令 &lt;br /&gt;:argdo %s/foo/bar/e &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: operate on all files in :args &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 对所有:args列表中的文档执行命令 &lt;br /&gt;:bufdo %s/foo/bar/e &lt;br /&gt;:windo %s/foo/bar/e &lt;br /&gt;:argdo exe '%!sort'|w! &amp;nbsp; &amp;nbsp; &amp;nbsp; : include an external command &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 使用外部命令 &lt;br /&gt;:bufdo /foo/ &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Command line tricks &lt;br /&gt;# 命令行上的技巧 &lt;br /&gt;gvim -h &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: help &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 启动帮助 &lt;br /&gt;ls | gvim - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: edit a stream!! &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 编辑一个数据流 &lt;br /&gt;cat xx | gvim - -c "v/^\d\d\|^[3-9]/d " : filter a stream &lt;br /&gt;gvim -o file1 file2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: open into a split &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 以分割窗口打开两个文件 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# execute one command after opening file &lt;br /&gt;# 指出打开之后执行的命令 &lt;br /&gt;gvim.exe -c "/main" joe.c &amp;nbsp;: Open joe.c &amp;amp; jump to "main" &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# execute multiple command on a single file &lt;br /&gt;# 对一个文件执行多个命令 &lt;br /&gt;vim -c "%s/ABC/DEF/ge | update" file1.c &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# execute multiple command on a group of files &lt;br /&gt;# 对一组文件执行多个命令 &lt;br /&gt;vim -c "argdo %s/ABC/DEF/ge | update" *.c &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# remove blocks of text from a series of files &lt;br /&gt;# 从一组文件中删除文本块 &lt;br /&gt;vim -c "argdo /begin/+1,/end/-1g/^/d | update" *.c &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Automate editting of a file (Ex commands in convert.vim) &lt;br /&gt;# 自动编辑文件 (编辑命令序列Ex commands已经包含在convert.vim中了) &lt;br /&gt;vim -s "convert.vim" file.c &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;#load VIM without .vimrc and plugins (clean VIM) &lt;br /&gt;# 不要加载.vimrc和任何plugins (启动一个干净的VIM) &lt;br /&gt;gvim -u NONE -U NONE -N &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Access paste buffer contents (put in a script/batch file) &lt;br /&gt;# 读取剪贴板内容 (放到脚本或批处理文件中) &lt;br /&gt;gvim -c 'normal ggdG"*p' c:/aaa/xp &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# print paste contents to default printer &lt;br /&gt;# 把剪贴板内容打印到默认打印机 &lt;br /&gt;gvim -c 's/^/\=@*/|hardcopy!|q!' &lt;br /&gt;---------------------------------------- &lt;br /&gt;# GVIM Difference Function (Brilliant) &lt;br /&gt;gvim -d file1 file2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: vimdiff (compare differences) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vimdiff (比较不同) &lt;br /&gt;dp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : "put" difference under cursor to other file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 把光标处的不同放到另一个文件 &lt;br /&gt;do &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : "get" difference under cursor from other file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 在光标处从另一个文件取得不同 &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Vim traps &lt;br /&gt;# Vim陷阱 &lt;br /&gt;In regular expressions you must backslash + (match 1 or more) &lt;br /&gt;In regular expressions you must backslash | (or) &lt;br /&gt;In regular expressions you must backslash ( (group) &lt;br /&gt;In regular expressions you must backslash { (count) &lt;br /&gt;# 在vim的正则表达式中， + | ( { 前都必须加转义符 \ &lt;br /&gt;/fred\+/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : matches fred/freddy but not free &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 匹配fred或freddy但是不匹配free &lt;br /&gt;/\(fred\)\{2,3}/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : note what you have to break &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ??? &lt;br /&gt;---------------------------------------- &lt;br /&gt;# \v or very magic (usually) reduces backslashing &lt;br /&gt;# \v ，或叫做very magic (通常都是这么叫)可以取消转义符 &lt;br /&gt;/codes\(\n\|\s\)*where &amp;nbsp;: normal regexp &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;普通的正则表达式 &lt;br /&gt;/\vcodes(\n|\s)*where &amp;nbsp; : very magic &lt;br /&gt;---------------------------------------- &lt;br /&gt;# pulling objects onto command/search line (SUPER) &lt;br /&gt;# 把东西送到命令行/搜索行 (SUPER) &lt;br /&gt;&amp;lt;C-R&amp;gt;&amp;lt;C-W&amp;gt; : pull word under the cursor into a command line or search &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 送一个狭义词 &lt;br /&gt;&amp;lt;C-R&amp;gt;&amp;lt;C-A&amp;gt; : pull WORD under the cursor into a command line or search &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 送一个广义词 &lt;br /&gt;&amp;lt;C-R&amp;gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: pull small register (also insert mode) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;送一个小型寄存器 (插入模式下也有效) &lt;br /&gt;&amp;lt;C-R&amp;gt;[0-9a-z] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : pull named registers (also insert mode) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 送一个命名寄存器 (插入模式下也有效) &lt;br /&gt;&amp;lt;C-R&amp;gt;% &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: pull file name (also #) (also insert mode) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 送文件名过去 (#也行) (插入模式下也有效) &lt;br /&gt;---------------------------------------- &lt;br /&gt;# manipulating registers &lt;br /&gt;# 操作寄存器 &lt;br /&gt;:let @a=@_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: clear register a &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;清空寄存器a &lt;br /&gt;:let @a="" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: clear register a &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;同上 &lt;br /&gt;:let @*=@a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: copy register a to paste buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;拷贝寄存器 a 的内容到剪贴板 &lt;br /&gt;map &amp;nbsp; &amp;lt;f11&amp;gt; "qyy:let @q=@q."zzz" &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# help for help &lt;br /&gt;# 关于帮助的帮助 &lt;br /&gt;:h quickref &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : VIM Quick Reference Sheet (ultra) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VIM 快速参考手册 (ultra) &lt;br /&gt;:h tips &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Vim's own Tips Help &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Vim自己的tips &lt;br /&gt;:h visual&amp;lt;C-D&amp;gt;&amp;lt;tab&amp;gt; &amp;nbsp; &amp;nbsp; : obtain &amp;nbsp;list of all visual help topics &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 得到一个关于visual关键字的帮助列表 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Then use tab to step thru them &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : 然后用tab键去选择 &lt;br /&gt;:h ctrl&amp;lt;C-D&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : list help of all control keys &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示所有关于Ctrl的帮助 &lt;br /&gt;:helpg uganda &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Help grep &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示 grep 帮助 &lt;br /&gt;:h :r &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : help for :ex command &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:ex冒号命令 &lt;br /&gt;:h CTRL-R &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : normal mode &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;普通模式命令 &lt;br /&gt;:h /\r &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: what's \r in a regexp (matches a &amp;lt;CR&amp;gt;) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\r在正则表达式中是什么意思呢？ &lt;br /&gt;:h \\zs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : double up backslash to find \zs in help &lt;br /&gt;:h i_CTRL-R &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : help for say &amp;lt;C-R&amp;gt; in insert mode &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;insert模式下的Ctrl-R &lt;br /&gt;:h c_CTRL-R &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : help for say &amp;lt;C-R&amp;gt; in command mode &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;命令行(command-line)模式下的Ctrl-R &lt;br /&gt;:h v_CTRL-V &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : visual mode &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;visual模式下的Ctrl-V &lt;br /&gt;:h tutor &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: VIM Tutor &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VIM 指南 &lt;br /&gt;&amp;lt;C-[&amp;gt;, &amp;lt;C-T&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Move back &amp;amp; Forth in HELP History &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;在帮助历史中，向前/后移动 &lt;br /&gt;gvim -h &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : VIM Command Line Help &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;关于 VIM 命令的帮助 &lt;br /&gt;---------------------------------------- &lt;br /&gt;# where was an option set &lt;br /&gt;# 选项设置在哪里？ &lt;br /&gt;:scriptnames &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: list all plugins, _vimrcs loaded (super) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;列出所有加载的 plugins, _vimrcs &lt;br /&gt;:verbose set history? &amp;nbsp; : reveals value of history and where set &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示history的值并指出设置文件的位置 &lt;br /&gt;:function &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : list functions &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;列出所有函数 &lt;br /&gt;:func SearchCompl &amp;nbsp; &amp;nbsp; &amp;nbsp; : List particular function &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 列出指定的函数 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# making your own VIM help &lt;br /&gt;# 制作你自己的VIM帮助 &lt;br /&gt;:helptags /vim/vim63/doc &amp;nbsp;: rebuild all *.txt help files in /doc &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;重建 /doc 中所有的 *.txt 帮助文件 &lt;br /&gt;:help add-local-help &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;# running file thru an external program (eg php) &lt;br /&gt;# 用外部程序来运行程序 (例如 php) &lt;br /&gt;map &amp;nbsp; &amp;lt;f9&amp;gt; &amp;nbsp; :w&amp;lt;CR&amp;gt;:!c:/php/php.exe %&amp;lt;CR&amp;gt; &lt;br /&gt;map &amp;nbsp; &amp;lt;f2&amp;gt; &amp;nbsp; :w&amp;lt;CR&amp;gt;:!perl -c %&amp;lt;CR&amp;gt; &lt;br /&gt;---------------------------------------- &lt;br /&gt;# capturing output of current script in a separate buffer &lt;br /&gt;# 在另一个buffer中，捕捉当前脚本的输出 &lt;br /&gt;:new | r!perl # &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : opens new buffer,read other buffer &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;新建一个buffer，从另一个buffer中读入结果 &lt;br /&gt;:new! x.out | r!perl # &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: same with named file &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 同上，并指定一个新文件名 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Inserting DOS Carriage Returns &lt;br /&gt;# 插入DOS换行符 &lt;br /&gt;:%s/nubian/&amp;lt;C-V&amp;gt;&amp;lt;C-M&amp;gt;&amp;amp;/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;nbsp;that's what you type &lt;br /&gt;:%s/nubian/&amp;lt;C-Q&amp;gt;&amp;lt;C-M&amp;gt;&amp;amp;/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;nbsp;for Win32 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 对于Win32应该这样 &lt;br /&gt;dn_t&lt;a href="http://groups.google.com/groups/unlock?msg=f72fba0645955101&amp;amp;_done=/group/Vim-cn/msg/f72fba0645955101" target="_parent"&gt;&lt;font color="#0000ff"&gt;...&lt;/font&gt;&lt;/a&gt;@yahoo.ca &lt;br /&gt;:%s/nubian/^M&amp;amp;/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;nbsp;what you'll see where ^M is ONE character &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 你看到的^M是一个字符 &lt;br /&gt;:%s/nubian/\r&amp;amp;/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;nbsp;better &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 更好的形式 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# automatically delete trailing Dos-returns,whitespace &lt;br /&gt;# 自动删除行尾 Dos回车符和空格 &lt;br /&gt;autocmd BufRead * silent! %s/[\r \t]\+$// &lt;br /&gt;autocmd BufEnter *.php :%s/[ \t\r]\+$//e &lt;br /&gt;---------------------------------------- &lt;br /&gt;# perform an action on a particular file or file type &lt;br /&gt;# 对指定文件或文件类型执行某个动作 &lt;br /&gt;autocmd VimEnter c:/intranet/note011.txt normal! ggVGg? &lt;br /&gt;autocmd FileType *.pl exec('set fileformats=unix') &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Retrieving last command line command for copy &amp;amp; pasting into text &lt;br /&gt;# 把最后一个命令贴到当前位置 &lt;br /&gt;i&amp;lt;c-r&amp;gt;: &lt;br /&gt;# Retrieving last Search Command for copy &amp;amp; pasting into text &lt;br /&gt;# 把最后一个搜索指令贴到当前位置 &lt;br /&gt;i&amp;lt;c-r&amp;gt;/ &lt;br /&gt;# 译释：i是进入insert模式， &lt;br /&gt;# Ctrl-r是开启插入模式下register的引用 &lt;br /&gt;# :和/分别引用了两个register的内容 &lt;br /&gt;---------------------------------------- &lt;br /&gt;# more completions &lt;br /&gt;# 更多的完成功能 &lt;br /&gt;&amp;lt;C-X&amp;gt;&amp;lt;C-F&amp;gt; &amp;nbsp; &amp;nbsp; :insert name of a file in current directory &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 插入当前目录下的一个文件名到当前位置 &lt;br /&gt;# 在insert模式下使用 &lt;br /&gt;# 然后用 Ctrl-P/Ctrl-N 翻页 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Substituting a Visual area &lt;br /&gt;# 替换一个visual区域 &lt;br /&gt;# select visual area as usual (:h visual) then type :s/Emacs/Vim/ etc &lt;br /&gt;# 选择一个区域，然后输入 :s/Emacs/Vim/ 等等，vim会自动进入:模式 &lt;br /&gt;:'&amp;lt;,'&amp;gt;s/Emacs/Vim/g &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : REMEMBER you dont type the '&amp;lt;.'&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 前面的'&amp;lt;,'&amp;gt;是vim自动添加的 &lt;br /&gt;gv &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Re-select the previous visual area (ULTRA) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;重新选择前一个可视区域 (ULTRA) &lt;br /&gt;---------------------------------------- &lt;br /&gt;# inserting line number into file &lt;br /&gt;# 在文件中插入行号 &lt;br /&gt;:g/^/exec "s/^/".strpart(line(".")." &amp;nbsp; &amp;nbsp;", 0, 4) &lt;br /&gt;:%s/^/\=strpart(line(".")." &amp;nbsp; &amp;nbsp; ", 0, 5) &lt;br /&gt;:%s/^/\=line('.'). ' ' &lt;br /&gt;---------------------------------------- &lt;br /&gt;#numbering lines VIM way &lt;br /&gt;# 用VIM的方式来编号行 &lt;br /&gt;:set number &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : show line numbers &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示行号 &lt;br /&gt;:map &amp;lt;F12&amp;gt; :set number!&amp;lt;CR&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Show linenumbers flip-flop &lt;br /&gt;:%s/^/\=strpart(line('.')." &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;",0,&amp;amp;ts) &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;#numbering lines (need Perl on PC) starting from arbitrary number &lt;br /&gt;#从任意行开始编号(需要perl) &lt;br /&gt;:'a,'b!perl -pne 'BEGIN{$a=223} substr($_,2,0)=$a++' &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Produce a list of numbers &lt;br /&gt;# 产生数字列表 &lt;br /&gt;#Type in number on line say 223 in an empty file &lt;br /&gt;qqmnYP`n^Aq &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : in recording q repeat with @q &lt;br /&gt;# increment existing numbers to end of file (type &amp;lt;c-a&amp;gt; as 5 characters) &lt;br /&gt;# 递增已存在数字到文件末 &lt;br /&gt;:.,$g/^\d/exe "normal! \&amp;lt;c-a&amp;gt;" &lt;br /&gt;# advanced incrementing &lt;br /&gt;# 高级递增，参见： &lt;br /&gt;&lt;a href="http://vim.sourceforge.net/tip_view.php?tip_id=150" target="_blank" rel="nofollow"&gt;&lt;font color="#0000ff"&gt;http://vim.sourceforge.net/tip_view.php?tip_id=150&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;---------------------------------------- &lt;br /&gt;# advanced incrementing (really useful) &lt;br /&gt;# 高级递增 (真的很有用) &lt;br /&gt;" put following in _vimrc &lt;br /&gt;" 把下面几句放到 _vimrc #vimrc脚本用 " 做行注释符 &lt;br /&gt;let g:I=0 &lt;br /&gt;function! INC(increment) &lt;br /&gt;let g:I =g:I + a:increment &lt;br /&gt;return g:I &lt;br /&gt;endfunction &lt;br /&gt;" eg create list starting from 223 incrementing by 5 between markers a,b &lt;br /&gt;" 例如从mark a 到mark b 递增，从223开始，步长为5 &lt;br /&gt;:let I=223 &lt;br /&gt;:'a,'bs/^/\=INC(5)/ &lt;br /&gt;" create a map for INC &lt;br /&gt;cab viminc :let I=223 \| 'a,'bs/$/\=INC(5)/ &lt;br /&gt;---------------------------------------- &lt;br /&gt;# editing/moving within current insert (Really useful) &lt;br /&gt;# 在当前插入模式下编辑/移动 (真得很有用) &lt;br /&gt;&amp;lt;C-U&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : delete all entered &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 删除全部 &lt;br /&gt;&amp;lt;C-W&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : delete last word &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 删除最后一个单词 &lt;br /&gt;&amp;lt;HOME&amp;gt;&amp;lt;END&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : beginning/end of line &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;移动到行首/行尾 &lt;br /&gt;&amp;lt;C-LEFTARROW&amp;gt;&amp;lt;C-RIGHTARROW&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; : jump one word backwards/forwards &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;向前/后移动一个单词 &lt;br /&gt;&amp;lt;C-X&amp;gt;&amp;lt;C-E&amp;gt;,&amp;lt;C-X&amp;gt;&amp;lt;C-Y&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : scroll while staying put in insert &lt;br /&gt;---------------------------------------- &lt;br /&gt;#encryption (use with care: DON'T FORGET your KEY) &lt;br /&gt;# 加密(小心使用，不要忘了密码) &lt;br /&gt;:X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: you will be prompted for a key &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vim会提示你输入密码 &lt;br /&gt;:h :X &lt;br /&gt;---------------------------------------- &lt;br /&gt;# modeline (make a file readonly etc) must be in first/last 5 lines &lt;br /&gt;# 模式行 (使文件只读等)，必须在前/后 5行内 &lt;br /&gt;// vim:noai:ts=2:sw=4:readonly: &lt;br /&gt;# vim:ft=html: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: says use HTML Syntax highlighting &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;使用 HTML 语法高亮 &lt;br /&gt;:h modeline &lt;br /&gt;---------------------------------------- &lt;br /&gt;# Creating your own GUI Toolbar entry &lt;br /&gt;# 建立你自己的菜单项 &lt;br /&gt;amenu &amp;nbsp;Modeline.Insert\ a\ VIM\ modeline &amp;lt;Esc&amp;gt;&amp;lt;Esc&amp;gt;ggOvim:ff=unix ts=4 &lt;br /&gt;ss=4&amp;lt;CR&amp;gt;vim60:fdm=marker&amp;lt;esc&amp;gt;gg &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# A function to save word under cursor to a file &lt;br /&gt;# 一个保存当前光标下的狭义字到一个文件的函数 &lt;br /&gt;function! SaveWord() &lt;br /&gt;&amp;nbsp; &amp;nbsp; normal yiw &lt;br /&gt;&amp;nbsp; &amp;nbsp; exe ':!echo '.@0.' &amp;gt;&amp;gt; word.txt' &lt;br /&gt;endfunction &lt;br /&gt;map ,p :call SaveWord() &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# function to delete duplicate lines &lt;br /&gt;# 删除重复行的函数 &lt;br /&gt;function! Del() &lt;br /&gt;&amp;nbsp; if getline(".") == getline(line(".") - 1) &lt;br /&gt;&amp;nbsp; &amp;nbsp; norm dd &lt;br /&gt;&amp;nbsp; endif &lt;br /&gt;endfunction &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;:g/^/ call Del() &amp;nbsp;#使用该函数的一个例子 &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;---------------------------------------- &lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: Verdana;"&gt;# Digraphs (non alpha-numerics) &lt;br /&gt;# 双字节编码 (non alpha-numerics) &lt;br /&gt;:digraphs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : display table &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示编码表 &lt;br /&gt;:h dig &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: help &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;帮助 &lt;br /&gt;i&amp;lt;C-K&amp;gt;e' &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
