﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-先破后立，探索Java精髓</title><link>http://www.blogjava.net/jhyan/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 05 Sep 2008 15:57:07 GMT</lastBuildDate><pubDate>Fri, 05 Sep 2008 15:57:07 GMT</pubDate><ttl>60</ttl><item><title>clientHeight、offsetHeight和scrollHeight（转载 ）</title><link>http://www.blogjava.net/jhyan/archive/2008/08/29/225617.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Fri, 29 Aug 2008 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/08/29/225617.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/225617.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/08/29/225617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/225617.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/225617.html</trackback:ping><description><![CDATA[<p>我们这里说说四种浏览器对 document.body 的&nbsp;clientHeight、offsetHeight 和 scrollHeight 的解释，这里说的是 document.body，如果是 HTML 控件，则又有不同，<a href="http://www.cftea.com/c/2006/12/PCTKER6T0V62S854.asp" target="_blank">点击这里</a>查看。</p>
<p>这四种浏览器分别为IE（Internet Explorer）、NS（Netscape）、Opera、FF（FireFox）。</p>
<p><strong>clientHeight<br />
</strong>大家对 clientHeight 都没有什么异议，都认为是内容可视区域的高度，也就是说页面浏览器中可以看到内容的这个区域的高度，一般是最后一个工具条以下到状态栏以上的这个区域，与页面内容无关。</p>
<p><strong>offsetHeight<br />
</strong>IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。<br />
NS、FF 认为 offsetHeight 是网页内容实际高度，可以小于 clientHeight。</p>
<p><strong>scrollHeight</strong><br />
IE、Opera 认为 scrollHeight 是网页内容实际高度，可以小于 clientHeight。<br />
NS、FF 认为 scrollHeight 是网页内容高度，不过最小值是 clientHeight。</p>
<p><strong>简单地说</strong><br />
clientHeight 就是透过浏览器看内容的这个区域高度。<br />
NS、FF 认为
offsetHeight 和 scrollHeight 都是网页内容高度，只不过当网页内容高度小于等于 clientHeight
时，scrollHeight 的值是 clientHeight，而 offsetHeight 可以小于 clientHeight。<br />
IE、Opera 认为 offsetHeight 是可视区域&nbsp;clientHeight 滚动条加边框。scrollHeight 则是网页内容实际高度。</p>
<p><strong>同理</strong><br />
clientWidth、offsetWidth 和 scrollWidth 的解释与上面相同，只是把高度换成宽度即可。</p>
<p><span class="chapterTitle">重要说明</span></p>
以上是在没有指定 DOCTYPE 的情况下，如果指定了 DOCTYPE，比如：DTD XHTML 1.0 Transitional，则意义又会不同，在这种情况下这三个值都是同一个值，都表示内容的<strong>实际</strong>高度。新版本的浏览器大多支持根据页面指定的 DOCTYPE 来启用不同的解释器。下载或浏览<a href="http://www.cftea.com/c/751/PX8O1XEX53RM4DIW.htm" target="_blank">测试文件</a>。
如果要在指定的 DOCTYPE 下按上述意义来应用，怎么办呢？答案是：将 document.body 和
document.documentElement 一起应用，比如：document.documentElement.scrollLeft ||
document.body.scrollLeft（一般将 document.documentElement 写在前面）<br />
<br />
<br />
转自：http://www.cftea.com/c/751.asp<br />
<img src ="http://www.blogjava.net/jhyan/aggbug/225617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-08-29 17:00 <a href="http://www.blogjava.net/jhyan/archive/2008/08/29/225617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>document.body.scrollTop 值总为0的解决方法（转载）</title><link>http://www.blogjava.net/jhyan/archive/2008/08/29/225618.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Fri, 29 Aug 2008 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/08/29/225618.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/225618.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/08/29/225618.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/225618.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/225618.html</trackback:ping><description><![CDATA[<div id="articleBody">
<p>做页面的时候可能会用到位置固定的层，读取 document.body.scrollTop 来设置层的位置，像这样：</p>
<pre class="code">window.onscroll = function ()<br />
{<br />
var oFix = document.getElementById("divfix");<br />
oFix.style.top = document.body.scrollTop + "px";<br />
}</pre>
<p>可是怎么没有达到预期效果呢，输出 document.body.scrollTop 的值一看，一直都是 0。原来是 DTD
的问题,要是页面直接用 开头的话就没有问题了。但是要符合 web 标准，DTD 当然是不能少的。具有 DTD 时用
document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了。</p>
<pre class="code">window.onscroll = function ()<br />
{<br />
var oFix = document.getElementById("divfix");<br />
oFix.style.top = document.<span class="caution">documentElement</span>.scrollTop + "px";<br />
}<br />
</pre>
<p>编者注：</p>
<ul>
    <li>页面具有 DTD（或者说指定了 DOCTYPE）时，使用 document.documentElement。</li>
    <li>页面不具有 DTD（或者说没有指定了 DOCTYPE）时，使用 document.body。</li>
    <li>在 IE 和 Firefox 中均是如此。</li>
    <li>为了兼容，可以使用如下代码：
    <div class="code">var scrollTop = window.pageYOffset&nbsp; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || document.documentElement.scrollTop&nbsp; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || document.body.scrollTop&nbsp; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || 0;</div>
    </li>
</ul>
<br />
转自：http://www.cftea.com/c/2008/06/U1FSRIC247DWTK2M.asp<br />
</div>
<img src ="http://www.blogjava.net/jhyan/aggbug/225618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-08-29 17:00 <a href="http://www.blogjava.net/jhyan/archive/2008/08/29/225618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mplayer 下播放rmvb文件</title><link>http://www.blogjava.net/jhyan/archive/2008/08/16/222404.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Sat, 16 Aug 2008 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/08/16/222404.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/222404.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/08/16/222404.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/222404.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/222404.html</trackback:ping><description><![CDATA[1.到mplayer官网上下载codecs，我下载的是all<br />
<br />
2.解压到/usr/lib/codecs<br />
<br />
3.ok<br />
<br />
留下脚印备忘<br />
<br />
<br />
<img src ="http://www.blogjava.net/jhyan/aggbug/222404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-08-16 11:40 <a href="http://www.blogjava.net/jhyan/archive/2008/08/16/222404.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Eclipse 3.4上使用FlexBuilder的方法(转载)</title><link>http://www.blogjava.net/jhyan/archive/2008/08/08/220796.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Thu, 07 Aug 2008 16:33:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/08/08/220796.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/220796.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/08/08/220796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/220796.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/220796.html</trackback:ping><description><![CDATA[<div class="PostHead">
<h1>在Eclipse 3.4上使用FlexBuilder的方法</h1>
<ul>
    <li class="PostAuthor">Author: admin </li>
    <li class="PostCateg">Filed under: <a href="http://www.sou5.cn/?cat=5" title="View all posts in 随便帖" rel="category">随便帖</a></li>
</ul>
</div>
<small class="PostTime"><strong>Wednesday</strong><br />
Aug 6,2008</small>
<p class="fp"><a class="zem_slink" title="Eclipse (software)" rel="homepage" href="http://www.eclipse.org/">Eclipse</a> 3.4发布已经有一段时间了，其带来很多新的<a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/whatsnew3.4/eclipse-news-part1.html" target="_blank">特性</a>，
但是对于使用FlexBuilder的朋友来说，想要切换到Eclipse 3.4就没那么容易，因为FlexBuilder是基于Eclipse
3.3的，和Eclipse 3.4并不兼容，在Eclipse 3.4刚发布的时候我就做过尝试，可是mxml编辑器却不能打开，会报
org.eclipse.jface.util.Assert$AssertionFailedException: <a class="zem_slink" title="Assertion (computing)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Assertion_%28computing%29">Assertion</a> failed，当时没有时间折腾，Adobe官方关于这里Bug的说明在<a href="https://bugs.adobe.com/jira/browse/FB-13155" target="_blank">这里</a>，这里据说在FlexBuilder 3.01已经解决了这样的问题，可那里有3.01下载，对不起，我也不知道。今天无意发现了<a href="http://www.tekool.net/blog/2008/06/28/flex-builder-3-plugin-dont-work-with-eclipse-34/" target="_blank">这里</a>，这里提供了一个<a href="http://www.tekool.net/blogfiles/flex-builder-3-plugin-dont-work-with-eclipse-34/FB3_Eclipse34_patch.zip" target="_blank">补丁</a>，利用这个我们就可以在Eclipse 3.4上使用FlexBuilder了。安装方法如下：  首先从<a href="http://www.tekool.net/blogfiles/flex-builder-3-plugin-dont-work-with-eclipse-34/FB3_Eclipse34_patch.zip" target="_blank">这里</a>下载这个补丁包：  <code><a class="zem_slink" title="Wget" rel="homepage" href="http://www.gnu.org/software/wget/">wget</a> http://www.tekool.net/blogfiles/flex-builder-3-plugin-dont-work-with-eclipse-34/FB3_Eclipse34_patch.zip</code> 然后解压该补丁包，解压后在Flex <a class="zem_slink" title="Builder pattern" rel="wikipedia" href="http://en.wikipedia.org/wiki/Builder_pattern">Builder</a> 3 Plug-in/eclipse/<a class="zem_slink" title="Plugin" rel="wikipedia" href="http://en.wikipedia.org/wiki/Plugin">plugins</a>应该有两个文件：</p>
<ul>
    <li>com.adobe.flexbuilder.debug.e33_3.0.194161.jar</li>
    <li>com.adobe.flexbuilder.editors.derived_3.0.194161.jar</li>
</ul>
<p>在您的FlexBuilder目录下找多对应的文件，因为可能补丁包的版本和您安装的FlexBuilder版本有差异，所以直接在查找类似名称的文件即可，如：</p>
<pre><a class="zem_slink" title="Ls" rel="wikipedia" href="http://en.wikipedia.org/wiki/Ls">ls</a> -l plugins/com.adobe.flexbuilder.editors.derived*<br />
-rw-r--r-- 1 feiy feiy 218286 2008-06-30 08:04 plugins/<strong><em>com.adobe.flexbuilder.editors.derived_3.0.196042.jar</em></strong></pre>
<p>那么首先将<strong>com.adobe.flexbuilder.editors.derived_3.0.194161.jar</strong>复制到FlexBuilder的plugins目录下，然后在Plugins目录执行如下命令：</p>
<pre>cp com.adobe.flexbuilder.editors.derived_3.0.196042.jar  com.adobe.flexbuilder.editors.derived_3.0.196042.jar.old<br />
mv com.adobe.flexbuilder.editors.derived_3.0.194161.jar  com.adobe.flexbuilder.editors.derived_3.0.196042.jar</pre>
<p>接着在FlexBuilder/plugins目录中查找<strong><em>com.adobe.flexbuilder.debug.e33</em></strong>开头的目录:</p>
<pre>ls -l |<a class="zem_slink" title="Grep" rel="wikipedia" href="http://en.wikipedia.org/wiki/Grep">grep</a> com.adobe.flexbuilder.debug.e33<br />
drwxr-xr-x 3 feiy feiy    4096 2008-08-05 11:22 <em><strong>com.adobe.flexbuilder.debug.e33_3.0.196042</strong></em></pre>
<p>以上<strong><em>com.adobe.flexbuilder.debug.e33_3.0.196042</em></strong>目
录就是我们要找的目录，那么首先将com.adobe.flexbuilder.debug.e33_3.0.194161.jar解压到临时目录，然后
将解压出来的文件复制到FlexBuilder/plugins
/com.adobe.flexbuilder.debug.e33_3.0.196042目录中。 安装以上补丁后，就可以在Eclipse
3.4中正常使用FlexBuilder了。</p>
<p><br />
</p>
<p><br />
</p>
<p>如果还是不行就执行./eclipse -clean<br />
</p>
<img src ="http://www.blogjava.net/jhyan/aggbug/220796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-08-08 00:33 <a href="http://www.blogjava.net/jhyan/archive/2008/08/08/220796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fb3 sn</title><link>http://www.blogjava.net/jhyan/archive/2008/08/07/220621.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Thu, 07 Aug 2008 04:31:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/08/07/220621.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/220621.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/08/07/220621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/220621.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/220621.html</trackback:ping><description><![CDATA[1377-4364-8105-1017-5779-4100 <br />
1377-4864-2155-4708-3713-2066 <br />
1377-4561-2389-2527-0543-9076 <br />
1377-4167-2588-8404-4842-4168 <br />
1377-4469-0634-7084-5700-9553 
<img src ="http://www.blogjava.net/jhyan/aggbug/220621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-08-07 12:31 <a href="http://www.blogjava.net/jhyan/archive/2008/08/07/220621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fedora9 下触摸板设置备忘</title><link>http://www.blogjava.net/jhyan/archive/2008/08/05/220301.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Tue, 05 Aug 2008 15:00:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/08/05/220301.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/220301.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/08/05/220301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/220301.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/220301.html</trackback:ping><description><![CDATA[fedora 9下触摸板单击，双击，滚动不可用，首先安装更新 http://www.ocf.berkeley.edu/~bobk/packages/synaptics-0.14.6-8.1.fc9.i386.rpm<br />
<br />
然后设置触摸板，在xorg.conf 里面修改<br />
<br />
<br />
Section "ServerLayout"<br />
&nbsp;&nbsp;&nbsp; Identifier&nbsp;&nbsp;&nbsp;&nbsp; "Default Layout"<br />
&nbsp;&nbsp;&nbsp; Screen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp; "Screen0" 0 0<br />
&nbsp;&nbsp;&nbsp; InputDevice&nbsp;&nbsp;&nbsp; "Keyboard0" "CoreKeyboard"&nbsp;&nbsp; ＃＃＃＃＃＃<br />
<br />
EndSection<br />
<br />
<br />
Section "InputDevice"<br />
&nbsp;&nbsp;&nbsp; Identifier&nbsp; "Synaptics"<br />
&nbsp;&nbsp;&nbsp; Driver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "synaptics"<br />
&nbsp;&nbsp;&nbsp; Option&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Device" "/dev/input/mice"<br />
&nbsp;&nbsp;&nbsp; Option&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Protocol" "auto-dev"<br />
&nbsp;&nbsp;&nbsp; Option&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Emulate3Buttons" "yes"<br />
&nbsp;&nbsp;&nbsp; Option "TapButton1" "1"<br />
&nbsp;&nbsp;&nbsp; Option "TapButton2" "2"<br />
&nbsp;&nbsp;&nbsp; Option "SHMConfig" "on"<br />
EndSection<br />
<br />
<br />
保存，重新登录，ok<br />
<br />
<img src ="http://www.blogjava.net/jhyan/aggbug/220301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-08-05 23:00 <a href="http://www.blogjava.net/jhyan/archive/2008/08/05/220301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>firefox 3下听在线音乐 （1 听）</title><link>http://www.blogjava.net/jhyan/archive/2008/06/30/211790.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Mon, 30 Jun 2008 15:58:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/06/30/211790.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/211790.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/06/30/211790.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/211790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/211790.html</trackback:ping><description><![CDATA[<p>同时在firefox里安装了一个mediaWrap的plugin</p>
<p>同时在about:config里增加了两个配置项：</p>
<p><span style="color: #ff0000;">Network.protocol-handler.app.mms&nbsp;&nbsp; string /usr/bin/mplayer</span>
</p>
<p><span style="color: #ff0000;">Network.protocal-handler.external.mms boolean True</span></p>
<p><br />
</p>
<p><span style="color: #ff0000;">这样就可以在1 听上面听歌曲了<br />
</span>
</p>
<img src ="http://www.blogjava.net/jhyan/aggbug/211790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-06-30 23:58 <a href="http://www.blogjava.net/jhyan/archive/2008/06/30/211790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vim手册（转载）</title><link>http://www.blogjava.net/jhyan/archive/2008/05/17/201081.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Sat, 17 May 2008 05:21:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/05/17/201081.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/201081.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/05/17/201081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/201081.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/201081.html</trackback:ping><description><![CDATA[<font color="#000000">VIM 简介<span style="display: none;">FecLinux联盟</span><br />
<ul>VIM
    是 Unix 世界里极为普遍的全萤幕文书编辑器，几乎可以说任何一台 Unix 机器都会提供这套软体。熟悉 DOS 下的文书处理後，也许会感到
    VIM 并不好用；Unix 上也已经发展出许多更新、更好用的文书编辑器，但是并不一定每一台 Unix 机器上都会安装这些额外的软体。所以，学习
    VIM 的基本操作还是有好处，让你在各个不同的机器上得心应手。</ul>
    VIM 基本观念<span style="display: none;">FecLinux联盟</span><br />
    <ul>Unix
        提供一系列的 ex 编辑器，包括 ex, edit 和 VIM 。相对於全萤幕编辑器，现在可能很难想像如何使用 ex, edit
        这种行列编辑器（有人用过 DOS 3.3 版以前所附的 EDLIN 吗？）。 VIM 的原意是 "Vi
        IMproved"，它是一个所见所得的编辑程式，也就是说可以立刻看到操作结果。<span style="display: none;">FecLinux联盟</span><br />
        <span style="display: none;">FecLinux联盟</span><br />
        也由於 VIM 是全萤幕编辑器，所以它必须控制整个终端屏幕哪里该显示些什麽。而终端的种类有许多种，特性又不尽相同，所以 VIM
        有必要知道现在所使用的是哪一种终端。这是由 TERM 这个环境变数来设定，设定环境变数方面请查看所使用 shell 的说明。（除非执行 VIM
        的时候回应 unknow terminal type ，否则可以不用设定。）<span style="display: none;">FecLinux联盟</span><br />
        <span style="display: none;">FecLinux联盟</span><br />
        只要简单的执行 VIM 就可以进入 VIM 的编辑环境。在实际操作之前先对它有个概略的了解会比较好。VIM
        有两种模式，输入模式以及指令模式。输入模式即是用来输入文字资料，而指令模式则是用来下达一些编排文件、存档、以及离开 VIM
        等等的操作指令。当执行 VIM 後，会先进入指令模式，此时输入的任何字元都视为指令。</ul>
        进入与离开<span style="display: none;">FecLinux联盟</span><br />
        <ul>要
            进入 VIM 可以直接在系统提示下键入 VIM ＜档案名称＞，VIM 可以自动帮你载入所要编辑的文件或是开启一个新文件。进入 VIM
            后屏幕左方会出现波浪符号，凡是行首有该符号就代表此列目前是空的。要离开 VIM 可以在指令模式下键入 :q, :wq
            指令则是存档後再离开（注意冒号）。要切换到指令模式下则是用 [ESC] 键，如果不晓得现在是处於什麽模式， 可以多按几次
            [ESC]，系统会发出哔哔声以确定进入指令模式。</ul>
            VIM 输入模式<span style="display: none;">FecLinux联盟</span><br />
            <ul>要如何输入资料呢？有好几个指令可以进入输入模式：<span style="display: none;">FecLinux联盟</span><br />
                新增 (append)<span style="display: none;">FecLinux联盟</span><br />
                <ul>a 从光标所在位置后面开始新增资料，光标后的资料随新增资料向后移动。<span style="display: none;">FecLinux联盟</span><br />
                    A 从光标所在列最后面的地方开始新增资料。</ul>
                    <span style="display: none;">FecLinux联盟</span><br />
                    插入 (insert)
                    <ul>i 从光标所在位置前面开始插入资料，光标后的资料随新增资料向后移动。<span style="display: none;">FecLinux联盟</span><br />
                        I 从光标所在列的第一个非空白字元前面开始插入资料。</ul>
                        <span style="display: none;">FecLinux联盟</span><br />
                        开始 (open)
                        <ul>o 在光标所在列下新增一列并进入输入模式。<span style="display: none;">FecLinux联盟</span><br />
                            O 在光标所在列上方新增一列并进入输入模式。</ul>
                            也许文字叙述看起来有点繁杂，但是只要实际操作一下马上可以了解这些操作方式。实务很重要，尤其是电脑方面的东西随时可以尝试及验证结果。极力建议实际去
                            使用它而不要只是猛 Ｋ 文件，才有事半功倍的效用。（注：此段为废话。）<span style="display: none;">FecLinux联盟</span></ul>
                            VIM 基本编辑<span style="display: none;">FecLinux联盟</span><br />
                            <ul>配合一般键盘上的功能键，像是方向键、[Insert] 、[Delete] 等等，现在你应该已经可以利用 VIM 来处理文字资料了。当然 VIM 还提供其他许许多多功能让文字的处理更形方便，有兴趣的看倌请继续。<span style="display: none;">FecLinux联盟</span><br />
                                <span style="display: none;">FecLinux联盟</span><br />
                                在继续下去之前先来点 BCC 吧。电脑有许多厂牌，不同的硬体及作业系统。PC 也不是仅仅只有 IBM PC
                                及其相容品而已。事实上，包括键盘，终端机等等往往都有不同的规格。这代表什麽？<span style="display: none;">FecLinux联盟</span><br />
                                <span style="display: none;">FecLinux联盟</span><br />
                                在文书编辑软体上会遇这样的问题，某些电脑的键盘上没有特定的几个功能键！那麽不就有某些功能不能用了？这个问题在 Unix
                                系统上也一样，几乎各大电脑厂商都有自己的 Unix 系统，而 VIM 的操作方法也会随之有点出入。我们固然可以用 PC 的键盘来说明 VIM
                                的操作，但是还是得提一下这个问题。<span style="display: none;">FecLinux联盟</span><br />
                                <span style="display: none;">FecLinux联盟</span><br />
                                删除与修改
                                <ul>何
                                    谓编辑？在这里我们认为是文字的新增修改以及删除，甚至包括文字区块的搬移、复制等等。这里先介绍 VIM 的如何做删除与修改。（注意：在 VIM
                                    的原始观念里，输入跟编辑是两码子事。编辑是在指令模式下操作的，先利用指令移动光标来定位要进行编辑的地方，然后才下指令做编辑。）<span style="display: none;">FecLinux联盟</span><br />
                                    <span style="display: none;">FecLinux联盟</span><br />
                                    x 删除光标所在字元。<span style="display: none;">FecLinux联盟</span><br />
                                    dd 删除光标所在的列。<span style="display: none;">FecLinux联盟</span><br />
                                    r 修改光标所在字元，r 后接著要修正的字元。<span style="display: none;">FecLinux联盟</span><br />
                                    R 进入取代状态，新增资料会覆盖原先资料，直到按 [ESC] 回到指令模式下为止。<span style="display: none;">FecLinux联盟</span><br />
                                    s 删除光标所在字元，并进入输入模式。<span style="display: none;">FecLinux联盟</span><br />
                                    S 删除光标所在的列，并进入输入模式。</ul>
                                    其实呢，在 PC 上根本没有这麽麻烦！输入跟编辑都可以在输入模式下完成。例如要删除字元，直接按 [Delete]
                                    不就得了。而插入状态与取代状态可以直接用 [Insert]
                                    切换，犯不著用什麽指令模式的编辑指令。不过就如前面所提到的，这些指令几乎是每台终端机都能用，而不是仅仅在 PC 上。<span style="display: none;">FecLinux联盟</span><br />
                                    <span style="display: none;">FecLinux联盟</span><br />
                                    在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC
                                    的方向键就可以了，而且无论在指令模式或输入模式下都可以。多容易不是。 <span style="display: none;">FecLinux联盟</span><br />
                                    当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的资料，而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的
                                    [Undo] 按键功能相同。 <span style="display: none;">FecLinux联盟</span></ul>
                                    VIM 进阶应用
                                    <ul>相信现在对於 VIM 应该已经有相当的认识。处理文字也不会有什麽麻烦才对。如果有兴趣善用 VIM 的其它功能进一步简化操作过程，不妨继续看下去。<span style="display: none;">FecLinux联盟</span><br />
                                        <span style="display: none;">FecLinux联盟</span><br />
                                        移动光标<span style="display: none;">FecLinux联盟</span><br />
                                        <ul>由於许多编辑工作是藉由光标来定位，所以 VIM 提供许多移动光标的方式，这个我们列几张简表来说明（这些当然是指令模式下的指令）：<span style="display: none;">FecLinux联盟</span><br />
                                            <span style="display: none;">FecLinux联盟</span><br />
                                            <table border="1" cellpadding="2" cellspacing="2">
                                                <tbody>
                                                    <tr>
                                                        <td>指令</td>
                                                        <td>说明</td>
                                                        <td>功能键</td>
                                                    </tr>
                                                    <tr>
                                                        <td>0</td>
                                                        <td>移动到光标所在列的最前面</td>
                                                        <td>HOME</td>
                                                    </tr>
                                                    <tr>
                                                        <td>$</td>
                                                        <td>移动到光标所在列的最后面</td>
                                                        <td>END</td>
                                                    </tr>
                                                    <tr>
                                                        <td>^d</td>
                                                        <td>向下半页</td>
                                                        <td> <br />
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td>^f</td>
                                                        <td>向下一页</td>
                                                        <td>PageDown</td>
                                                    </tr>
                                                    <tr>
                                                        <td>^u</td>
                                                        <td>向上半页</td>
                                                        <td> <br />
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td>^b</td>
                                                        <td>向上一页</td>
                                                        <td>PageUp</td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                            <table border="1" cellpadding="2" cellspacing="2">
                                                <tbody>
                                                    <tr>
                                                        <td>指令</td>
                                                        <td>说明</td>
                                                    </tr>
                                                    <tr>
                                                        <td>H</td>
                                                        <td>移动到视窗的第一列</td>
                                                    </tr>
                                                    <tr>
                                                        <td>M</td>
                                                        <td>移动到视窗的中间列</td>
                                                    </tr>
                                                    <tr>
                                                        <td>L</td>
                                                        <td>移动到视窗的最后列</td>
                                                    </tr>
                                                    <tr>
                                                        <td>b</td>
                                                        <td>移动到下个字的第一个字母</td>
                                                    </tr>
                                                    <tr>
                                                        <td>w</td>
                                                        <td>移动到上个字的第一个字母</td>
                                                    </tr>
                                                    <tr>
                                                        <td>e</td>
                                                        <td>移动到下个字的最后一个字母</td>
                                                    </tr>
                                                    <tr>
                                                        <td>^</td>
                                                        <td>移动到光标所在列的第一个非空白字元</td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                            <table border="1" cellpadding="2" cellspacing="2">
                                                <tbody>
                                                    <tr>
                                                        <td>指令</td>
                                                        <td>说明</td>
                                                    </tr>
                                                    <tr>
                                                        <td>n-</td>
                                                        <td>减号移动到上一列的第一个非空白字元</td>
                                                    </tr>
                                                    <tr>
                                                        <td>n+</td>
                                                        <td>加号移动到下一列的第一个非空白字元</td>
                                                    </tr>
                                                    <tr>
                                                        <td>nG</td>
                                                        <td>直接用数字 n 加上大写 G 移动到第 n 列</td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                            <table border="1" cellpadding="2" cellspacing="2">
                                                <tbody>
                                                    <tr>
                                                        <td>指令</td>
                                                        <td>说明</td>
                                                    </tr>
                                                    <tr>
                                                        <td>fx</td>
                                                        <td>往右移动到 x 字元上</td>
                                                    </tr>
                                                    <tr>
                                                        <td>Fx</td>
                                                        <td>往左移动到 x 字元上</td>
                                                    </tr>
                                                    <tr>
                                                        <td>tx</td>
                                                        <td>往右移动到 x 字元前</td>
                                                    </tr>
                                                    <tr>
                                                        <td>Tx</td>
                                                        <td>往左移动到 x 字元前</td>
                                                    </tr>
                                                    <tr>
                                                        <td>;</td>
                                                        <td>配合 f&amp;t 使用，重复一次</td>
                                                    </tr>
                                                    <tr>
                                                        <td>,</td>
                                                        <td>配合 f&amp;t 使用，反方向重复一次</td>
                                                    </tr>
                                                    <tr>
                                                        <td>/string</td>
                                                        <td>往右移动到有 string 的地方</td>
                                                    </tr>
                                                    <tr>
                                                        <td>?string</td>
                                                        <td>往左移动到有 string 的地方</td>
                                                    </tr>
                                                    <tr>
                                                        <td>n</td>
                                                        <td>配合 /&amp;? 使用，重复一次</td>
                                                    </tr>
                                                    <tr>
                                                        <td>N</td>
                                                        <td>配合 /&amp;? 使用，反方向重复一次</td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                            <table border="1" cellpadding="2" cellspacing="2">
                                                <tbody>
                                                    <tr>
                                                        <td>指令</td>
                                                        <td>说明</td>
                                                        <td>备注</td>
                                                    </tr>
                                                    <tr>
                                                        <td>n(</td>
                                                        <td>左括号移动到句子的最前面，前面加上数字可以指定往前移动 n 个句子</td>
                                                        <td>句子是以 ! . ? 三种符号来界定</td>
                                                    </tr>
                                                    <tr>
                                                        <td>n)</td>
                                                        <td>右括号移动到下个句子的最前面，前面加上数字可以指定往后移动 n 个句子</td>
                                                        <td> <br />
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td>n{</td>
                                                        <td>左括弧移动到段落的最前面 ，前面加上数字可以指定往前移动 n 个段落</td>
                                                        <td>段落是以，段落间的空白列界定</td>
                                                    </tr>
                                                    <tr>
                                                        <td>n}</td>
                                                        <td>右括弧移动到下个段落的最前面，前面加上数字可以指定往后移动 n 个段落</td>
                                                        <td> <br />
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                            <span style="display: none;">FecLinux联盟</span><br />
                                            不要尝试背诵这些指令，否则后果自行负责。它们看起来又多又杂乱，事实上这是文字叙述本身的障碍。再强调一次，实际去使用它只要几次就可以不经大脑直接下
                                            达这些奇奇怪怪的指令，远比死记活背搞得模模糊糊强多了。（注：若真的不经大脑而误删资料与我无关。另，此段为废话。）<span style="display: none;">FecLinux联盟</span><br />
                                            <span style="display: none;">FecLinux联盟</span></ul>
                                            进阶编辑指令<span style="display: none;">FecLinux联盟</span><br />
                                            <span style="display: none;">FecLinux联盟</span><br />
                                            这些编辑指令非常有弹性，基本上可以说是由指令与范围所构成。例如 dw 是由删除指令 d 与范围 w 所组成，代表删除一个字 d(elete)
                                            w(ord) 。<span style="display: none;">FecLinux联盟</span><br />
                                            <span style="display: none;">FecLinux联盟</span><br />
                                            指令列表如下：<span style="display: none;">FecLinux联盟</span><br />
                                            <ul>d 删除(delete)<span style="display: none;">FecLinux联盟</span><br />
                                                y 复制(yank)<span style="display: none;">FecLinux联盟</span><br />
                                                p 放置(put)<span style="display: none;">FecLinux联盟</span><br />
                                                c 修改(change)<span style="display: none;">FecLinux联盟</span></ul>
                                                范围可以是下列几个：<span style="display: none;">FecLinux联盟</span><br />
                                                <ul>e 光标所在位置到该字的最后一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    w 光标所在位置到下个字的第一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    b 光标所在位置到上个字的第一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    $ 光标所在位置到该列的最后一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    0 光标所在位置到该列的第一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    ) 光标所在位置到下个句子的第一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    ( 光标所在位置到该句子的第一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    } 光标所在位置到该段落的最后一个字母<span style="display: none;">FecLinux联盟</span><br />
                                                    { 光标所在位置到该段落的第一个字母<span style="display: none;">FecLinux联盟</span></ul>
                                                    说实在的，组合这些指令来编辑文件有一点点艺术气息。不管怎麽样，它们提供更多编辑文字的能力。值得注意的一点是删除与复制都会将指定范围的内容放到暂存
                                                    区里，然后就可以用指令 p 贴到其它地方去，这是 VIM 用来处理区段拷贝与搬移的办法。<span style="display: none;">FecLinux联盟</span><br />
                                                    <span style="display: none;">FecLinux联盟</span><br />
                                                    某些 VIM 版本，例如 Linux 所用的 elVIMs
                                                    可以大幅简化这一坨指令。如果稍微观察一下这些编辑指令就会发现问题其实是定范围的方式有点杂，实际上只有四个指令罢了。指令 v 非常好用，只要按下
                                                    v 键，光标所在的位置就会反白，然后就可以移动光标来设定范围，接著再直接下指令进行编辑即可。<span style="display: none;">FecLinux联盟</span><br />
                                                    <span style="display: none;">FecLinux联盟</span><br />
                                                    对於整列操作， VIM 另外提供了更方便的编辑指令。前面曾经提到过删除整列文字的指令 dd 就是其中一个；cc 可以修改整列文字；而 yy
                                                    则是复制整列文字；指令 D 则可以删除光标到该列结束为止所有的文字。<span style="display: none;">FecLinux联盟</span><br />
                                                    <span style="display: none;">FecLinux联盟</span><br />
                                                    档案指令<span style="display: none;">FecLinux联盟</span><br />
                                                    <span style="display: none;">FecLinux联盟</span><br />
                                                    档案指令多以 : 开头，跟编辑指令有点区别。例如前面提到结束编辑的指令就是 :q。现在就简单说明一下作为本篇故事的结尾：<span style="display: none;">FecLinux联盟</span><br />
                                                    <ul>:q 结束编辑(quit)<span style="display: none;">FecLinux联盟</span><br />
                                                        如果不想存档而要放弃编辑过的档案则用 :q! 强制离开。<span style="display: none;">FecLinux联盟</span><br />
                                                        :w 存档(write)<span style="display: none;">FecLinux联盟</span><br />
                                                        其后可加所要存档的档名。<span style="display: none;">FecLinux联盟</span><br />
                                                        可以将档案指令合在一起，例如 :wq 即存档后离开。<span style="display: none;">FecLinux联盟</span><br />
                                                        zz 功能与 :wq 相同。<span style="display: none;">FecLinux联盟</span></ul>
                                                        另外值得一提的是 VIM 的部份存档功能。可以用 :n,mw filename 将第 n 行到第 m 行的文字存放的所指定的 filename
                                                        里去哩。时代在变，世界在变， VIM 也在变，不过大致上就这样。好了，但愿从此以后王子跟公主过著幸福快乐的生活。<br />
                                                        <br />
                                                    </ul>
                                                    出处： http://hi.baidu.com/ps3108/blog/item/f85ae80efe0789ce7acbe116.html
                                                    <ul><br />
                                                    </ul>
                                                    </font>
<img src ="http://www.blogjava.net/jhyan/aggbug/201081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-05-17 13:21 <a href="http://www.blogjava.net/jhyan/archive/2008/05/17/201081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fedora 9没有声音的解决方法</title><link>http://www.blogjava.net/jhyan/archive/2008/05/16/201017.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Fri, 16 May 2008 15:38:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/05/16/201017.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/201017.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/05/16/201017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/201017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/201017.html</trackback:ping><description><![CDATA[安装fedora9后竟然发现没有声音，弄来好久也没有弄出来。<br />
<br />
后来终于在网上找到了解决办法，非常简单。<br />
<br />
打开声音的 &#8220;首选项&#8221;，然后把 surround选上，然后打开surround到声音开关就可以听到久违了的声音了<br />
<br />
<img src ="http://www.blogjava.net/jhyan/aggbug/201017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-05-16 23:38 <a href="http://www.blogjava.net/jhyan/archive/2008/05/16/201017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最轻便的客户端oracle instant client安装备忘.(转载)</title><link>http://www.blogjava.net/jhyan/archive/2008/04/27/196619.html</link><dc:creator>Joshua Yan</dc:creator><author>Joshua Yan</author><pubDate>Sun, 27 Apr 2008 12:07:00 GMT</pubDate><guid>http://www.blogjava.net/jhyan/archive/2008/04/27/196619.html</guid><wfw:comment>http://www.blogjava.net/jhyan/comments/196619.html</wfw:comment><comments>http://www.blogjava.net/jhyan/archive/2008/04/27/196619.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jhyan/comments/commentRss/196619.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jhyan/services/trackbacks/196619.html</trackback:ping><description><![CDATA[<div class="postTitle"><a class="postTitle2" id="viewpost1_TitleUrl" href="http://www.blogjava.net/rocky/archive/2007/09/13/oracle_instant_client.html">最轻便的客户端oracle instant client安装备忘.</a> </div>
<p>轻便的客户端oracle instant client安装备忘：<br />
假定instant client 解压到E:\OracleInstantClient<br />
1.SET PATH=E:\OracleInstantClient;<br />
2.SET TNS_ADMIN=E:\OracleInstantClient<br />
3.新建一个tnsnames.ora，然后填入<br />
for example:<br />
192.168.0.20 =<br />
&nbsp; (DESCRIPTION =<br />
&nbsp;&nbsp;&nbsp; (ADDRESS_LIST =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.20)(PORT = 1521))<br />
&nbsp;&nbsp;&nbsp; )<br />
&nbsp;&nbsp;&nbsp; (CONNECT_DATA =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SERVICE_NAME = orcl)<br />
&nbsp;&nbsp;&nbsp; )<br />
)<br />
4.SET LD_LIBRARY_PATH=E:\OracleInstantClient</p>
<p>5.如果要安装SQL plus那么需要设置SET SQLPATH=E:\OracleInstantClient<br />
6.如果查询结果为乱码，设置set NLS_LANG=XXXX（我自己是SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280）<br />
<br />
原地址：http://www.blogjava.net/rocky/archive/2007/09/13/oracle_instant_client.html</p>
<img src ="http://www.blogjava.net/jhyan/aggbug/196619.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jhyan/" target="_blank">Joshua Yan</a> 2008-04-27 20:07 <a href="http://www.blogjava.net/jhyan/archive/2008/04/27/196619.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>