2006年9月29日

进行有效编辑的七种习惯

一篇不错的文章,有空就多看几遍罗
进行有效编辑的七种习惯
Bram Moolenaar

如果你的很多时间是用来敲纯文本,写程序或HTML,那么有效地使用一个好的编
辑器能节省你不少时间。这篇文章里的指导和提示将有助于你更快工作,更少犯
错误。

文中采用开源文本编辑器Vim(Vi IMproved)说明有效编辑的思想,但这些思想也
适用于其他编辑器。择合适的编辑器只是有效编辑的第一步,对于哪个编辑器更
好的讨论将占很大地方,这里就不提了。如果你不知道该用哪个编辑器,或者对
现在所使用的不太满意,不妨试试Vim;你是不会失望的。

第一部分:编辑一个文件

快速定位

编辑中大部分时间是花费在阅读、查错和寻找应该进行编辑的地方上,而不是插
入新文字或进行修改。在文件中不断定位(navigate)是经常要做的,所以最好学
会如何快速地进行。

你常会搜寻文档中的一些文字。或者找出包含特定词或词组的行。你当然可以使
用搜寻命令 /pattern,不过还有更聪明的方法:

* 如果你看到一个特定词,想看看其他地方是不是出现过同样的词,可以使用
* 命令。它将对光标所指的词进行搜寻。
* 如果设置了 ' incsearch' 选项,Vim将在你正在输入搜寻模式的时候就
显示搜寻的结果(而不是等到你敲了回车之后)。这能够使你更快地找出拼写
错误。
* 如果设置了 ' hlsearch' 选项,Vim将使用黄色背景对搜寻结果进行高亮
显示。你可以对搜寻的结果一目了然。应用在程序代码中可以显示变量的所有
引用。你甚至不需要移动鼠标就能看到所有的搜寻结果。



对于结构化的文档,快速定位的办法就更多了。Vim提供专门针对C程序(以及
C++、Java等等)的特殊命令:


* 使用 %可以从开始括号跳到对应的关闭括号。或者从 ``#if'' 跳到对
应的 ``#endif''。事实上, % 可以完成许多对应项之间的跳转。可
以用来检查if()和{}结构是否平衡。
* 使用 [{可以在代码段(block)中跳回到段起始的 ``{``。
* 使用 gb 可以从引用某个变量的地方跳转到它的局部声明。



定位的方法当然不止这些。关键是你需要知道有这些命令。你也许会说不可能学
会所有命令 ? Vim里有成百个定位命令,有的很简单,有的很聪明 ? 这需要
几星期的学习。不过,你不必如此;你只需要了解自己的编辑特点,然后掌握相
关的定位命令就可以了。

可以采取三个基本步骤:


1. 在你进行编辑的时候,注意那些重复进行的操作。
2. 找出能快速进行这些操作的编辑命令。阅读文档,问问朋友,或者看看其他
人是如何做的。
3. 进行练习,知道熟练为止。



让我们通过以下这个例子说明一下:


1. 你发现在写C程序时,经常要查找函数定义。你目前使用 * 命令对函
数名进行搜寻,但得到的往往是函数的引用而不是函数定义。你觉得一定会
有更好的办法。
2. 读过一篇快速参考以后,你发现关于定位标记的说明,里面说明了如何定位
函数定义,这正是你要找的!
3. 你试着生成了一个标记文件,使用Vim自带的ctags程序。你学会了使用
CTRL-] 命令,发现这省了不少事。为了更方便,你在 Makefile 里加
入了几行以自动生成标记文件。



当你使用以上三个步骤时,有几点需要注意的地方:


* ``我只想完成任务,不想去读那些文档来找新的命令。''。如果你真的是这
么想的,那么你将永远停留在计算的石器时代。有些人编写什么都用
Notepad,却总不明白为什么其他人总能用他一半的时间成任务。
* 不要过分。如果你总为一点小事也要去找完美的命令,你就没法集中精力到
你本要完成的任务上了。只要找出那些耗费过多时间的操作,然后使用相关
的命令直到熟练就可以了。这以后你就能集中精力到自己的文档上了。



下面这些章节给出了大多数人遇到的操作。你仿照它们在实际工作中使用
三个基本步骤。

不要敲两次

我们所使用的字词集合是有限的。既使是词组和句子也不过是有限的几个。对于
程序来说更是如此。很明显,你不想把同样的东西敲上两遍。

你经常会想把一个词替换成另一个。如果是全文件替换,你可以使用
:s (substitute)命令。如果只是几个位置需要被替换,一个快速办法是使
用 * 命令找出下一个词,使用 cw 来进行替换。然后敲
n 找到下个词,再用 . 重复 cw 命令。

. 命令重复上一个改变。这里的改变是插入、删除或替换操作。能够重复
进行操作是个极为强大的机制。如果好好使用它,那么你大部分的编辑工作可能
只不过是敲几下 . 的事。小心不要在两次重复之间做其他修改,因为这
将改变你要重复的操作。如果确实需要如此,可以使用 m 命令记住要修
改的位置,等重复操作进行完毕之后再回过头来修改它。

有些函数名和变量名可能很难敲。你能准确无误地输入
``XpmCreatePixmapFromData''么?Vim的自动补齐机制能给你省不少事。它查看
你正在编辑的文件以及#include文件,你可以只敲入``XpmCr'',然后使用
CTRL-N 命令让Vim把它补齐为``XpmCreatePixmapFromData''。这不但节省
了输入时间,而且减少了输入的错误。

如果你有同样的词组或句子需要输入多次,还有个更简单的办法。Vim可以进行
录制宏。使用 qa 命令开始在'a'寄存器里录制宏。然后正常地输入编
辑命令,最后用 q 退出录制状态。如果你想重复所录制的命令,只需
执行 @a 命令。Vim总共提供26个这样的宏寄存器。

使用宏录制功能可以记录各种操作,不只限于插入操作。如果你想重复一些东西,
不妨一试。

需要注意的是记录的命令会被原封不动地重复执行。在进行定位时简单的重复宏
操作可能不是你想要的结果。比如对于一个词这里可能需要左移4个字符,在下
个地方可能就要左移5个字符。所以必须定位到合适的位置再重复进行宏操作。

如果你要重复的命令很复杂,把它们一次敲进去会很困难。这时你可以写一个脚
本或宏。这常被用于建立代码模板;比如,一个函数头。你想做得多聪明就可以
做得多聪明。

知错就改

编辑时经常会出错。无人能免。关键是快速发现并进行改正。编辑器应该提供这
方面的支持,不过你必须告诉它什么是对什么是错。

你可能常常会重复同样的错误,你的手指所做的并非是你要它做的。可以使用缩
写(abbreviation)进行修正。下面是一些例子:


* :abbr Lunix Linux
* :abbr accross across
* :abbr hte the


这些词会在编辑时被自动改正。

同样的机制也可以用于对很长的词语进行缩写。特别适用于输入那些你觉得很难
敲的词,它可以避免出错。比如:


* :abbr pn pinguin
* :abbr MS Mandrake Software


但有时候你想要的正是那些缩写,比如想插入``MS''。所以缩写中最好使用那些
不会出现在文中的词。

Vim提供了一个很聪明的高亮机制,一般用于程序的语法高亮,不过也可以用来
查错。

语法高亮会使用颜色显示注释。这听上去不是什么特别重要的功能,不过一旦用
起来就会发现这其实很有用。你能够快速地发现那些没有高亮却本应作为注释的
文字(可能是因为忘了敲注释符)。也可以发现一些被错误当成注释的代码(可
能是因为忘了敲``*/'')。这些错误在黑白方式下是很难被发现的,浪费了不少
调试时间。

语法高亮也可以用来查找不匹配的括号。一个未被匹配的``)''会被亮红色背景
加以标识。你可以使用 % 命令他们是被如何匹配的,然后把``(''或
``)''插入到合适的位置。

另一类常犯的错误也很容易发现,比如把 ``#include <stdio.h>''敲成了
``#included <stdio.h>''。在黑白方式下这是很难发现的,但在语法高亮下
则能很快发现``include''能被高亮而``included''没有。

再看一个更复杂的例子:对于英文文本你可以定义一个所要使用的词的长列表。
所有未在表中出现的词都可能是错误,并进行高亮显示。可以定义几个用于编辑
词表的宏。这正是字处理器的拼写检查功能。Vim中是靠一些脚本来实现的,你
也可以对它进行定制:比如,只对注释中的文字进行拼写检查。

第二部分:编辑多个文件

文件总是成帮结伙

人们很少只编辑一个文件。一般需要顺序或同时编辑一些相关的文件。你应该利
用编辑器使多文件编辑工作更为高效地。

上面提到的标识(tag)机制也支持跨文件搜寻。一般做法是为项目的所有文件生
成标识文件,然后在项目的所有文件中搜寻函数、结构、类型(typedef)等的定
义。这比手工搜寻要快捷的多;我浏览一个程序要做的第一件事便是建立标识文
件。

另一个强大的功能是使用 :grep 命令对一组文件进行模式搜寻。Vim把
搜寻结果做成一个列表,然后跳到第一个结果。使用 :cn 命令跳到下
一个结果。如果你想改变一个函数调用的、参数个数,那么这个功能会很有用。

头文件里有很多有用的信息。然而要知道一个声明出现在哪个头文件中却需要花
不少时间。Vim能够理解头文件,能够从中找到你需要的东西。把光标移动到函
数名下,然后敲 [I:Vim就会显示出一个头文件中该函数名的所有匹配。
如果你想得到更详细的结果,可以直接跳到声明中。一个类似的命令可以用于检
查你所使用的头文件是否正确。

你可以把Vim的编辑区域进行分隔,用来编辑不同的文件。你可以对两个或多个
文件进行比较,或者进行拷贝/粘贴。有许多命令用于打开关闭窗口,文件间跳
转,暂时隐藏文件等等。可以再使用上面提到的三个基本步骤选择合适的命令进
行学习。

多窗口还有更多的用法。预览标识(preview-tag)就是个很好的例子。它打开一
个特殊的预览窗口,光标还保留在你正在编辑的文件中。预览窗口中可以是光标
所指函数的声明。如果你移动光标到另一个名字下,停留一两秒,预览窗口中就
会显示那个名字的定义。名字还可以是头文件中声明的结构或函数。

让我们一起来工作

编辑器可以编辑文件。e-mail程序可以收发消息。操作系统可以运行程序。每个
程序都有它自己的任务,而且应该做好。如果能让程序一同工作,那么就会实现
很强大的功能。

举个简单的例子:选择一个列表中的结构化的文字,并对它进行排序:
!sort。这将使用外部命令``sort''来过滤文件。容易吧?排序功能是可以
添加到编译器中的。不过看一下``man sort''就知道它有很多选项。它可能用了
一个极为精巧的排序算法。你还打算把它加到编辑器中么?更何况还有其他不少
过滤程序。编辑器可能会变得很大。

Unix精神的一个体现就是提供独立的程序,各自做好自己的任务,然后组合起来
完成更大的任务。不幸的是,许多编辑器不能很好地和其他程序一起工作,比如,
你不能包Netscape的邮件编辑器换成其他编辑器。这样你只能使用那个不顺手的
程序。另一个趋势是在编辑器里提供所有的功能,Emacs就是个代表(有人说
Emacs其实是个操作系统,只是可以用来编辑文件)。

Vim尽力和其他程序集成,但这需要经过斗争。目前Vim已经可以作为
MS-Developer Studio和Sniff的编辑器。一些e-mail程序(比如Mutt)也支持外
部编辑器。和Sun Workshop的集成工作正在进行中。总的来说这个领域还有待提
高。将来我们会有一个大于其各部分总和的系统。

文本结构化

你可能经常会遇到有一些结构的文本,这些结构可能同于那些现有命令所支持的
结构。这样你不得不利用那些底层的``砖头''创建你自己的宏和脚本。这里说明
的就是这类更复杂的东西。

有个简单的办法可以加速编辑-编译-修改这个循环。Vim提供 :make 命
令,用于进行编译,并且获取错误输出,把你带到发生错误的地方进行修正。如
果你使用了另一个编译器,那么错误就无法被Vim获得。如果不想自己动手,可
以修改' errorformat'选项。告诉Vim错误是什么样子,以及如何从中获
得文件名和行号。它支持复杂的gcc错误信息,所以应该也能支持其他编译器。

有时处理一个新的文件类型只需要设置几个选项或写一些宏。比如,为了在man
手册中进行跳转,你可以写一个宏获取光标下的词,清除缓冲区,然后读入新的
man手册。这是简单而高效的参照(cross-reference)方法。

使用三个基本步骤,你可以更有效地处理各种结构化文件。只需要想想你想对文
件采取的操作,然后找到相应的命令去用就是了。就这么简单,你只要去做就成
了。

第三部分:磨刀

养成习惯

要学会开车必须下功夫。这是不是你只骑自行车的原因么?当然不是,你会发现
你必须花时间来获得所需的技术。文本编辑也不例外。你需要学习新的命令,并
使用它直至成为习惯。

另一方面,你不应该试图学习编辑器提供的每个命令。这是彻底的浪费时间。大
多数人只需要学习10%到20%的命令就足够工作了。但是每个人所需要的命令都
各不相同。你需要不断学习,找出那些可以自动完成的重复操作。如果你只做一
次操作,而且以后也不会再去做,那么就不需要进行优化。是如果你发现你在过
去的一小时中重复了好几遍同样的操作,那么就有必要查看一下手册,看看能否
更快速地完成。或者写一个宏来做。如果是是个不小的任务,比如对一类文本进
行对齐,你需要阅读一下新闻组或看看Internet上是不是有人已经解决了同样的
问题。

最根本的步骤是最后的那一个。你可能能够找到一个重复性的任务,找到一个不
错的作法,可过了一个周末就彻底忘了自己是怎么做的了。这不成。你必须重复
你的作法直到烂熟于胸。只有这时你才真正获得了你需要的高效。一次不要学得
太多。一次只试一些工作得很好的方法。对于那些不常用的技巧,你可能只需要
把它记下来,留待以后查阅。总之,如果抱着这样的目标,你的编辑技能就会更
加有效。

最后需要指出的是,如果人们忽略了以上几点会发生什么:我仍然可以看到有人
盯着屏幕看上半天,用两个指头敲几下,然后继续抬头看着屏幕,还抱怨自己太
累.. 把十个指头都用上!这不光更快,还不累。每天抽出一个小时练习一下指
法,只要几星期就足够了。

后记

书名得益于Stephen R. Covey所著的那本畅销书《高效人的七种习惯》(``The 7
habits of highly effective people'')。

关于作者

Bram Moolenaar是Vim的主要作者。他编写了Vim核心功能,并采纳了许多开发者
提供的代码。他的e-mail地址是:Bram@Moolenaar.net

2006年9月27日

在vi里开发JAVA代码

准备建立自己好的编辑习惯,vi看来是个不错的开始
转帖自http://java.ccidnet.com/art/3743/20050901/519667_1.html

大多数的软件开发人员都会在其生涯的某个时候碰到vi编辑器??如果不是在大学里的话,那就是在实际使用的UNIX机器上,将自己的Windows桌面机器里所编码东西安装到完全成熟的集成开发环境(IDE)里的时候。很少能够碰到长期从事微软系统开发的开发人员不会在一个月至少使用vi一次。有些开发人员很喜爱vi,而其他的则很厌恶它。但是对于一个Java 的开发人员来说,要想让vi成为一个更好的开发环境将会有很多的工作需要完成。



很多人都预料Java和vi并不总是能够共同工作。因为vi是小型功利主义的同义词,而Java则像是一头笨拙的大型动物。选择将vi作为其主要工作环境的Java开发人员可能是比较罕见的,但是即使是偶尔使用vi的用户,也能够从花上一点时间将它配置一下,使之与Java更加友好上获益。你可能会很震惊的看到,当所有提到的工作都做到位之后,vi能够为你的IDE提供多少特性。



让我们开始吧




首先,要确信你的vi命令已经连接到了vim库,至少要象征性地连接到了或者替代了(aliased)。Vim的意思是Vi Improved,它几乎已经在vi及其衍生产品中占据了的主导地位。它速度快,易维护,特性丰富,而且几乎在每个平台上都有。



一旦你安装好了vim,就要在你的主目录下创建一个叫做.vimrc的文件。Listing A显示了一个很好的.vimrc起始文件。这个文件里的几个命令行告诉vi要给Java的源代码涂上颜色,使其更易于阅读。其结果并不十分重要,而且如果你不喜欢显示出来的颜色,你可以放心地取消它们。




对标签跳跃的支持



标签是Java的标识符,它们可以是包装名、类名、方法名,或者是字段名。在你的代码里创建一个所有标签的大型索引,能够让你使用单个按键就跳跃到任何类、方法或者字段的定义上。这些索引文件都是使用ctags程序创建的,后者在vim的发行版里都有。



Ctags会获取Java源文件或者包含有Java源代码的目录的列表,从中提取标识符的信息,再生成所vi需要的用于跳跃到标签的排序索引。下面一行代码是ctags调用的一个例子,只要JAVA_HOME变量被正确地定义,它会生成一个包含有项目源代码里所有标识符的标签文件,Sun核心库源代码也是如此:



ctags -f ~/.tags -R ~/myprojects/src $JAVA_HOME/src



一旦标签索引创建好了,你所需要做的只是告诉vi要在哪里找到它。这一步是通过将set tags=~/.tags添加到你的~/.vimrc文件里实现的。有了可用的标签索引文件,而且vi也知道了要到哪里去找到它,你现在就可以通过按 [CTRL] ]来跳跃到任何标识符上了。尽管这对于跳跃到你已经定义的方法、类和你自己编写的字段上很有用,但是如果你将Java核心类库加到你的标签索引里将会更加有用。现在,只用简单地对任何核心类库的类或者方法按[Ctrl] ],你就会跳跃到它完全使用javadoc所编写成的定义。.


标签名的填充




虽然跳跃到类、方法和字段定义所在的位置对于查看其javadoc以及检查其内容是有很用处的,但是更常见的情况是,你只是需要检查一个关键字的定义。在大多数IDE里,这一点是通过输入关键字完成的。但是,如果你已经将你的标签文件像前面一部分所讲的那样设置了,那么在vi里填入关键字就只是一个导向性的配置了。



将set complete=.,w,b,u,t,I这一行放到你的~/.vimrc文件里,能够让你在插入模式下通过按[Ctrl]N自动地将任何类、方法或者字段名填满。连续按[Ctrl]N将移动到下一个相匹配的地方。当你看到你想要找的标签时,只用继续输入你源代码剩下的部分就行了。你可以在vim的Web 网站上找到其他关于标签名填充的提示,包括使用Tab键来进行填充。



方法的折叠



好的实践经验告诉我们:你应该保持类的短小和简单,因为程序复杂性表现在类的层次性上,而不是500行的方法上。不幸的是,有些类已经脱离了控制,变得事实上无法移动操作了。



IDE常常会在左边一个狭窄的框体提供一个列出了内容里方法的表格,以此来减轻开发人员查看冗长源代码的困难。与之相对的是,vi提供了一种它叫做“方法折叠(method folding)”的可折叠程序块。折叠允许你隐藏被缩排过的(indented)代码块开头和结尾之间的所有代码。要激活折叠,就要把set foldmethod=indent加到你的~/vimrc里。



一旦方法的折叠被激活,你就可以使用:set foldlevel=0来极大地精简一个Java的源文件。如果将折叠的层数设置为零,那么你就是在告诉vi只显示完全没有被缩排的命令行,而后者在大多数Java源文件里代表着包装、导入,以及类或者接口的定义行。设置foldlevel=1就是告诉vi说:除了没有被缩排的命令行,只缩排过一次的命令行也应该被显示,它们包括方法的签名以及其他一些不多的内容。要打开一个折叠夹并查看某个方法所隐藏的内容,你就要在被折叠的命令行上输入zO。



通过设置foldlevel就能够很轻易地开启或者取消方法的折叠。我喜欢在调试的时候使用它,但是不喜欢在编写新代码的时候使用它。你要自己来决定它应该如何去适应你的工作方式。


编译和快速修补的编辑




IDE不仅仅只是用于编辑;它们还是编译环境。Vi在不需要使用外部编译器和剖析结果信息上的工作做得非常好。现在很多Java的项目都将易于编写脚本的Ant作为一个创建环境。我没有向.vimrc文件里加载很多Ant专用的设置,而是单独创建了一个做作vimAnt脚本,见Listing B。



这个脚本调用了一个带有几个参数的Ant可执行文件,然后对输出进行过滤,让其只包含编译器输出。你现在几乎就准备好从vi里调用Ant了。你只需要将Listing C里的命令行加到你的~/.vimrc文件里。这些命令行告诉vi要调用你所创建的vimAnt脚本,并提示它如何剖析Ant的jikes输出。



在你的系统路径下有了vimAnt脚本之后,你现在就可以使用:make命令来初始化编译了。当前目录及其所有的父目录都会被搜索,以寻找一个build.xml文件,这个文件的类对象会被调用。错误输出会被vi自动地剖析。



一旦你在vi里进行了带有错误的编译,你就可以使用快速修复(quick fix)模式来迅速地到达错误地点,进行及时的修补。:cn命令会把你带到下一个出错地点,而不考虑它在什么文件里。:cc命令会向你显示当前错误的编译器输出信息;而:cl会生成一个列有项目所有错误的列表,以供浏览这些错误。修补好你的错误,你就离成功的编译只有一:make之遥了。

2006年9月26日

wherethehellisbrian

wherethehellisbrian

FC4下使用VPN继续受挫

在FC4下使用VPN遇到两个问题,
1.在eclipse使用CVS通过VPN获得项目的时候,一个固定的项目会中断VPN
2.通过使用wine模拟使用BQQ,发现无法登陆网络.

在第1个问题上,客户端用的是PPTP Client,服务端用的是PPDP,但是用CVS check out 固定的项目就会造成通过VPN服务器访问内网中断,但是客户端到VPN服务器的访问仍然是通的.试图通过修改家里的路由器的MTU值来解决这个问题,最终失败,仍然没有找到问题的解决办法.

对于第2个问题,通过windows平台测试,发现windows平台下的BQQ,也无法通过VPN登陆内网,估计是服务器的配置上可能有问题.等重新检查服务器的配置后才能确定了.

随便翻了两页书,发现Xwindow的结构还是挺有意思的,负责控制画界面和硬件打交道的部分是server,应用程序是client,

2006年9月25日

FC4配置网络摘录

以下是从Linux伊甸园论坛 上看到的帖子,对我配置Linux Fc4帮助很大。感谢作者gt4317

【原创】FC4 安装配置过程(打魔兽,上QQ2005)要求加精

自从上次安装了QQ为了能用wine再装一遍,折腾了很长时间,FC4装上快3个星期了,基本被驯服并且愿意为我工作了。鄙人花了近300个小时的时间。现在写个安装手册,强烈要求版主加精,希望有人愿意看。

1、安装FC4
光盘安装是傻瓜化安装,我就不说了,安装过程中出错自己解决。
下载fedora core 4 4个iso文件,下面将的是硬盘安装方法。为了少打几个字母,我把4个文件放在
d盘的d:\fc4下的1.iso,2.iso,2.iso,4.iso

将1.iso中的isolinux解出到d:\fc4\boot
然后,去红旗盘中找了个loadlin.exe(网络上到处都是)
建立boot.bat
loadlin vmlinuz initrd=initrd.img ramdisk_size=64000 %1 %2 %3 %4 %5 %6 %7 %8 %9
上述文件全部放在d:\fc4\boot下
然后,使用98盘启动(只要是纯dos就行)
d:
cd fc4
cd boot
boot
然后系统控制全被交给你内存虚拟盘中的linux并且开始了安装。
语言我选的是US,键盘US,然后选择硬盘安装。然后用上下光标移动到/dev/hda5输入fc4
然后就开始安装了。再次说明一下。
/dev/hdaX 是第一个硬盘,第二个硬盘是/dev/hdbx
每个硬盘的主分区是1-4,第一个硬盘就是/dev/hda1-4如果有了扩展分区,那么下面的逻辑驱动器是从5开始的。如果你的硬盘是一个主分区3个逻辑驱动器,那么编号分别是
/dev/hda1 ->c:
/dev/hda5 ->d
/dev/hda6 ->e
/dev/hda7 ->f

然后的安装过程自己看把,一般没有问题。
安装完成的向导中,建立一个非root用户。我建的是admin
一定要建,早晚都要用,现在建更好。
装完了吗??恭喜你,入门了。

2、安装nvidia的显卡驱动。
FC4的显示驱动安装和FC3稍微有点不一样。ATI的自己研究吧
还有就是装了nvidia的驱动后,鼠标光标旁边的杂点也不见了,一般的屏幕偏移现象有消失了并且打开了3d的opengl支持。
显卡的驱动一定要装,不然后面说的游戏速度慢不要再问我。
下载nvidia的驱动,放到tmp(推荐,避免某些不可预知的权限问题)下。
/tmp/NVIDIA-Linux-x86-1.0-7667-pkg1.run
在安装前确保安装了
GCC,compat-gcc,libstdc++,compat-libstdc++,kernel,kernel-devel
然后更改/etc/selinux/config文件
将SELISELINUX=enforcing加个#注释
再加一行
SELINUX=disabled
然后重新启动你的电脑
起来后用ctrl+alt+f1切到控制台,使用root登录,一应要用root
然后使用init 3切换到单用户模式并强行关掉gnome
然后cd /tmp
./NVIDIA*.run
执行安装程序,过程中如果提示没有没有识别出你的kernel并且要上nvidia的网站下更新版本的时候选NO其余都是YES/Accept
安装完成后,把刚才的/etc/selinux/config文件改回来,另外修改/etc/X11/xorg.conf
把启动modules中的"dri"的一行去掉
然后把驱动中有"nv"的地方换成"nvidia"
保存,退出
然后执行fixfiles relabel之后有个几分钟的等待。然后重启,重启过程中有个地方也有大概10分钟的等待,等着吧,他在重新relabel以便selinux
然后进gnome的时候出现了nvidia的logo就成功了。

如果此时的屏幕还有偏移,开个终端运行xvidtune然后调整,然后apply预览一下。调好后选show把参数显示出来,然后在/etc/X11/xorg.conf中,显示器的那节中以下列方式加上一行

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "MIRECHANG 77"
DisplaySize 320 240
HorizSync 30.0 - 71.0
VertRefresh 50.0 - 160.0
Option "dpms"
ModeLine "1024x768" xxx xxx xxx xxx xxx xxx xxx xxx xx xxx xxx xxx
EndSection
然后重启你的x就OK

3、访问NTFS分区
下载
kernel-module-ntfs-2.6.11-1.1369_FC4-2.1.22-0.rr.6.4.i686.rpm
然后rpm -ivh kernel*.11*i686.rpm 安装该文件

3、自动加载windows下的分区
我有c,d,e,分别是hda1,hda5,hda6,其中c是ntfs的。
在/mnt下建立目录
mkdir c
mkdir d
mkdir e
然后修改/etc/fstab
加上下列几行
/dev/hda1 /mnt/c ntfs iocharset=utf8
/dev/hda5 /mnt/d vfat iocharset=utf8
/dev/hda6 /mnt/e vfat iocharset=utf8
然后重新启动计算机

4、美化中文界面。
上面已经加载了ntfs的分区,不错,那个就是我的windows的安装盘。
将windows/fonts/ 下的中文字体,simsun.ttc是必须的,其他的自己看着办。复制到 /usr/share/fonts/chinese/TrueType下。然后更改配置文件。如果不想该配置文件先把上述目录清空了在将中文字体复制进去 就行了,我原来就是这样做的,但是该配置文件更保险。
修改/etc/fonts/fonts.conf
看见下面一段一段的,整个文件****有6断

Times
Times New Roman
Nimbus Roman No9 L
Luxi Serif
Sazanami Mincho
Kochi Mincho
Simsun #像这样,把Simsun这行加在系统默认所有中文字体的前面。
AR PL SungtiL GB
AR PL Mingti2L Big5
Baekmuk Batang
serif
总共有6段,全部修改完,再把首选项中的字体中的大小改为9。然后注销,重新登录,然后字体近乎完美,和windows已经差距不大了,某些地方比windows更漂亮。比FC中好多了。

5、安装输入法
FC4自带的iiimf有点.....我更喜欢scim
那么装吧,我这个方法首先要保证能上网并连上了。(怎样配制PPPoe上网不要我说了吧)
开个终端然后
yum remove iiimf*
删除原来的输入法,*一定要跟,*是什么意思大家都应该知道吧,和ls中的用法一样。
然后
yum install scim*
安装scim,这是完全的安装,如果要选择一下先用yum list scim*看一下有些什么再分别安装,反正也不大,几个M就完全安装了
然后在配置一下。去首选项中的更多首选项中的scim的配置中,把不用的输入法前面的勾去掉。省得以后ctrl+shift切换输入法使用次数

6、播放MP3
到网络上下个bmp装上就可以了全名是beep-media-player
然后安装它的mp3,wmv的插件。

7、播放rmvb
FC4自己带的helix基本不能放东西。到real.com上下个
RealPlayer10GOLD.bin
然后给执行权限,也可以点右键属性可执行的地方打个勾
chmod a+x RealPlayer10GOLD.bin
然后./RealPlayer10GOLD.bin然后自己看着办

8、配置游戏
鄙人非常喜欢玩游戏,如魔兽,CS
这里使用的是cedega,他对游戏的支持远远比wine好,特别是3D加速。但是cedega是要收钱的。我用的是盗版的,不要告我哦。
wine我也再用,等下你们就知道了。
下载cedega 4.3的rpm安装包,然后安装,不要告诉我你不会装rpm
然后就OK了,例如运行魔兽

开个终端然后cedega War3.exe然后就OK了,速度和windows 下基本没有差别。

9、配置QQ2005

这是最麻烦的东西了,我安装过程中花的时间最长的就是这个。对wine版本控制的要求几乎到了疯狂的地步,我敢保证你我高诉你的方法能用,并且是独门秘籍。你在整个互联网上都搜不到,我光这个东西花了近150个小时。

首先安装wine注意版本,我用的是最新的20050628

还记得我叫你建的非root用户吗,现在就要用,如果没有建,那么赶快useradd -g root xxxxx一个
下面的安装我一直也必须使用admin用户,非root ,一定是重启然后用非root用户登录的,不能su xxxxx,切记

一定要是这个版本,不信你就走这瞧,并且不能下rpm一定要用源码自己编,现在还没有for FC4 的rpm
下载源码,然后安装,安装也是有学问的,不要一来就configure 然后make && make install 如果你是那样装的,我敢保证你很麻烦。
下载源码包,解压
然后进入cd wine-20050628
然后安装,一定用我这种方法
./tools/wineinstall
输入上面的命令,然后它就自动configure/make depend/make/make install了
慢,我的爱机跑了近半小时然后提示是否要建config文件选是,其他的自己看着半,
如果中途出错了,检查你的系统。如果还是不行,那么很遗憾,用装不上QQ了。

然后安装wine-config-sidenet
到sidenet的网站下,网址我记不清了,自己google一下。
是个tgz的文件,然后cp到/tmp下,解压。

然后最重要的是dcom98.exe和mfc40.dll千万不能用2000或xp下的版本。它的readme中有地址,到微软网站下。
然后解压出dcom98.exe和mfc40.dll放在刚才解出的/tmp/wine-config-sidenet目录下
然后./setup运行
提示语言时输入cn回车
选安装内容的时候选3
是否装ie输入y
是否装dcom98输入y
是否装media player 7输入n
其他的一般都是y
然后,它就自动备份了你的/home/admin/.wine目录,自动下载安装,安装速度看你的网络情况和机器配置,期间最好不要动你的机器,不要做任何操作,死了可别怪我没有告诉你。ie的安装过程和windows一样,自己装吧.
我的机器跑了将近半个小是,然后OK了,它会自动启动你的ie看看是否能上网,如果能上,你就基本成功了

最后下载qq2005beta2.exe放在你的虚拟c盘中,我的是/home/admin/c下。(很重要)
然后wine qq2005beta2.exe
然后像windows下一样的安装。装完就能运行了

顺便说一下,运行的速度很慢,不要以为它死了。如果你没有特殊要求,建议使用lumaQQ


上面就是我近300小时的心血。
希望能帮助大家,有的方法希望能有抛砖引玉的作用,如果你能顺利的完成上面所有步骤的安装,那么,这个你实际已经能使用FC4代替windows下的大部分操作了。