编译原理三大圣经——龙书、虎书、鲸书下载

1.龙书(Dragon book)
书名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman
国内所有的编译原理教材都是抄的它的,而且只是抄了最简单的前端的一些内容。
龙书中文版第一版下载 :http://u.115.com/file/f7f9b772be

龙书英文版第二版下载:http://u.115.com/file/f7d03acd78

2.鲸书(Whale book)
书名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick
也就是高级编译原理,象什么陈意云之类的估计也就是这个水平不错了
鲸书中文版:http://u.115.com/file/f763340b5e

鲸书英文版:http://u.115.com/file/f7acb0fcde

3.虎书(Tiger book)
书名是:Modern Compiler Implementation in Java/C++/ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg
这本书是3本书中最薄的一本,也是最最牛的一本!
虎书中文版:http://u.115.com/file/f7f4984a86

GRUB Error 28: Selected item cannot fit into memory 解决方法

今天偶用wubi安装ubuntu10.10时,重启选择安装项却提示:

“Error:the initrd is too big!

Press any key to continue”

然后再怎么也进不去了,这种情况以前没有遇到过。既然ubuntu装不了就改装Qomo Linux吧,于是下了镜像文件选择硬盘安装。可是重启选择安装项却提示:

“GRUB Error 28: Selected item cannot fit into memory”

然后也进不去了,然后偶就彻底无语了。根据提示的字面意思好像是内存不够,偶这台式机是前几年买的,512的内存。而到网上查了,这两个Linux要求的最低配置是300多内存就行了,所以偶这不可以是配置不行。然后又到网上查了解决办法,只需要改下BIOS设置即可。具体方法如下:

开机进入BIOS设置->进入advanced chipset features的设置->将“memory Hole At 15M-16M”设置成[Disable],问题解决!

(注:部分机型可能会将chipset选项隐藏,如果找不到的话,按Ctrl+F1即可显示。)

Okular——Linux下PDF阅读器

Okular 是个 KDE4 中的通用文件检视器,基于 KDE3 的 KPDF。Okular 不只是可以看 PDF 文档,包括 PS、DjVu、CHM、ODT,甚至图片、电子书、漫画书都可以检视。不过偶是主要用来看PDF。

Linux下PDF阅读器不少,但是好用的不多。偶只希望有个可以添加书签的功能就可以了。而Okular可以添加书签、批注,不过这些内容都不写入到文件中,而是保存在用户主目录中的.kde/share/apps/okular文件夹下。

Okular: http://okular.kde.org

ubuntu 10.10设置NTFS下文件的执行权限

安装了Ubuntu 10.10后,突然发现NTFS系统下的文件没了可执行的权限了,也就是说可执行文件放在NTFS下就不能执行了。而且无论怎样都不能修改其权限。

在网上查了资料,发现安装以下两个插件后就行了:

sudo apt-get install ntfs-3g
sudo apt-get install ntfs-config

然后以root身份运行ntfs-config后,把权限全开就行了。

现在 问题解决了,不过在FAT下好像也存在这个问题,而且在网上也找不到解决方法,好像是由于FAT的特殊性造成的,但是在之前版本的系统中没有这个问题,有谁知道怎么解决的请告诉偶一声。

消除VIM的^M字符

在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”。有几种方法可以处理。

1.使用dos2unix命令。一般的分发版本中都带有这个小工具(如果没有可以可以直接从更新源里安装),使用起来很方便:
$ dos2unix myfile.txt
上面的命令会去掉行尾的^M。

2.使用vi的替换功能。启动vi,进入命令模式,输入以下命令:
:%s/^M//g (去掉所有的^M。注意:这里的“^M”要使用“CTRL-V CTRL-M”生成,而不是直接键入“^M”。)

linux apache网页目录设置

在Windows下,Apache的配置文件通常只有一个,就是httpd.conf。但是在Linux下就比较复杂。

Linux下apache的默认目录是/var/www。网上说的修改方法是:打开/etc/httpd/conf/httpd.conf文件,找到下面这行 DocumentRoot “/var/www” 可以改成你想要的目录,同时要确保你对该目录拥有相应的权限。

偶用的是ubuntu,没有/etc/httpd/conf/httpd.conf这个文件,它的配置文件好像是/etc/apache2/apache2.conf,不过这个文件里也没有目录设置的选项。最后偶用的是一个比较笨的方法,就是打开所有与apache相关的配置文件,然后查找”/var/www”。最后找到了 /etc/apache2/sites-available/default 这个文件,里面有这样的内容:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/

现在只要把DocumentRoot改为你想要的目录即可。

VIM代码补全插件

补全功能偶是基本上不用,偶只知道在vim有两款插件可以实现代码补全功能。一个是supertab(http://www.vim.org/scripts/script.php?script_id=1643)另一个是neocomplcache(http://www.vim.org/scripts/script.php?script_id=2620)。

据说neocomplcache的功能更强大一些,不过偶用的是supertab。

下载安装


首先从网上下载插件然后安装,如果插件是vim格式的直接复制到vim的plugin目录即可。如果是vba格式的就用vim打开该文件,然后执行命令 :so % 即可。如果不需要了想删除该插件的话,对于vim格式的直接删除文件就行了。对于vba格式的,首先运行vim然后执行命令 :RmVimball 插件名 [安装路径]

使用方法


默认情况下使用Ctrl+P 或 Shift+Tab选择下一个匹配项,使用Ctrl+N 或者 Tab选择上一个匹配项。想知道更多请输入命令 :help completion 查看帮助。

效果如图:

设置VIM代码折叠效果

  1. 折叠方式

可用选项 ‘foldmethod’ 来设定折叠方式:set fdm=*****

有 6 种方法来选定折叠:

manual 手工定义折叠

indent 更多的缩进表示更高级别的折叠

expr 用表达式来定义折叠

syntax 用语法高亮来定义折叠

diff 对没有更改的文本进行折叠

marker 对文中的标志折叠

注意,每一种折叠方式不兼容,如不能即用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。

使用时,用:set fdm=marker 命令来设置成marker折叠方式(fdm是foldmethod的缩写)。

要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=syntax,就像添加其它的初始化设置一样。

  1. 折叠命令

选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:

如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。

在可折叠处(大括号中间):

zc 折叠

zC 对所在范围内所有嵌套的折叠点进行折叠

zo 展开折叠

zO 对所在范围内所有嵌套的折叠点展开

[z 到当前打开的折叠的开始处。

]z 到当前打开的折叠的末尾处。

zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。

zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。

当使用marker方式时,需要用标计来标识代码的折叠,系统默认是 {{{和}}} ,最好不要改动之:

我们可以使用下面的命令来创建和删除折叠:

zf 创建折叠,比如在marker方式下:

zf56G,创建从当前行起到56行的代码折叠;

10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。

10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。

在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。

zd 删除 (delete) 在光标下的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

zD 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。

仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

zE 除去 (Eliminate) 窗口里“所有”的折叠。

仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

以上内容摘自互联网


我使用的是marker折叠方式,修改它的折叠识别代码,实现将{}内的内容折叠。方法如下:

在vimrc中添加如下代码,然后运行VIM后按F6键即可。

1
2
3
4
5
6
7
"代码折叠设置-----------------------------------
"{}折叠设置 ---------------------------------
map <F6> :call My_Fold()<CR>
function My_Fold()
set foldmethod=marker
set foldmarker={,}
endfunction

有不懂的可以使用命令:help marker查看帮助。
效果如下图:

VimIM——Vim 中文输入法

概述


VimIM,全名就是Vim Input Method,即Vim下的输入法。一个文本文件,构成一个中文输入法。插上联网就可以云输入。如果再加上一个文件或目录,无需联网照样敲打中文,随心所欲。程式文件用的是 Vimscript, 天生跨平台(Windows, Mac, Linux)词库文件就是自己的输入法(拼音,無蝦米,倉頡,英文,DIY)所谓安装,就是把文件或目录扔到 vim 的 plugin 目录之下。

插上【拼音】词库,就是vim拼音输入法(全拼或六种双拼)。
插上【五笔】词库,就是vim五笔输入法。
〖目录词库〗可以是海量,大小无限制。不占内存,不耗CPU
【四角号码】可以当作【拼音】动态辅助码,完完全全的 hjkl

不设选项,不换模式,点<C-6>就可以上汉字,是谓〖点石成金〗。
不按快捷键,也可以自动进入中文输入模式,如果文件后缀名是 vimim
所谓卸载,就是删除文件或目录。

使用方法


下载程序

官方网址:http://vim.sf.net/scripts/script.php?script_id=2506

最新主页:http://vimim.googlecode.com/svn/vimim/vimim.html

安装程序

所谓安装,就是把VimIM插件 vimim.vim 和词库文本文件扔到 vim 的 plugin 目录之下。Linux系统的话就是/usr/share/vim/vim72/plugin。然后运行VIM按Ctrl+切换到连续输入模式,再按则退出;按Ctrl+6切换到临时输入模式。

下载词库

极点五笔:http://vimim-data.googlecode.com/svn/trunk/data/vimim.wubijd.txt

拼音大词库:http://vimim-data.googlecode.com/svn/trunk/data/vimim.pinyin_huge.txt

偶感觉这个词库不太全,不过你也可以自己制作。如果目录中没有词库文件的话它会自动调用搜狗云输入法,不过这需要你联网才行。

效果如图:

VIMIM

几款Linux下使用ICQ、MSN的软件

1、Empathy


Empathy是一个即时通讯客户端支持文本, 多种通讯协议。可挎平台使用,支持Linux, BSD, Unix。支持如下通迅工具:AIM、Google Talk、Groupwise、ICQ、MSN、QQ(现在好像不能用了)、Facebook、Yahoo!等。

官网:http://live.gnome.org/Empathy

2、Pidgin


Pidgin(前称Gaim)是一個跨平台的即時通訊客戶端,使用GNU通用公共許可證发布(GPL)。支持挎平台使用。支持如下通迅工具:AIM、Bonjour、Gadu-Gadu、Google Talk、Groupwise、ICQ、IRC、MSN、MXit、MySpaceIM、QQ、SILCS、IMPLE、Sametime、XMPPYahoo!、Zephyr。

官网:http://www.pidgin.im/

3、Licq


Licq使用GNU通用公共許可證发布(GPL),支持ICQ、MSN、AOL等。

官网:http://www.licq.org/

4、Gnomeicu


顾名思义,Gnomeicu 是一款为Gnome桌面设计的ICQ软件。功能比较强大。

官网:http://gnomeicu.sourceforge.net/

以上几款软件各有各的特点,目前偶用的是Pidgin。