<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
	<channel>
		<title>第一个博客 : 第一个博客</title>
		<link>http://aivera.soublog.net/uUOoI-b1.htm</link>
		<description>您的第一个博客</description>
		<lastBuildDate>Thu, 29 Jul 2010 19:02:49 GMT</lastBuildDate>
		<ttl>10</ttl>
		<image>
			<title>第一个博客 : 第一个博客</title>
			<url></url>
			<link>http://aivera.soublog.net/uUOoI-b1.htm</link>
		</image>
	<item>
		<title>emacs的配置文件</title>
		<category>第一个博客</category>
		<pubDate>2008-02-01T09:59:51Z</pubDate>
		<description>这2天熟悉了一下用emacs在linux开发php,光是配置文件就看了一天,才明白点,把自己的emacs文件贴出来:&lt;br /&gt;;;_+ php-mode&lt;br /&gt;(require &#039;php-mode)&lt;br /&gt;(define-key php-mode-map&lt;br /&gt;     [menu-bar php php-debug]&lt;br /&gt;     &#039;(&quot;PHP Debug&quot; . php-debug))&lt;br /&gt;(define-key php-mode-map&lt;br /&gt;     [menu-bar php php-run]&lt;br /&gt;     &#039;(&quot;Run PHP&quot; . php-run))&lt;br /&gt;(defun php-debug ()&lt;br /&gt;    (interactive)&lt;br /&gt;    (shell-command&lt;br /&gt;     (concat &quot;E:/AppServ/php5/php.exe -l &quot;&quot; (buffer-file-name) &quot;&quot;&quot;)))&lt;br /&gt;(defun php-run ()&lt;br /&gt;     (interactive)&lt;br /&gt;     (shell-command&lt;br /&gt;      (concat &quot;E:/AppServ/php5/php.exe -q &quot;&quot; (buffer-file-name) &quot;&quot;&quot;)))&lt;br /&gt;(defun my-php-mode()&lt;br /&gt;   ;; 将回车代替C-j的功能，换行的同时对齐&lt;br /&gt;     (define-key php-mode-map [return] &#039;newline-and-indent)&lt;br /&gt;     (define-key php-mode-map [(control c) (r)] &#039;php-run)&lt;br /&gt;     (define-key php-mode-map [(control c) (d)] &#039;php-debug)&lt;br /&gt;     (interactive)&lt;br /&gt;   ;; 设置php程序的对齐风格&lt;br /&gt;     (c-set-style &quot;K&amp;R&quot;)&lt;br /&gt;   ;; 自动模式，在此种模式下当你键入{时，会自动根据你设置的对齐风格对齐&lt;br /&gt;     (c-toggle-auto-state)&lt;br /&gt;   ;; 此模式下，当按Backspace时会删除最多的空格&lt;br /&gt;     (c-toggle-hungry-state)&lt;br /&gt;   ;; TAB键的宽度设置为4&lt;br /&gt;     (setq c-basic-offset 4)&lt;br /&gt;   ;; 在菜单中加入当前Buffer的函数索引&lt;br /&gt;     (imenu-add-menubar-index)&lt;br /&gt;   ;; 在状态条上显示当前光标在哪个函数体内部&lt;br /&gt;     (which-function-mode)&lt;br /&gt;     )&lt;br /&gt;(add-hook &#039;php-mode-hook &#039;my-php-mode)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;javascript-mode&lt;br /&gt;(add-to-list &#039;load-path &quot;~/lisp/site-lisp/javascript&quot;)&lt;br /&gt;(require &#039;javascript-mode)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;css-mode&lt;br /&gt;;;(add-to-list &#039;load-path &quot;~/lisp/site-lisp/css&quot;)&lt;br /&gt;;;(require &#039;css-mode)&lt;br /&gt;(autoload &#039;css-mode &quot;~/lisp/site-lisp/css&quot; t)&lt;br /&gt;&lt;br /&gt;;============================ Linux环境下字体设置 =================================&lt;br /&gt;&lt;br /&gt;;; (create-fontset-from-fontset-spec&lt;br /&gt;;; &quot;-*-courier-medium-r-normal-*-14-*-*-*-*-*-fontset-courier&quot;)&lt;br /&gt;;; (set-default-font &quot;fontset-courier&quot;)&lt;br /&gt;;; (setq default-frame-alist&lt;br /&gt;;; (append&lt;br /&gt;;; &#039;((font . &quot;fontset-courier&quot;)) default-frame-alist))&lt;br /&gt;&lt;br /&gt;;; (set-fontset-font&lt;br /&gt;;; &quot;fontset-default&quot; nil&lt;br /&gt;;; &quot;-*-simsun-*-*-*-*-14-*-*-*-*-*-gb2312.1980-*&quot; nil &#039;prepend)&lt;br /&gt;;; (set-fontset-font&lt;br /&gt;;; &quot;fontset-courier&quot; &#039;kana&lt;br /&gt;;; &quot;-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0&quot; nil &#039;prepend)&lt;br /&gt;;; (set-fontset-font&lt;br /&gt;;; &quot;fontset-courier&quot; &#039;han&lt;br /&gt;;; &quot;-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0&quot; nil &#039;prepend)&lt;br /&gt;;; (set-fontset-font&lt;br /&gt;;; &quot;fontset-courier&quot; &#039;cjk-misc&lt;br /&gt;;; &quot;-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0&quot; nil &#039;prepend)&lt;br /&gt;&lt;br /&gt;;============================ Linux环境下字体设置结束 ==============================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;;;;;;;;;;;;;;;;;;;语言环境字体设置结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;解决中英文混排不能正确fill的问题,好像没什么用&lt;br /&gt;;; (put-charset-property &#039;chinese-cns11643-5 &#039;nospace-between-words t)&lt;br /&gt;;; (put-charset-property &#039;chinese-cns11643-6 &#039;nospace-between-words t)&lt;br /&gt;;; (put-charset-property &#039;chinese-cns11643-7 &#039;nospace-between-words t)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;  设置窗口界面 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;&lt;br /&gt;(set-foreground-color &quot;grey&quot;)&lt;br /&gt;(set-background-color &quot;black&quot;)&lt;br /&gt;(set-cursor-color &quot;gold1&quot;)&lt;br /&gt;(set-mouse-color &quot;gold1&quot;)&lt;br /&gt;&lt;br /&gt;(set-scroll-bar-mode nil)&lt;br /&gt;;;取消滚动栏&lt;br /&gt;&lt;br /&gt;;;(customize-set-variable &#039;scroll-bar-mode &#039;right))&lt;br /&gt;;;设置滚动栏在窗口右侧，而默认是在左侧&lt;br /&gt;&lt;br /&gt;(tool-bar-mode nil)&lt;br /&gt;;;取消工具栏&lt;br /&gt;&lt;br /&gt;(setq default-frame-alist&lt;br /&gt;             &#039;((vertical-scroll-bars) &lt;br /&gt;               (top . 25)&lt;br /&gt;               (left . 45)                              &lt;br /&gt;               (width . 110)&lt;br /&gt;               (height . 40)          &lt;br /&gt;               (background-color . &quot;black&quot;)&lt;br /&gt;               (foreground-color . &quot;grey&quot;)&lt;br /&gt;               (cursor-color     . &quot;gold1&quot;)&lt;br /&gt;               (mouse-color      . &quot;gold1&quot;)&lt;br /&gt;               (tool-bar-lines . 0)&lt;br /&gt;               (menu-bar-lines . 1)&lt;br /&gt;               (right-fringe)&lt;br /&gt;               (left-fringe)))&lt;br /&gt;&lt;br /&gt;              &lt;br /&gt;;; 设置另外一些颜色：语法高亮显示的背景和主题，区域选择的背景和主题，二次选择的背景和选择&lt;br /&gt;(set-face-foreground &#039;highlight &quot;white&quot;)&lt;br /&gt;(set-face-background &#039;highlight &quot;blue&quot;)&lt;br /&gt;(set-face-foreground &#039;region &quot;cyan&quot;)&lt;br /&gt;(set-face-background &#039;region &quot;blue&quot;)&lt;br /&gt;(set-face-foreground &#039;secondary-selection &quot;skyblue&quot;)&lt;br /&gt;(set-face-background &#039;secondary-selection &quot;darkblue&quot;)&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;(display-time-mode 1);;启用时间显示设置，在minibuffer上面的那个杠上&lt;br /&gt;(setq display-time-24hr-format t);;时间使用24小时制&lt;br /&gt;(setq display-time-day-and-date t);;时间显示包括日期和具体时间&lt;br /&gt;(setq display-time-use-mail-icon t);;时间栏旁边启用邮件设置&lt;br /&gt;(setq display-time-interval 10);;时间的变化频率，单位多少来着？&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;(setq default-directory &quot;/&quot;)&lt;br /&gt;&lt;br /&gt;;;ido的配置,这个可以使你在用C-x C-f打开文件的时候在后面有提示;&lt;br /&gt;;;这里是直接打开了ido的支持，在emacs23中这个是自带的.&lt;br /&gt;(ido-mode t)&lt;br /&gt;&lt;br /&gt;(setq visible-bell t)&lt;br /&gt;;;关闭烦人的出错时的提示声&lt;br /&gt;(setq inhibit-startup-message t)&lt;br /&gt;;;关闭emacs启动时的画面&lt;br /&gt;&lt;br /&gt;(setq gnus-inhibit-startup-message t)&lt;br /&gt;;;关闭gnus启动时的画面&lt;br /&gt;&lt;br /&gt;(fset &#039;yes-or-no-p &#039;y-or-n-p)&lt;br /&gt;;; 改变 Emacs 固执的要你回答 yes 的行为。按 y 或空格键表示 yes，n 表示 no。&lt;br /&gt;&lt;br /&gt;(setq font-lock-maximum-decoration t)&lt;br /&gt;(setq font-lock-global-modes &#039;(not shell-mode text-mode))&lt;br /&gt;(setq font-lock-verbose t)&lt;br /&gt;(setq font-lock-maximum-size &#039;((t . 1048576) (vm-mode . 5250000)))&lt;br /&gt;;; 语法高亮。除 shell-mode 和 text-mode 之外的模式中使用语法高亮。&lt;br /&gt;&lt;br /&gt;(setq column-number-mode t)&lt;br /&gt;(setq line-number-mode t)&lt;br /&gt;;;显示行列号&lt;br /&gt;&lt;br /&gt;(setq mouse-yank-at-point t)&lt;br /&gt;;;不要在鼠标点击的那个地方插入剪贴板内容。我不喜欢那样，经常把我的文档搞的一团糟。我觉得先用光标定位，然后鼠标中键点击要好的多。不管你的光标在文档的那个位置，或是在 minibuffer，鼠标中键一点击，X selection 的内容就被插入到那个位置。&lt;br /&gt;&lt;br /&gt;(setq kill-ring-max 200)&lt;br /&gt;;;设置粘贴缓冲条目数量.用一个很大的kill ring(最多的记录个数). 这样防止我不小心删掉重要的东西&lt;br /&gt;&lt;br /&gt;(setq-default auto-fill-function &#039;do-auto-fill)&lt;br /&gt; ; Autofill in all modes;;&lt;br /&gt;(setq default-fill-column 120)&lt;br /&gt;;;把 fill-column 设为 60. 这样的文字更好读&lt;br /&gt;&lt;br /&gt;(setq-default indent-tabs-mode nil)&lt;br /&gt;(setq default-tab-width 8)&lt;br /&gt;(setq tab-stop-list ())&lt;br /&gt;;;不用 TAB 字符来indent, 这会引起很多奇怪的错误。编辑 Makefile 的时候也不用担心，因为 makefile-mode 会把 TAB 键设置成真正的 TAB 字符，并且加亮显示的。&lt;br /&gt;&lt;br /&gt;(setq sentence-end &quot;\([。！？]\|……\|[.?!][]&quot;&#039;)}]*\($\|[ t]\)\)[ tn]*&quot;)&lt;br /&gt;(setq sentence-end-double-space nil)&lt;br /&gt;;;设置 sentence-end 可以识别中文标点。不用在 fill 时在句号后插入两个空格。&lt;br /&gt;&lt;br /&gt;(setq enable-recursive-minibuffers t)&lt;br /&gt;;;可以递归的使用 minibuffer&lt;br /&gt;&lt;br /&gt;(setq scroll-margin 3  scroll-conservatively 10000)&lt;br /&gt;;;防止页面滚动时跳动， scroll-margin 3 可以在靠近屏幕边沿3行时就开始滚动，可以很好的看到上下文。&lt;br /&gt;&lt;br /&gt;(setq default-major-mode &#039;text-mode)&lt;br /&gt;(add-hook &#039;text-mode-hook &#039;turn-on-auto-fill)&lt;br /&gt;;;设置缺省主模式是text，,并进入auto-fill次模式.而不是基本模式fundamental-mode&lt;br /&gt;&lt;br /&gt;(setq show-paren-mode t) ;;打开括号匹配显示模式&lt;br /&gt;(setq show-paren-style &#039;parenthesis)&lt;br /&gt;;;括号匹配时可以高亮显示另外一边的括号，但光标不会烦人的跳到另一个括号处。&lt;br /&gt;&lt;br /&gt;(setq mouse-avoidance-mode &#039;animate)&lt;br /&gt;;;光标靠近鼠标指针时，让鼠标指针自动让开，别挡住视线。&lt;br /&gt;&lt;br /&gt;(setq frame-title-format &quot;emacs@%b&quot;)&lt;br /&gt;;;在标题栏显示buffer的名字，而不是 emacs@wangyin.com 这样没用的提示。&lt;br /&gt;&lt;br /&gt;(setq uniquify-buffer-name-style &#039;forward);;好像没起作用&lt;br /&gt;;; 当有两个文件名相同的缓冲时，使用前缀的目录名做 buffer 名字，不用原来的foobar&lt;?&gt; 形式。&lt;br /&gt;&lt;br /&gt;(setq auto-image-file-mode t)&lt;br /&gt;;;让 Emacs 可以直接打开和显示图片。&lt;br /&gt;&lt;br /&gt;;(auto-compression-mode 1)  &lt;br /&gt;;打开压缩文件时自动解压缩。&lt;br /&gt;&lt;br /&gt;(setq global-font-lock-mode t)&lt;br /&gt;;;进行语法加亮。&lt;br /&gt;&lt;br /&gt;(setq-default kill-whole-line t)&lt;br /&gt;;; 在行首 C-k 时，同时删除该行。&lt;br /&gt;&lt;br /&gt;(add-hook &#039;comint-output-filter-functions&lt;br /&gt;      &#039;comint-watch-for-password-prompt)&lt;br /&gt;;;当你在shell、telnet、w3m等模式下时，必然碰到过要输入密码的情况,此时加密显出你的密码&lt;br /&gt;&lt;br /&gt;;; (setq version-control t);;启用版本控制，即可以备份多次&lt;br /&gt;;; (setq kept-old-versions 2);;备份最原始的版本两次，及第一次编辑前的文档，和第二次编辑前的文档&lt;br /&gt;;; (setq kept-new-versions 1);;备份最新的版本1次，理解同上&lt;br /&gt;;; (setq delete-old-versions t);;删掉不属于以上3中版本的版本&lt;br /&gt;;; (setq backup-directory-alist &#039;((&quot;.&quot; . &quot;~/backups&quot;)));;设置备份文件的路径&lt;br /&gt;;; (setq backup-by-copying t);;备份设置方法，直接拷贝&lt;br /&gt;;; Emacs 中，改变文件时，默认都会产生备份文件(以 ~ 结尾的文件)。可以完全去掉&lt;br /&gt;;; (并不可取)，也可以制定备份的方式。这里采用的是，把所有的文件备份都放在一&lt;br /&gt;;; 个固定的地方(&quot;~/backups&quot;)。对于每个备份文件，保留最原始的两个版本和最新的&lt;br /&gt;;; 1个版本。并且备份的时候，备份文件是复本，而不是原件。&lt;br /&gt;&lt;br /&gt;(setq make-backup-files nil)&lt;br /&gt;;; 设定不产生备份文件&lt;br /&gt;&lt;br /&gt;(setq auto-save-mode nil)&lt;br /&gt;;;自动保存模式&lt;br /&gt;&lt;br /&gt;(setq-default make-backup-files nil)&lt;br /&gt;;; 不生成临时文件&lt;br /&gt;&lt;br /&gt;(put &#039;scroll-left &#039;disabled nil)     ;允许屏幕左移&lt;br /&gt;(put &#039;scroll-right &#039;disabled nil)    ;允许屏幕右移&lt;br /&gt;(put &#039;set-goal-column &#039;disabled nil)&lt;br /&gt;(put &#039;narrow-to-region &#039;disabled nil)&lt;br /&gt;(put &#039;upcase-region &#039;disabled nil)&lt;br /&gt;(put &#039;downcase-region &#039;disabled nil)&lt;br /&gt;(put &#039;LaTeX-hide-environment &#039;disabled nil)&lt;br /&gt;;;把这些缺省禁用的功能打开。&lt;br /&gt;&lt;br /&gt;;;允许emacs和外部其他程序的粘贴&lt;br /&gt;(setq x-select-enable-clipboard t)&lt;br /&gt;&lt;br /&gt;(setq mouse-yank-at-point t)&lt;br /&gt;;;使用鼠标中键可以粘贴&lt;br /&gt;&lt;br /&gt;(setq user-full-name &quot;XXXXXX&quot;)&lt;br /&gt;(setq user-mail-address &quot;XXXXXX@163.com&quot;)&lt;br /&gt;;;设置有用的个人信息,这在很多地方有用。&lt;br /&gt;&lt;br /&gt;(setq require-final-newline t)&lt;br /&gt;;; 自动的在文件末增加一新行&lt;br /&gt;&lt;br /&gt;(setq-default transient-mark-mode t)&lt;br /&gt;;;Non-nil if Transient-Mark mode is enabled.&lt;br /&gt;&lt;br /&gt;(setq track-eol t)&lt;br /&gt;;; 当光标在行尾上下移动的时候，始终保持在行尾。&lt;br /&gt;&lt;br /&gt;(setq Man-notify-method &#039;pushy)&lt;br /&gt;;; 当浏览 man page 时，直接跳转到 man buffer。&lt;br /&gt;&lt;br /&gt;(setq next-line-add-newlines nil)&lt;br /&gt;;;Emacs 21 中已经是缺省设置。按 C-n 或向下键时不添加新行。&lt;br /&gt; &lt;br /&gt;(global-set-key [home] &#039;beginning-of-buffer)&lt;br /&gt;(global-set-key [end] &#039;end-of-buffer)&lt;br /&gt;;;设置home键指向buffer开头，end键指向buffer结尾&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(global-set-key (kbd &quot;C-,&quot;) &#039;scroll-left)&lt;br /&gt;;; &quot;C-,&quot;设为屏幕左移命令&lt;br /&gt;(global-set-key (kbd &quot;C-.&quot;) &#039;scroll-right)&lt;br /&gt;;; &quot;C-.&quot;设为屏幕右移命令&lt;br /&gt;&lt;br /&gt;(global-set-key [f1] &#039;manual-entry)&lt;br /&gt;(global-set-key [C-f1] &#039;info )&lt;br /&gt;&lt;br /&gt;(global-set-key [f3] &#039;repeat-complex-command)&lt;br /&gt;&lt;br /&gt;(global-set-key [f4] &#039;other-window)&lt;br /&gt;;; 跳转到 Emacs 的另一个buffer窗口&lt;br /&gt;&lt;br /&gt;(defun du-onekey-compile ()&lt;br /&gt;  &quot;Save buffers and start compile&quot;&lt;br /&gt;  (interactive)&lt;br /&gt;  (save-some-buffers t)&lt;br /&gt;  (switch-to-buffer-other-window &quot;*compilation*&quot;)&lt;br /&gt;  (compile compile-command))&lt;br /&gt;  (global-set-key [C-f5] &#039;compile)&lt;br /&gt;  (global-set-key [f5] &#039;du-onekey-compile)&lt;br /&gt;;;  C-f5, 设置编译命令; f5, 保存所有文件然后编译当前窗口文件&lt;br /&gt;&lt;br /&gt;(global-set-key [f6] &#039;gdb)            &lt;br /&gt;;;F6设置为在Emacs中调用gdb&lt;br /&gt;&lt;br /&gt;(global-set-key [C-f7] &#039;previous-error)&lt;br /&gt;(global-set-key [f7] &#039;next-error)&lt;br /&gt;&lt;br /&gt;(defun open-eshell-other-buffer ()&lt;br /&gt;  &quot;Open eshell in other buffer&quot;&lt;br /&gt;  (interactive)&lt;br /&gt;  (split-window-vertically)&lt;br /&gt;  (eshell))&lt;br /&gt;(global-set-key [(f8)] &#039;open-eshell-other-buffer)&lt;br /&gt;(global-set-key [C-f8] &#039;eshell)&lt;br /&gt;;;目的是开一个shell的小buffer，用于更方便地测试程序(也就是运行程序了)，我经常会用到。&lt;br /&gt;;;f8就是另开一个buffer然后打开shell，C-f8则是在当前的buffer打开shell&lt;br /&gt;&lt;br /&gt;(setq speedbar-show-unknown-files t);;可以显示所有目录以及文件&lt;br /&gt;(setq dframe-update-speed nil);;不自动刷新，手动 g 刷新&lt;br /&gt;(setq speedbar-update-flag nil)&lt;br /&gt;(setq speedbar-use-images nil);;不使用 image 的方式&lt;br /&gt;(setq speedbar-verbosity-level 0)&lt;br /&gt;&lt;br /&gt;(global-set-key [f9] &#039;speedbar)&lt;br /&gt;;;设置f9调用speedbar命令&lt;br /&gt;;;使用 n 和 p 可以上下移动，&lt;br /&gt;;; + 展开目录或文件进行浏览，- 收缩，RET 访问目录或文件，g 更新 speedbar。&lt;br /&gt;&lt;br /&gt;(setq dired-recursive-copies &#039;top)&lt;br /&gt;(setq dired-recursive-deletes &#039;top)&lt;br /&gt;;;让 dired 可以递归的拷贝和删除目录。&lt;br /&gt;(global-set-key [C-f9] &#039;dired)&lt;br /&gt;;;设置[C-f9]为调用dired命令&lt;br /&gt;&lt;br /&gt;(global-set-key [f10] &#039;undo)            &lt;br /&gt;;;设置F10为撤销&lt;br /&gt;&lt;br /&gt;(global-set-key [f11] &#039;calendar)&lt;br /&gt;;;设置F11快捷键指定Emacs 的日历系统&lt;br /&gt;&lt;br /&gt;(global-set-key [f12] &#039;list-bookmarks)&lt;br /&gt;;;设置F12 快速察看日程安排&lt;br /&gt;&lt;br /&gt;(setq time-stamp-active t)&lt;br /&gt;(setq time-stamp-warn-inactive t)&lt;br /&gt;(setq time-stamp-format &quot;%:y-%02m-%02d %3a %02H:%02M:%02S chunyu&quot;)&lt;br /&gt;;; 设置时间戳，标识出最后一次保存文件的时间。&lt;br /&gt;&lt;br /&gt;(global-set-key (kbd &quot;M-g&quot;) &#039;goto-line)&lt;br /&gt;;;设置M-g为goto-line&lt;br /&gt;&lt;br /&gt;(global-set-key (kbd &quot;C-SPC&quot;) &#039;nil)&lt;br /&gt;;;取消control+space键设为mark&lt;br /&gt;&lt;br /&gt;(global-set-key (kbd &quot;M-&lt;SPC&gt;&quot;) &#039;set-mark-command)&lt;br /&gt;;;这样 我就不用按 C-@ 来 setmark 了, C-@ 很不好按。&lt;br /&gt;&lt;br /&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定制操作习惯结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  设置日历 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;;;设置日历的一些颜色&lt;br /&gt;(setq calendar-load-hook&lt;br /&gt;&#039;(lambda ()&lt;br /&gt;(set-face-foreground &#039;diary-face &quot;skyblue&quot;)&lt;br /&gt;(set-face-background &#039;holiday-face &quot;slate blue&quot;)&lt;br /&gt;(set-face-foreground &#039;holiday-face &quot;white&quot;)))&lt;br /&gt;&lt;br /&gt;;;设置我所在地方的经纬度，calendar里有个功能是日月食的预测，和你的经纬度相联系的。&lt;br /&gt;;; 让emacs能计算日出日落的时间，在 calendar 上用 S 即可看到&lt;br /&gt;(setq calendar-latitude +39.54)&lt;br /&gt;(setq calendar-longitude +116.28)&lt;br /&gt;(setq calendar-location-name &quot;北京&quot;)&lt;br /&gt;&lt;br /&gt;;; 设置阴历显示，在 calendar 上用 pC 显示阴历&lt;br /&gt;(setq chinese-calendar-celestial-stem&lt;br /&gt;  [&quot;甲&quot; &quot;乙&quot; &quot;丙&quot; &quot;丁&quot; &quot;戊&quot; &quot;己&quot; &quot;庚&quot; &quot;辛&quot; &quot;壬&quot; &quot;癸&quot;])&lt;br /&gt;(setq chinese-calendar-terrestrial-branch&lt;br /&gt;  [&quot;子&quot; &quot;丑&quot; &quot;寅&quot; &quot;卯&quot; &quot;辰&quot; &quot;巳&quot; &quot;戊&quot; &quot;未&quot; &quot;申&quot; &quot;酉&quot; &quot;戌&quot; &quot;亥&quot;])&lt;br /&gt;&lt;br /&gt;;; 设置 calendar 的显示&lt;br /&gt;(setq calendar-remove-frame-by-deleting t)&lt;br /&gt;(setq calendar-week-start-day 1)            ; 设置星期一为每周的第一天&lt;br /&gt;(setq mark-diary-entries-in-calendar t)     ; 标记calendar上有diary的日期&lt;br /&gt;(setq mark-holidays-in-calendar nil)        ; 为了突出有diary的日期，calendar上不标记节日&lt;br /&gt;(setq view-calendar-holidays-initially nil) ; 打开calendar的时候不显示一堆节日&lt;br /&gt;&lt;br /&gt;;; 去掉不关心的节日，设定自己在意的节日，在 calendar 上用 h 显示节日&lt;br /&gt;(setq christian-holidays nil)&lt;br /&gt;(setq hebrew-holidays nil)&lt;br /&gt;(setq islamic-holidays nil)&lt;br /&gt;(setq solar-holidays nil)&lt;br /&gt;(setq general-holidays &#039;((holiday-fixed 1 1 &quot;元旦&quot;)&lt;br /&gt;                         (holiday-fixed 2 14 &quot;情人节&quot;)&lt;br /&gt;                         (holiday-fixed 3 14 &quot;白色情人节&quot;)&lt;br /&gt;                         (holiday-fixed 4 1 &quot;愚人节&quot;)&lt;br /&gt;                         (holiday-fixed 5 1 &quot;劳动节&quot;)&lt;br /&gt;                         (holiday-float 5 0 2 &quot;母亲节&quot;)&lt;br /&gt;                         (holiday-fixed 6 1 &quot;儿童节&quot;)&lt;br /&gt;                         (holiday-float 6 0 3 &quot;父亲节&quot;)&lt;br /&gt;                         (holiday-fixed 7 1 &quot;建党节&quot;)&lt;br /&gt;                         (holiday-fixed 8 1 &quot;建军节&quot;)&lt;br /&gt;                         (holiday-fixed 9 10 &quot;教师节&quot;)&lt;br /&gt;                         (holiday-fixed 10 1 &quot;国庆节&quot;)&lt;br /&gt;                         (holiday-fixed 12 25 &quot;圣诞节&quot;)))&lt;br /&gt;&lt;br /&gt;;;Calendar模式支持各种方式来更改当前日期&lt;br /&gt;;;（这里的“前”是指还没有到来的那一天，“后”是指已经过去的日子）&lt;br /&gt;;;  q      退出calendar模式&lt;br /&gt;;; C-f     让当前日期向前一天&lt;br /&gt;;; C-b     让当前日期向后一天&lt;br /&gt;;; C-n     让当前日期向前一周&lt;br /&gt;;; C-p     让当前日期向后一周&lt;br /&gt;;; M-}     让当前日期向前一个月&lt;br /&gt;;; M-{     让当前日期向后一个月&lt;br /&gt;;; C-x ]   让当前日期向前一年&lt;br /&gt;;; C-x [   让当前日期向后一年&lt;br /&gt;;; C-a     移动到当前周的第一天&lt;br /&gt;;; C-e     移动到当前周的最后一天&lt;br /&gt;;; M-a     移动到当前月的第一天&lt;br /&gt;;; M-e     多动到当前月的最后一天&lt;br /&gt;;; M-&lt;     移动到当前年的第一天&lt;br /&gt;;; M-&gt;     移动到当前年的最后一天&lt;br /&gt;&lt;br /&gt;;;Calendar模式支持移动多种移动到特珠日期的方式&lt;br /&gt;;; g d     移动到一个特别的日期&lt;br /&gt;;;  o      使某个特殊的月分作为中间的月分&lt;br /&gt;;;  .      移动到当天的日期&lt;br /&gt;;; p d     显示某一天在一年中的位置，也显示本年度还有多少天。&lt;br /&gt;;; C-c C-l 刷新Calendar窗口&lt;br /&gt;&lt;br /&gt;;; Calendar支持生成LATEX代码。&lt;br /&gt;;; t m     按月生成日历&lt;br /&gt;;; t M     按月生成一个美化的日历&lt;br /&gt;;; t d     按当天日期生成一个当天日历&lt;br /&gt;;; t w 1   在一页上生成这个周的日历&lt;br /&gt;;; t w 2   在两页上生成这个周的日历&lt;br /&gt;;; t w 3   生成一个ISO-SYTLE风格的当前周日历&lt;br /&gt;;; t w 4   生成一个从周一开始的当前周日历&lt;br /&gt;;; t y     生成当前年的日历&lt;br /&gt;&lt;br /&gt;;;EMACS Calendar支持配置节日：&lt;br /&gt;;; h       显示当前的节日&lt;br /&gt;;; x       定义当天为某个节日&lt;br /&gt;;; u       取消当天已被定义的节日&lt;br /&gt;;; e       显示所有这前后共三个月的节日。&lt;br /&gt;;; M-x holiday  在另外的窗口的显示这前后三个月的节日。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;; 另外，还有一些特殊的，有意思的命令：&lt;br /&gt;;; S       显示当天的日出日落时间(是大写的S)&lt;br /&gt;;; p C     显示农历可以使用&lt;br /&gt;;; g C     使用农历移动日期可以使用&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;(setq diary-file &quot;~/diary&quot;);; 默认的日记文件&lt;br /&gt;(setq diary-mail-addr &quot;getmails@163.com&quot;)&lt;br /&gt;(add-hook &#039;diary-hook &#039;appt-make-list)&lt;br /&gt;;;当你创建了一个&#039;~/diary&#039;文件，你就可以使用calendar去查看里面的内容。你可以查看当天的事件，相关命令如下 ：&lt;br /&gt;;;  d     显示被选中的日期的所有事件&lt;br /&gt;;;  s     显示所有事件，包括过期的，未到期的等等&lt;br /&gt;&lt;br /&gt;;; 创建一个事件的样例：&lt;br /&gt;;; 02/11/1989&lt;br /&gt;;;     Bill B. visits Princeton today&lt;br /&gt;;;     2pm Cognitive Studies Committee meeting&lt;br /&gt;;;     2:30-5:30 Liz at Lawrenceville&lt;br /&gt;;;     4:00pm Dentist appt&lt;br /&gt;;;     7:30pm Dinner at George&#039;s&lt;br /&gt;;;     8:00-10:00pm concert&lt;br /&gt;&lt;br /&gt;;; 创建事件的命令：&lt;br /&gt;;; i d   为当天日期添加一个事件&lt;br /&gt;;; i w   为当天周创建一个周事件&lt;br /&gt;;; i m   为当前月创建一个月事件&lt;br /&gt;;; i y   为当前年创建一个年事件&lt;br /&gt;;; i a   为当前日期创建一个周年纪念日&lt;br /&gt;;; i c   创建一个循环的事件&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  设置日记结束  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 自定义lisp包设置  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;======================= cscope 设置 =======================&lt;br /&gt;;;使用 cscope 浏览源代码,这个xcscope是个改进版，为每一次查找的结果使用不同 buffer ，&lt;br /&gt;;;这样就可以保存以前的结果。&lt;br /&gt;&lt;br /&gt;;;(add-to-list &#039;load-path  &quot;~/lisp/xcscope&quot;) ;; 将软件包所在的路径加到 EMACS 的 load-path&lt;br /&gt;;;(require &#039;xcscope) ;; 加载相应的软件&lt;br /&gt;&lt;br /&gt;;; C-c s a             设定初始化的目录，一般是你代码的根目录&lt;br /&gt;;; C-s s I             对目录中的相关文件建立列表并进行索引&lt;br /&gt;;; C-c s s             序找符号&lt;br /&gt;;; C-c s g             寻找全局的定义&lt;br /&gt;;; C-c s c             看看指定函数被哪些函数所调用&lt;br /&gt;;; C-c s C             看看指定函数调用了哪些函数&lt;br /&gt;;; C-c s e             寻找正则表达式&lt;br /&gt;;; C-c s f             寻找文件&lt;br /&gt;;; C-c s i             看看指定的文件被哪些文件include&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;===================== cscope 设置结束 ======================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;======================== tabbar设置 ========================&lt;br /&gt;;;(add-to-list &#039;load-path  &quot;~/lisp/tabbar&quot;)&lt;br /&gt;;;(require &#039;tabbar)&lt;br /&gt;;;(tabbar-mode)&lt;br /&gt;;========================tabbar设置结束=======================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;======================= wb-line-number设置 ==================&lt;br /&gt;;;增加一个显示行号的buffer&lt;br /&gt;(add-to-list &#039;load-path  &quot;~/lisp/setnu&quot;)&lt;br /&gt;(require &#039;setnu)&lt;br /&gt;(setnu-mode t)&lt;br /&gt;;====================== wb-line-number设置结束 ================&lt;br /&gt;&lt;br /&gt;;======================= setnu设置 ============================&lt;br /&gt;;;再增加一个显示行号的功能&lt;br /&gt;(add-to-list &#039;load-path  &quot;~/lisp/setnu&quot;)&lt;br /&gt;(require &#039;setnu)&lt;br /&gt;(global-set-key [f2] (quote setnu-mode))&lt;br /&gt;&lt;br /&gt;;======================= setnu设置结束 ＝＝＝＝=================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;====================== rect-mark设置 =========================&lt;br /&gt;;; 按下shift拖拽鼠标即可选择矩形区域&lt;br /&gt;;; Support for marking a rectangle of text with highlighting.&lt;br /&gt;;;(add-to-list &#039;load-path  &quot;~/lisp/rect-mark&quot;)&lt;br /&gt;;;(require &#039;rect-mark)&lt;br /&gt;;;(define-key ctl-x-map &quot;rC-@&quot; &#039;rm-set-mark)&lt;br /&gt;;;(define-key ctl-x-map [?r ?C- ] &#039;rm-set-mark)&lt;br /&gt;;;(define-key ctl-x-map &quot;rC-x&quot; &#039;rm-exchange-point-and-mark)&lt;br /&gt;;;(define-key ctl-x-map &quot;rC-w&quot; &#039;rm-kill-region)&lt;br /&gt;;;(define-key ctl-x-map &quot;rM-w&quot; &#039;rm-kill-ring-save)&lt;br /&gt;;;(define-key global-map [S-down-mouse-1] &#039;rm-mouse-drag-region)&lt;br /&gt;;;(autoload &#039;rm-set-mark &quot;rect-mark&quot;&lt;br /&gt;;; &quot;Set mark for rectangle.&quot; t)&lt;br /&gt;;;(autoload &#039;rm-exchange-point-and-mark &quot;rect-mark&quot;&lt;br /&gt;;;  &quot;Exchange point and mark for rectangle.&quot; t)&lt;br /&gt;;;(autoload &#039;rm-kill-region &quot;rect-mark&quot;&lt;br /&gt;;;  &quot;Kill a rectangular region and save it in the kill ring.&quot; t)&lt;br /&gt;;;(autoload &#039;rm-kill-ring-save &quot;rect-mark&quot;&lt;br /&gt;;;  &quot;Copy a rectangular region to the kill ring.&quot; t)&lt;br /&gt;;;(autoload &#039;rm-mouse-drag-region &quot;rect-mark&quot;&lt;br /&gt;;;  &quot;Drag out a rectangular region with the mouse.&quot; t)&lt;br /&gt;&lt;br /&gt;;; Use this section in your &quot;~/.emacs&quot; to modify picture mode so that&lt;br /&gt;;; it automatically uses the rect-mark equivalents of many commands.&lt;br /&gt;&lt;br /&gt;;; One vision of a better picture mode.&lt;br /&gt;;;(add-hook &#039;picture-mode-hook &#039;rm-example-picture-mode-bindings)&lt;br /&gt;;;(autoload &#039;rm-example-picture-mode-bindings &quot;rect-mark&quot;&lt;br /&gt;;;  &quot;Example rect-mark key and mouse bindings for picture mode.&quot;)&lt;br /&gt;&lt;br /&gt;;=====================  rect-mark设置结束 =========================&lt;br /&gt;&lt;br /&gt;;=====================  info文件设置 ==============================&lt;br /&gt;;;Info 的菜单是按 Info-directory-list 的顺序列出的，而 Info-directory-list 是在启动 info 时&lt;br /&gt;;;用Info-default-directory-list 来初始的。所以要添加 Info 目录是要设置 Info-default-directory-list。&lt;br /&gt;;;在添加的 Info 目录中，创建一个叫 dir 的文件（其实所有 Info-directory-list 里有一个文件就行了，&lt;br /&gt;;;在 ${emacs}/info 文件夹下有这个文件，修改这个也可以）。&lt;br /&gt;&lt;br /&gt;;;(add-to-list &#039;Info-default-directory-list  &quot;~/lisp/info/&quot;)&lt;br /&gt;&lt;br /&gt;;; n：跳转到该节点的下一个节点；          &lt;br /&gt;;; p：跳转到该节点的上一个节点；&lt;br /&gt;;; m: 指定菜单名而选择另外一个节点；&lt;br /&gt;;; f：进入交叉引用主题；&lt;br /&gt;;; l：进入该窗口中的最后一个节点；&lt;br /&gt;;; TAB：跳转到该窗口的下一个超文本链接；&lt;br /&gt;;; RET：进入光标处的超文本链接；&lt;br /&gt;;; u：转到上一级主题；&lt;br /&gt;;; d：回到 info 的初始节点目录；&lt;br /&gt;;; h：调出 info 教程；&lt;br /&gt;;; q：退出 info。&lt;br /&gt;&lt;br /&gt;;===================  info文件设置结束 ============================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;===================== AUCTeX设置 =================================&lt;br /&gt;;;(load &quot;~/lisp/auctex/site-lisp/auctex.el&quot; nil t t)&lt;br /&gt;;;(load &quot;~/lisp/auctex/site-lisp/preview-latex.el&quot; nil t t)&lt;br /&gt;;;(setq TeX-auto-save t)&lt;br /&gt;;;(setq TeX-parse-self t)&lt;br /&gt;;;(setq-default TeX-master nil)&lt;br /&gt;;;(add-hook &#039;LaTeX-mode-hook #&#039;LaTeX-install-toolbar)&lt;br /&gt;;;(add-hook &#039;LaTeX-mode-hook &#039;turn-on-auto-fill)&lt;br /&gt;;;(add-hook &#039;LaTeX-mode-hook &#039;turn-on-reftex)&lt;br /&gt;&lt;br /&gt;;===================== AUCTeX设置结束 =============================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;===================== 文件头header设置 ===========================&lt;br /&gt;;;当我们保存文件的时候,有很多信息可以自动更新.如何自动更新信息, 更新那些信息,&lt;br /&gt;;也是可以完全自己配置. 包括文件名称,最后一次修改时间,文件保存次数,最后一次修改的作者等等.&lt;br /&gt;;;可以用 M-x make-header 自动生成文件头信息.&lt;br /&gt;;;(add-to-list &#039;load-path  &quot;~/lisp/header&quot;)&lt;br /&gt;;;(require &#039;header)&lt;br /&gt;(setq make-header-hooks &#039;(header-mode-line&lt;br /&gt;                            header-blank&lt;br /&gt;                            header-file-name&lt;br /&gt;                            header-blank&lt;br /&gt;                            header-copyright&lt;br /&gt;                            header-blank&lt;br /&gt;                            header-author&lt;br /&gt;                            header-creation-date&lt;br /&gt;                            header-modification-author&lt;br /&gt;                            header-modification-date&lt;br /&gt;                            header-update-count&lt;br /&gt;                            header-blank&lt;br /&gt;                            header-history&lt;br /&gt;                            header-blank&lt;br /&gt;                            ))&lt;br /&gt;(setq header-copyright-notice &quot;  源成工作室 作品&quot; )&lt;br /&gt;(make-local-variable &#039;user-full-name)&lt;br /&gt;(make-local-variable &#039;user-mail-address)&lt;br /&gt;&lt;br /&gt;;===================== 文件头header设置结束 ==========================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;===================== template设置 =================================&lt;br /&gt;(add-to-list &#039;load-path  &quot;~/lisp/template&quot;)&lt;br /&gt;;;(require &#039;template)&lt;br /&gt;;;(template-initialize)&lt;br /&gt;&lt;br /&gt;;===================== template设置结束===============================&lt;br /&gt;&lt;br /&gt;;===================== cedet设置 =====================================&lt;br /&gt;&lt;br /&gt;(add-to-list &#039;load-path &quot;~/lisp/cedet-1.0pre3/speedbar&quot;)&lt;br /&gt;(add-to-list &#039;load-path &quot;~/lisp/cedet-1.0pre3/eieio&quot;)&lt;br /&gt;(add-to-list &#039;load-path &quot;~/lisp/cedet-1.0pre3/semantic&quot;)&lt;br /&gt;(add-to-list &#039;load-path &quot;~/lisp/cedet-1.0pre3/common&quot;)&lt;br /&gt;;;(require &#039;cedet)&lt;br /&gt;;; (add-to-list &#039;load-path &quot;~/lisp/ecb-2.32&quot;)&lt;br /&gt;;; (require &#039;ecb)&lt;br /&gt;&lt;br /&gt;;; Ecb的操作:&lt;br /&gt;;; C-c . g d 目录列表窗口&lt;br /&gt;;; C-c . g s 源码窗口&lt;br /&gt;;; C-c . g m 方法和变量窗口&lt;br /&gt;;; C-c . g h 历史窗口&lt;br /&gt;;; C-c . g l 最后选择过的编辑窗口&lt;br /&gt;;; C-c . g 1 编辑窗口1&lt;br /&gt;;; C-c . g n 编辑窗口n&lt;br /&gt;;; C-c . l c 选择版面&lt;br /&gt;;; C-c . l r 重画版面&lt;br /&gt;;; C-c . l t 拴牢版面(锁定版面)&lt;br /&gt;;; C-c . l w 拴牢可见的ecb窗口&lt;br /&gt;;; C-c .    拴牢编绎窗口&lt;br /&gt;&lt;br /&gt;;; 其中l为小写字母(L),大家别看错!!&lt;br /&gt;&lt;br /&gt;;======================cedet设置结束==================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;;;;;;;;;;;;;;;;;;;;;;;;; 自定义lisp包设置结束  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;=====================    GNUS设置  =================================&lt;br /&gt;(setq gnus-select-method &#039;(nntp &quot;news.yaako.com&quot;))&lt;br /&gt;(setq gnus-default-subscribed-newsgroups&lt;br /&gt;  &#039;( &quot;cn.comp.os.linux&quot;)) ;;&lt;br /&gt;&lt;br /&gt;;; (add-to-list &#039;gnus-secondary-select-methods &#039;(nntp &quot;news.yourSecondProvider.net&quot;))&lt;br /&gt;;; (add-to-list &#039;gnus-secondary-select-methods &#039;(nntp &quot;news.yourThirdProvider.net&quot;))&lt;br /&gt;;;想让 Gnus 在多个的服务器上取新闻&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;中文相关&lt;br /&gt;(set-language-environment &#039;Chinese-GB)&lt;br /&gt;(setq gnus-default-charset &#039;chinese-iso-8bit&lt;br /&gt;   gnus-group-name-charset-group-alist &#039;((&quot;.*&quot; . chinese-iso-8bit))&lt;br /&gt;   gnus-summary-show-article-charset-alist&lt;br /&gt;       &#039;((1 . chinese-iso-8bit)&lt;br /&gt;         (2 . gbk)&lt;br /&gt;         (3 . big5)&lt;br /&gt;         (4 . utf-8))&lt;br /&gt;   gnus-newsgroup-ignored-charsets&lt;br /&gt;       &#039;(unknown-8bit x-unknown iso-8859-1))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(setq mail-sources&lt;br /&gt;       &#039;((pop :server &quot;pop3.163.com&quot; ;; 在这里设置pop3服务器&lt;br /&gt;       :user &quot;XXXXXXX&quot; ;; 用户名&lt;br /&gt;;;       :port &quot;110&quot;&lt;br /&gt;       :password &quot;XXXXXX&quot;))) ;; 密码&lt;br /&gt;(setq gnus-secondary-select-methods &#039;((nnfolder &quot;&quot;)))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(setq user-full-name &quot;XXXXXXXX&quot;) ;; 外发的邮件采用这个名字&lt;br /&gt;(setq user-mail-address &quot;XXXXXX@163.com&quot;) ;;外发的邮件采用这个地址&lt;br /&gt;(setq smtpmail-auth-credentials&lt;br /&gt;      &#039;((&quot;smtp.163.com&quot; ;; SMTP服务器&lt;br /&gt;      25&lt;br /&gt;      &quot;XXXXXX&quot; ;; 用户名&lt;br /&gt;      &quot;XXXXXX&quot;))) ;; 密码&lt;br /&gt;(setq smtpmail-default-smtp-server &quot;smtp.163.com&quot;)&lt;br /&gt;(setq smtpmail-smtp-server &quot;smtp.163.com&quot;)&lt;br /&gt;(setq message-send-mail-function &#039;smtpmail-send-it)&lt;br /&gt;&lt;br /&gt;(setq nnmail-expiry-wait 3);;Gnus 默认的保质期是7天，如果你觉得时间不合适，可以自己设置&lt;br /&gt;&lt;br /&gt;(add-hook &#039;gnus-article-prepare-hook&lt;br /&gt;          (lambda ()&lt;br /&gt;            (setq fill-column 60)&lt;br /&gt;            (gnus-article-fill-long-lines)))&lt;br /&gt;;;让gnus把这种邮件排版整齐后再显示给我们看&lt;br /&gt;&lt;br /&gt;(add-hook &#039;gnus-article-prepare-hook &#039;gnus-article-date-local)&lt;br /&gt;;;将邮件的发出时间转换为本地时间&lt;br /&gt;&lt;br /&gt;(gnus-add-configuration &#039;(article&lt;br /&gt;                          (vertical 1.0&lt;br /&gt;                                    (summary .4 point)&lt;br /&gt;                                    (article 1.0))))&lt;br /&gt;;; 改变阅读新闻时窗口的布局，窗口划分为上4下6（比例）&lt;br /&gt;&lt;br /&gt;(eval-after-load &quot;mm-decode&quot;&lt;br /&gt;  &#039;(progn&lt;br /&gt;     (add-to-list &#039;mm-discouraged-alternatives &quot;text/html&quot;)&lt;br /&gt;     (add-to-list &#039;mm-discouraged-alternatives &quot;text/richtext&quot;)))&lt;br /&gt;;另外，有些用web方式发出的邮件里有html，加入下面的设置，只看其中的&lt;br /&gt;;plain text部分：&lt;br /&gt;&lt;br /&gt;(setq gnus-thread-sort-functions&lt;br /&gt;      &#039;(&lt;br /&gt;        (not gnus-thread-sort-by-date)&lt;br /&gt;        (not gnus-thread-sort-by-number)&lt;br /&gt;        ))&lt;br /&gt;;;排序&lt;br /&gt;&lt;br /&gt;(add-hook &#039;gnus-group-mode-hook &#039;gnus-topic-mode)&lt;br /&gt;;; 有时订阅了很多新闻组，堆在一起不好管理。这个功能可以创建目录来分层管理&lt;br /&gt;&lt;br /&gt;(setq gnus-read-newsrc-file nil  gnus-save-newsrc-file nil)&lt;br /&gt;&lt;br /&gt;;========================   GNUS设置结束  ===============================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;;=========================== 方便编程操作的设置=====================================&lt;br /&gt;&lt;br /&gt;(setq compile-command &quot;make&quot;)&lt;br /&gt;;;emacs的默认compile命令是调用make -k，我把它改成了make。你也可以把它改成其他的，比如gcc之类的.&lt;br /&gt;&lt;br /&gt;;;把c语言风格设置为k&amp;r风格&lt;br /&gt;(add-hook &#039;c-mode-hook&lt;br /&gt;&#039;(lambda ()&lt;br /&gt;(c-set-style &quot;k&amp;r&quot;)))&lt;br /&gt;&lt;br /&gt;;;把C++语言风格设置为stroustrup风格&lt;br /&gt;(add-hook &#039;c++-mode-hook&lt;br /&gt;&#039;(lambda()&lt;br /&gt;(c-set-style &quot;stroustrup&quot;)))&lt;br /&gt;&lt;br /&gt;;========================================================================&lt;br /&gt;&lt;br /&gt;(load-library &quot;hideshow&quot;)&lt;br /&gt;(add-hook &#039;c-mode-hook &#039;hs-minor-mode)&lt;br /&gt;(add-hook &#039;c++-mode-hook &#039;hs-minor-mode)&lt;br /&gt;(add-hook &#039;java-mode-hook &#039;hs-minor-mode)&lt;br /&gt;(add-hook &#039;perl-mode-hook &#039;hs-minor-mode)&lt;br /&gt;(add-hook &#039;php-mode-hook &#039;hs-minor-mode)&lt;br /&gt;(add-hook &#039;emacs-lisp-mode-hook &#039;hs-minor-mode)&lt;br /&gt;;;能把一个代码块缩起来，需要的时候再展开&lt;br /&gt;;;  M-x              hs-minor-mode&lt;br /&gt;;;  C-c @ ESC C-s    show all&lt;br /&gt;;;  C-c @ ESC C-h    hide all&lt;br /&gt;;;  C-c @ C-s        show block&lt;br /&gt;;;  C-c @ C-h        hide block&lt;br /&gt;;;  C-c @ C-c toggle hide/show&lt;br /&gt;&lt;br /&gt;;========================================================================&lt;br /&gt;&lt;br /&gt;(defun my-c-mode-auto-pair ()&lt;br /&gt;  (interactive)&lt;br /&gt;  (make-local-variable &#039;skeleton-pair-alist)&lt;br /&gt;  (setq skeleton-pair-alist  &#039;(&lt;br /&gt;    (?` ?` _ &quot;&#039;&#039;&quot;)&lt;br /&gt;    (?( ?  _ &quot; )&quot;)&lt;br /&gt;    (?[ ?  _ &quot; ]&quot;)&lt;br /&gt;    (?{ n &gt; _ n ?} &gt;)))&lt;br /&gt;  (setq skeleton-pair t)&lt;br /&gt;  (local-set-key (kbd &quot;(&quot;) &#039;skeleton-pair-insert-maybe)&lt;br /&gt;  (local-set-key (kbd &quot;{&quot;) &#039;skeleton-pair-insert-maybe)&lt;br /&gt;  (local-set-key (kbd &quot;`&quot;) &#039;skeleton-pair-insert-maybe)&lt;br /&gt;  (local-set-key (kbd &quot;[&quot;) &#039;skeleton-pair-insert-maybe))&lt;br /&gt;(add-hook &#039;c-mode-hook &#039;my-c-mode-auto-pair)&lt;br /&gt;(add-hook &#039;c++-mode-hook &#039;my-c-mode-auto-pair)&lt;br /&gt;;;输入左边的括号，就会自动补全右边的部分.包括(), &quot;&quot;, [] , {} , 等等。&lt;br /&gt;&lt;br /&gt;;=========================================================================&lt;br /&gt;(setq semantic-load-turn-everything-on t)&lt;br /&gt;;(add-hook &#039;semantic-init-hooks &#039;semantic-idle-completions-mode)&lt;br /&gt;&lt;br /&gt;(setq semanticdb-project-roots&lt;br /&gt;        (list&lt;br /&gt;        (expand-file-name &quot;/&quot;)))&lt;br /&gt;;;配置Semantic的检索范围&lt;br /&gt;&lt;br /&gt;(setq semanticdb-default-save-directory &quot;~/&quot;)&lt;br /&gt;;;设置semantic.cache路径&lt;br /&gt;&lt;br /&gt;(global-set-key [(meta ?/)] &#039;hippie-expand)&lt;br /&gt;;;M-/ 绑定到 hippie-expand&lt;br /&gt;&lt;br /&gt;(autoload &#039;senator-try-expand-semantic &quot;senator&quot;)&lt;br /&gt;(setq hippie-expand-try-functions-list&lt;br /&gt;      &#039;(senator-try-expand-semantic  ;优先调用了senator的分析结果&lt;br /&gt;        try-expand-dabbrev     ;当前的buffer补全&lt;br /&gt;    try-expand-dabbrev-visible   ;别的可见的窗口里寻找补全&lt;br /&gt;    try-expand-dabbrev-all-buffers  ;所有打开的buffer&lt;br /&gt;    try-expand-dabbrev-from-kill&lt;br /&gt;    try-complete-file-name-partially&lt;br /&gt;    try-complete-file-name&lt;br /&gt;    try-expand-all-abbrevs&lt;br /&gt;    try-expand-list&lt;br /&gt;    try-expand-line&lt;br /&gt;    try-complete-lisp-symbol-partially&lt;br /&gt;    try-complete-lisp-symbol))&lt;br /&gt;;设置 hippie-expand 的补全方式。它是一个优先列表， hippie-expand 会优先使用表最前面的函数来补全。&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;</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/emacsuAAaOAIA-b1-p12.htm</guid>
	</item>
	<item>
		<title>ubuntu建立C，C＋＋，GTK等开发环境</title>
		<category>第一个博客</category>
		<pubDate>2008-01-31T03:34:50Z</pubDate>
		<description>本人想学习一下Linux下的C，C＋＋程序开发，这几天一直在研究Linux下的C语言编译环境的建立，因为新装好的Ubuntu里面缺少函数库文件，所以无法编译最简单的C语言文件，故要先配置一番，这几天也有一点心得，写下来和大家一起学习。&lt;br /&gt;原来我以为安装配置非常麻烦，后来发现在新立得的帮助下很快就能配置好（前提你的源的网速比较快）。&lt;br /&gt;我先安装了一个新的Ubuntu7.10，然后按照Wiki里的帮助先配置好了源、输入法、中文环境等。然后开始配置编译环境。&lt;br /&gt;&lt;br /&gt;1、配置GCC&lt;br /&gt;刚装好的系统中已经有GCC了，但是这个GCC什么文件都不能编译，因为没有一些必须的头文件，所以要安装build-essential这个软件包，安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。&lt;br /&gt;可以在新立得里面搜索build-essential或输入下面命令：&lt;br /&gt;代码:&lt;br /&gt;sudo apt-get install build-essential&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;安装完成后写一个C语言程序testc.c测试一下。&lt;br /&gt;&lt;br /&gt;代码:&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;printf(&quot;Hello Ubuntu!n&quot;);&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;代码:&lt;br /&gt;&lt;br /&gt;$ gcc testc.c -o testc&lt;br /&gt;$ ./testc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;显示&lt;br /&gt;Hello Ubuntu!&lt;br /&gt;这样，C语言编译器就安装成功了；&lt;br /&gt;&lt;img src=&quot;http://i34.servimg.com/u/f34/11/92/58/77/110.jpg&quot;/&gt;&lt;br /&gt;2安装GTK环境&lt;br /&gt;&lt;br /&gt;安装GTK环境只要安装一个gnome-core-devel就可以了，里面集成了很多其他的包。除此之外还要转一些其他的东西，如libglib2.0 -doc、libgtk2.0-doc帮助文档，devhelp帮助文档查看，glade-gnome、glade-common、glade-doc图形界面设计等。&lt;br /&gt;代码:&lt;br /&gt;&lt;br /&gt;sudo apt-get install gnome-core-devel&lt;br /&gt;sudo apt-get install libglib2.0-doc libgtk2.0-doc&lt;br /&gt;sudo apt-get install devhelp&lt;br /&gt;sudo apt-get install glade-gnome glade-common glade-doc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;安装完成后我们也同样做个测试程序&lt;br /&gt;代码:&lt;br /&gt;&lt;br /&gt;#include&lt;gtk/gtk.h&gt;&lt;br /&gt;void hello(GtkWidget *widget,gpointer data)&lt;br /&gt;{&lt;br /&gt;g_print(&quot;Hello Ubuntu!n&quot;);&lt;br /&gt;}&lt;br /&gt;gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)&lt;br /&gt;{&lt;br /&gt;g_print (&quot;delete event occurredn&quot;);&lt;br /&gt;return(TRUE);&lt;br /&gt;}&lt;br /&gt;void destroy(GtkWidget *widget,gpointer data)&lt;br /&gt;{&lt;br /&gt;gtk_main_quit();&lt;br /&gt;}&lt;br /&gt;int main( int argc, char *argv[] )&lt;br /&gt;{&lt;br /&gt;GtkWidget *window;&lt;br /&gt;GtkWidget *button;&lt;br /&gt;gtk_init (&amp;argc, &amp;argv);&lt;br /&gt;window=gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;gtk_signal_connect (GTK_OBJECT(window),&quot;delete_event&quot;,GTK_SIGNAL_FUNC(delete_event),NULL);&lt;br /&gt;gtk_signal_connect (GTK_OBJECT (window), &quot;destroy&quot;,GTK_SIGNAL_FUNC (destroy), NULL);&lt;br /&gt;gtk_container_set_border_width (GTK_CONTAINER (window), 10);&lt;br /&gt;button = gtk_button_new_with_label (&quot;Hello Ubuntu!&quot;);&lt;br /&gt;gtk_signal_connect (GTK_OBJECT (button), &quot;clicked&quot;,GTK_SIGNAL_FUNC (hello), NULL);&lt;br /&gt;gtk_signal_connect_object (GTK_OBJECT (button), &quot;clicked&quot;,GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));&lt;br /&gt;gtk_container_add (GTK_CONTAINER (window), button);&lt;br /&gt;gtk_widget_show (button);&lt;br /&gt;gtk_widget_show (window); /*显示一个窗口*/&lt;br /&gt;gtk_main(); /*进入主循环*/&lt;br /&gt;return(0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;用下面命令编译运行&lt;br /&gt;代码:&lt;br /&gt;&lt;br /&gt;$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`&lt;br /&gt;$ ./gtktest&lt;br /&gt;&lt;br /&gt;会显示一个带有一个按钮的窗口，点击按钮以后窗口关闭，命令行显示Hello Ubuntu! &lt;br /&gt;&lt;img src=&quot;http://i34.servimg.com/u/f34/11/92/58/77/210.jpg&quot;/&gt;&lt;br /&gt;3 QT/KDE&lt;br /&gt;&lt;br /&gt;库、工具（软件包）：&lt;br /&gt;代码:&lt;br /&gt;kdesdk&lt;br /&gt;&lt;br /&gt;库、工具的文档（软件包）：&lt;br /&gt;代码:&lt;br /&gt;kdesdk-doc-html&lt;br /&gt;&lt;br /&gt;IDE（软件包）：&lt;br /&gt;代码:&lt;br /&gt;kdevelop&lt;br /&gt;&lt;br /&gt;IDE文档（软件包）：&lt;br /&gt;代码:&lt;br /&gt;kdevelop-doc</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/ubuntuACCGTKuE-b1-p11.htm</guid>
	</item>
	<item>
		<title>Linux系统下的C语言开发都需要学些什么</title>
		<category>第一个博客</category>
		<pubDate>2008-01-31T02:59:34Z</pubDate>
		<description>一、工具的使用&lt;br /&gt;&lt;br /&gt;　　1、学会使用vim/emacs，vim/emacs是linux下最常用的源码编辑具，不光要学会用它们编辑源码，还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim，这也是我目前使用的文本编辑器。&lt;br /&gt;&lt;br /&gt;　　2、学会makefile文件的编写规则，并结合使用工具aclocal、autoconf和automake生成makefile文件。&lt;br /&gt;&lt;br /&gt;　　3、掌握gcc和gdb的基本用法。掌握gcc的用法对于构建一个软件包很有益处，当软件包包含的文件比较多的时候，你还能用gcc把它手动编译出来，你就会对软件包中各个文件间的依赖关系有一个清晰的了解。&lt;br /&gt;&lt;br /&gt;　　4、掌握svn/cvs的基本用法。这是linux，也是开源社区最常用的版本管理系统。可以去试着参加sourceforge上的一些开源项目。&lt;br /&gt;&lt;br /&gt;　　二、linux/unix系统调用与标准C库&lt;br /&gt;&lt;br /&gt;　　系统调用应用软件与操作系统的接口，其重要性自然不用说，一定要掌握。推荐学习资料为steven先生的UNIX环境高级编程(简称APUE)。&lt;br /&gt;&lt;br /&gt;　　三、库的学习&lt;br /&gt;&lt;br /&gt;　　无论是在哪个平台做软件开发，对于库的学习都很重要，linux下的开发库很多，我主要介绍一下我常常用到的一些库。&lt;br /&gt;&lt;br /&gt;　　1、glib库&lt;br /&gt;&lt;br /&gt;　　glib 库是gtk+和gnome的基础库，并具是跨平台的，在linux、unix和windows下都可以用。glib库对于linux平台开发的影响就像 MFC对windows平台开发的影响一样，很多开源项目都大量的使用了glib库，包括gimp、gnome、gaim、evolution和 linux下的集群软件heartbeat.因为glib库自带有基本的数据结构实现，所以在学习glib库的时候可以顺便学习一下基本的数据结构(包括链表、树、队列和hash表)。&lt;br /&gt;&lt;br /&gt;　　2、libxml库&lt;br /&gt;&lt;br /&gt;　　libxml是linux平台下解析XML文件的一个基础库，现在很多实用软件都用XML格式的配置文件，所以也有必要学习一下。&lt;br /&gt;&lt;br /&gt;　　3、readline库&lt;br /&gt;&lt;br /&gt;　　readline 库是bash shell用的库，如果要开发命令行程序，那么使用readline库可以减少很多工作量，比如bash里的命令行自动补全，在readline里就已经有实现，当然你也可以用自己的实现替代库的行为。readline库有很多网站介绍的，只要google一下readline就可以找到一堆了。&lt;br /&gt;&lt;br /&gt;　　4、curses库&lt;br /&gt;&lt;br /&gt;　　curses 库以前是vi程序的一部分，后来从vi里提取出来成为一个独立的库。curses库对于编写终端相关的程序特别有用，比如要在终端某一行某一列定位输出，改变终端字体的颜色和终端模式。linux下的curses库用的是GNU实现的ncurses(new curses的意思)。&lt;br /&gt;&lt;br /&gt;　　5、gtk+和KDE库&lt;br /&gt;&lt;br /&gt;　　这两个库是开发GUI应用程序的基础库，现在linux下的大部份GUI程序都是基于这两个库开发的，对于它们 的学习也是很有必要的。&lt;br /&gt;&lt;br /&gt;　　四、网络的学习&lt;br /&gt;&lt;br /&gt;　　网络这个东西太宽了，推荐学习资料steven先生的UNIX网络编程(简称UNP)和TCP/IP协议详解，更进一步的话可以学习使用libnet编写网络程序。</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/LinuxIuIIAuACOiNODeONDEA-b1-p10.htm</guid>
	</item>
	<item>
		<title>Linux下C开发环境的构成和安装</title>
		<category>第一个博客</category>
		<pubDate>2008-01-30T10:35:19Z</pubDate>
		<description>Linux和C天生有不解之源，大家可能知道Linux的操作系统内核就主要是用C写的，另外Linux下的很多软件也是用C写的，特别是一些著名的服务软件，比如MYSQL、Apache等。初学者可能在编译MySQL这样的软件时，遇到过各式各样的错误，其实只要你初步了解了Linux的C开发环境，你就能自选解决安装过程中的一些错误。&lt;br /&gt;&lt;br /&gt;　　 Linux的C开发环境与Windows的有所不同，在Linux下，一个完整的C开发环境包括以下三个组成：&lt;br /&gt;&lt;br /&gt;　　 1、函数库: glibc&lt;br /&gt;&lt;br /&gt;　　 要构架一个完整的C开发环境，Glibc是必不可少的，它是Linux下C的主要函数库。Glibc有两种安装方式：&lt;br /&gt;&lt;br /&gt;　　 A.安装成测试用的函数库&lt;br /&gt;　　　 在编译程序时用不同的选项来试用新的函数库&lt;br /&gt;　　 B.安装成主要的C函数库&lt;br /&gt;　　　 所有新编译程序均用的函数库&lt;br /&gt;&lt;br /&gt;Glibc2含几个附加包：LinuxThreads、locale和crypt，通常它们的文件名随版本不同而类似于下列文件名：&lt;br /&gt;&lt;br /&gt;　　 glibc-2.06.tar.gz&lt;br /&gt;　　 glibc-linuxthreads-2.0.6.tar.gz&lt;br /&gt;　　 glibc-localedate-2.0.6.tar.gz&lt;br /&gt;　　 glibc-crypt-2.0.6.tar.gz&lt;br /&gt;&lt;br /&gt;　　 2、编译器：gcc&lt;br /&gt;&lt;br /&gt;　　 gcc(GNU CCompiler)是GNU推出的功能强大、性能优越的多平台编译器，gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件，以下是gcc支持编译的一些源文件的后缀及其解释：&lt;br /&gt;&lt;br /&gt;　　 .c为后缀的文件，C语言源代码文件；&lt;br /&gt;　　 .a为后缀的文件，是由目标文件构成的档案库文件；&lt;br /&gt;　　 .C，.cc或.cxx 为后缀的文件，是C++源代码文件；&lt;br /&gt;　　 .h为后缀的文件，是程序所包含的头文件；&lt;br /&gt;　　 .i 为后缀的文件，是已经预处理过的C源代码文件；&lt;br /&gt;　　 .ii为后缀的文件，是已经预处理过的C++源代码文件；&lt;br /&gt;　　 .m为后缀的文件，是Objective-C源代码文件；&lt;br /&gt;　　 .o为后缀的文件，是编译后的目标文件；&lt;br /&gt;　　 .s为后缀的文件，是汇编语言源代码文件；&lt;br /&gt;　　 .S为后缀的文件，是经过预编译的汇编语言源代码文件。&lt;br /&gt;&lt;br /&gt;　　 3、系统头文件：glibc_header&lt;br /&gt;&lt;br /&gt;　　 缺少了系统头文件的话，很多用到系统功能的C程序将无法编译。&lt;br /&gt;&lt;br /&gt;　　假如用户在安装过程中少装了这些包，就会无法编译C源程序。初学者有时候选择自己定制软件包来安装，结果遗漏了这些包，导致无法编译源程序，不少人就只好重新安装一遍Linux。其实并不需要这样做，虽然从tar包来安装Linux的C开发环境对于初学者来说比较难，但是我们还是可以通过rpm包来迅速安装Linux的C开发环境的。下面以Red Hat 7.3为例，介绍如何安装Linux的C开发环境，如果是更高版本的Red Hat也可以参考，只是要注意软件版本的不同。&lt;br /&gt;&lt;br /&gt;　　 由于gcc包需要依赖binutils和cpp包，另外make包也是在编译中常用的，所以一共需要8个包来完成安装，它们是：&lt;br /&gt;&lt;br /&gt;　　 cpp-2.96-110.i386.rpm&lt;br /&gt;　　 binutils-2.11.93.0.2-11.i386.rpm&lt;br /&gt;　　 glibc-2.2.5-34.i386.rpm&lt;br /&gt;　　 glibc-kernheaders-2.4-7.14.i386.rpm&lt;br /&gt;　　 glibc-common-2.2.5-34&lt;br /&gt;　　 glibc-devel-2.2.5-34.i386.rpm&lt;br /&gt;　　 gcc-2.96-110.i386.rpm&lt;br /&gt;　　 make-3.79.1-8.i386.rpm&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;如果连在internet上的话，可以直接从internet上安装，命令依次如下：&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/cpp-2.96-110.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/binutils-2.11.93.0.2-11.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-kernheaders-2.4-7.14.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-2.2.5-34.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-devel-2.2.5-34.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-common-2.2.5-34.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/gcc-2.96-110.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 rpm -ivh&lt;br /&gt;　　 ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/make-3.79.1-8.i386.rpm&lt;br /&gt;&lt;br /&gt;　　 如果不是连在internet上的话，就要下载下来安装了。安装完后，就构成了最基本的C开发环境，在这个C开发环境中，可以编译多数的C写的应用程序。而对于一个C程序来说，安装完成后通常可以分成三个组成：&lt;br /&gt;&lt;br /&gt;　　 1.可执行文件&lt;br /&gt;　　 2.包含文件&lt;br /&gt;　　 3.库文件&lt;br /&gt;&lt;br /&gt;　　 可执行文件就是最终运行的命令，包含文件是该C程序include的一些定义文件，库文件则是该C程序自定义的库。比如对于用RPM安装的MySQL：可执行文件放在/usr/bin下，包含文件放在/usr/include/MYSQL下，库文件在/usr/lib/mySQL下。只有系统可以找到程序对应的包含文件和库文件，程序可执行文件才能正常运行。&lt;br /&gt;&lt;br /&gt;　　 了解了Linux的C开发环境的构成和安装，还是不够的，还需要对其深入研究和学习，才能够做到“知其然，知其所以然”。&lt;br /&gt;&lt;br /&gt;</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/LinuxIACuAEI-b1-p9.htm</guid>
	</item>
	<item>
		<title>MySQL GUI Tools forlinux</title>
		<category>第一个博客</category>
		<pubDate>2008-01-28T02:39:47Z</pubDate>
		<description>MySQL GUI Tools Bundle for 5.0 is available under the MySQL AB &quot;dual licensing&quot; model. Under this model, users may choose to use MySQL products under the free software/opensource GNU General Public License (commonly known as the &quot;GPL&quot;) or under a commercial license.&lt;br /&gt;&lt;br /&gt;Support, training, and certification are also all available.&lt;br /&gt;&lt;br /&gt;If you want to be updated on the latest MySQL news and receive tips and hints, you can subscribe to the MySQL Newsletter.&lt;br /&gt;&lt;br /&gt;This is the MySQL GUI Tools Bundle for 5.0. It includes the following products.&lt;br /&gt;&lt;br /&gt;    * MySQL Administrator 1.2 Generally Available (GA)&lt;br /&gt;    * MySQL Query Browser 1.2 Generally Available (GA)&lt;br /&gt;    * MySQL Migration Toolkit 1.1 Generally Available (GA)&lt;br /&gt;&lt;br /&gt;Please note that the Migration Toolkit is only included in the Windows versions of the GUI tools at this point in time. It will be added to the other packages in one of the next releases.&lt;br /&gt;&lt;br /&gt;</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/MySQL-GUI-Tools-forlinux-b1-p8.htm</guid>
	</item>
	<item>
		<title>天使私服</title>
		<category>第一个博客</category>
		<pubDate>2008-01-26T08:35:09Z</pubDate>
		<description>这个游戏的地址&lt;br /&gt;&lt;br /&gt;电信的 &lt;a href=&quot;http://bbs.anjicn.com/index.php&quot;&gt;http://bbs.anjicn.com/index.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;网通的&lt;a href=&quot;http://bbs.weila.cn/bbs&quot;&gt;http://bbs.weila.cn/bbs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.sl-online.cn/bbs&quot;&gt;http://www.sl-online.cn/bbs&lt;/a&gt;&lt;br /&gt;</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/IiEE-b1-p7.htm</guid>
	</item>
	<item>
		<title>php指针</title>
		<category>第一个博客</category>
		<pubDate>2008-01-25T07:50:33Z</pubDate>
		<description>指针就是地址。&lt;br /&gt;按类型来分指针有 int、char 、float等基本类型。&lt;br /&gt;对于扩充的数据类型则有struct 等。&lt;br /&gt;指针的类型决定了指针操作时该指针指向地址变化的规律。&lt;br /&gt;例： int a, *p; //定义了一个整型指针以后就可以写为 p=&amp;a; 这个好理解。&lt;br /&gt;麻烦的是指针与数组结构等结合起来了之后情况就变得复杂起来，如下例：&lt;br /&gt;int arr[10], *p; p=arr; 此时把数组的地址赋给了指针p，指针p就指向了数组的首地址。现在假设数组的首地址值是3452，则指针p的值必然是3452。那么 p+1 表示指针移动指向了数组的下一个元素，那么p+1的值是什么?初学指针时对这一点很容易搞错不加思索的回答既然p==3452，那么p+1就等于3452 +1==3453，&lt;br /&gt;如果这样去认识指针就大错特错了。这里的p+1不是简单的算术运算，它表示这样一个意思——指针移动了一个元素准确地说是指针移动了一个整型元素。一个整型变量占多少字节内存：2 个字节，所以在这里指针的地址变化为一个整型变量那么它的地址自然要在原来的地址值上加 2 ，所以指针移动一个整型元素后地址值应为3452+2，即指针p的值为3454。&lt;br /&gt;上面讲的是整型指针的情形，对于字符型指针呢？其实只要对上面所讲的道理真正理解了，字符型指针也就好理解了。例子如下：&lt;br /&gt;char aa[10], *p; p=aa; 同样假设数组的首地址为3452，那么p+1 的值可以这样考虑，指针移动一个字符的地址，而一个字符占一个字节的内存，所以p+1的值就为3452+1=3453。&lt;br /&gt;&lt;br /&gt;可以说上面的二种情形还好理解，对于指向二维数组的指针以及指向结构的指针又如何去正确理解呢？&lt;br /&gt;&lt;br /&gt;当指针与二维数组连在一起的时候情形就变得复杂了许多。因为数组名代表了&lt;br /&gt;数组的起始地址，如 char arr[5][6]; 那么数组名 arr就是这个二维数组的首地&lt;br /&gt;址。初学指针的朋友对这个问题总是弄不明白，既然二维数组名arr是一个地址，而&lt;br /&gt;指针变量就是存放地址的，把二维数组的地址赋给同样数据类型的指针不就可以了&lt;br /&gt;吗，于是就有这样的写法：char arr[5][6], *p; p=arr; 这样写肯定是错误的，有的&lt;br /&gt;朋友可能对这样写是错误的也明白，他们基于这样的理解：一个二维数组里的数组&lt;br /&gt;元素也是表示一个地址，于是得出结论，二维数组名是一个二级指针，是地址的地&lt;br /&gt;址，进而引申出如下写法：&lt;br /&gt;char arr[5][6]; char **p; p=arr; 然而很对不起，这样写同样是错误&lt;br /&gt;的，如果你不相信，你可以把你认为正确的代码输入到里面，编译一下，肯定是通&lt;br /&gt;不过的。&lt;br /&gt;&lt;br /&gt;那么为什么上面的这些理解是错误的呢？错在对指针基本概念理解停留在表面。下&lt;br /&gt;面为了把这个问题说清楚一点，我们可以把指针的类型归纳为二个特征：&lt;br /&gt;1、基本数据类型如（char、int、 float等）；&lt;br /&gt;2、扩充数据类型（如一维数组、二维数组、结构等）&lt;br /&gt;例1：&lt;br /&gt;int arr[4][5]; //定义了一个二维数组&lt;br /&gt;int *p; //定义了一个整型指针&lt;br /&gt;// 下面该怎样把数组的地址赋给指针？因为定义的是一个int 指针，所以只能写为&lt;br /&gt;p=arr[0]; //想一想为什么？&lt;br /&gt;&lt;br /&gt;这里要讲的就是把地址赋给指针时要注意的问题，p是 int 类型的指针，它只能指向 int 这个基本数据类型。有的朋友或许要问，这个二维数组不也是 int 类型吗？是的但是这个二维数组除了是 int 之外，它的类型全称应该是 int 二维数组，arr[0]是int 一维数组，arr[0]这个一维数组的各元素才是基本的 int 数据类型， p=arr[0]就是把这个一维数组第一个元素的地址赋给了int 类型的指针 p，. 数据类型完全一样才能赋值。那么显而易见可以有下面的写法，注意指针是怎样指向各数组元素的：&lt;br /&gt;char arr[4][5]={&quot;abc&quot;,&quot;def&quot;,&quot;ghi&quot;,&quot;jkl&quot;,&quot;mno&quot;};&lt;br /&gt;char *p=arr[0];&lt;br /&gt;for(i=0;i&lt;20;i++)&lt;br /&gt;printf(&quot;%c&quot;, *(p+i) ); //仔细观察输出的值是怎样变化的&lt;br /&gt;//因为定义的是一个字符型指针,那么1、必须使这个指针指向与其对应的字符型数&lt;br /&gt;据类型； 2、指针每增加一个单位的地址值 ，如p+1表示指向下一个字符的地&lt;br /&gt;址。所以printf()语句输出的结果为&quot; abcdefghijklmno&quot; ,是一个字符一个字符输出的。&lt;br /&gt;。。&lt;br /&gt;下面举一个整型指针的例子：&lt;br /&gt;int arr[3][3]={ {1,2,3},{4,5,6},{7,8,9}};&lt;br /&gt;int *p=arr[0]; //数据类型相同，可以赋地址值&lt;br /&gt;for(i=0;i&lt;9;i++)&lt;br /&gt;printf(&quot;%d&quot;, *(p+i)); // 逐个的输出数组元素&lt;br /&gt;&lt;br /&gt;。。&lt;br /&gt;--------------------------------------------------------------&lt;br /&gt;下面将要讲的是直接指向一个二维数组的指针它有哪些特点：&lt;br /&gt;一个二维数组，它的每一个数组元素都是一个一维数组，一个整型二维数组可以写为：&lt;br /&gt;int arr[3][3]; 即 {arr[0], arr[1], arr[2] }&lt;br /&gt;我们现在想定义一个指针，使得这个指针有这样的特性—— 指针 p指向arr[0],&lt;br /&gt;指针 p+1 指向arr[1] ,指针 p+2指向arr[2]，也就是指针每移动一个单位的地址就指向下一个一维数组，那么这个指针必须满足下面二个条件：1、必须是整型 2、必须每移动一个单位的地址时实际上移动一个一维数组的长度即3个整型量。那么这个指针可定义为如下形式：&lt;br /&gt;int (* p) [3] ; // 定义了一个指向二维数组的指针，这个二维数组中的一维数组有3个元素。&lt;br /&gt;p=arr; // 把二维数组的地址赋给指针 p&lt;br /&gt;如果二维字符数组初始化是 char arr[3][4]={&quot;abc&quot;,&quot;def&quot;,&quot;ghi&quot;};&lt;br /&gt;所以可以如下写：&lt;br /&gt;*(p+0) //是数驵 a[0] 的首地址 printf(&quot;%s&quot;, *p); 输出字符串 “&quot;abc&quot;&lt;br /&gt;*(p+1) //数组a[1]的首地址 printf(&quot;%s&quot;, *(p+1)); 输出字符串 &quot;def&quot;&lt;br /&gt;*(p+2) //数组 a[2]的首地址 printf(&quot;%s&quot;,*(p+2)); 输出字符串 &quot;ghi&quot;&lt;br /&gt;&lt;br /&gt;如果要用这个二维数组的指针逐个的输出字符可以写为：&lt;br /&gt;*(*（p+0)+0) //第一个字符 a&lt;br /&gt;*(*（p+0)+1) //第二个字符 b&lt;br /&gt;*(*（p+0)+2) //第三个字符 c&lt;br /&gt;*(*（p+0)+3) //第四个字符 d&lt;br /&gt;*(*（p+0)+4) //第五个字符 e&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;struct student{ int a;char *b;}stru[3]={{1,&quot;abc&quot;},{2,&quot;def&quot;},{3,&quot;ghi&quot;}};&lt;br /&gt;struct student *p=stru;&lt;br /&gt;&lt;br /&gt;p+0 //第一个结构的地址&lt;br /&gt;p+1 //第二个结构的地址&lt;br /&gt;p+2 //第三个结构的地址</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/phpOOe-b1-p5.htm</guid>
	</item>
	<item>
		<title>php的指针引用</title>
		<category>第一个博客</category>
		<pubDate>2008-01-25T07:36:26Z</pubDate>
		<description>PHP的的指针的特性：&lt;br /&gt;&lt;br /&gt;1，用=&amp;来把变量的地址传给另一个变量，这样，另一个变量就指向了同一个地址&lt;br /&gt;&lt;br /&gt;2，用$c=$p;其中$p为指针，像这样的赋值，其实是把相当于让$c引用了$p所指的变量，而不是地址&lt;br /&gt;&lt;br /&gt;3，普通的=号是把一个变量的引用传给另一个变量，如果源变量的内容不变，那么引用它的变量的内容也不会变，即当没有修改变量内容的时候，两个变量是指向同一个地址，但当源变量修改时，引用它的变量就会把源变量的内容复制一份出来放到一个新的内存地址中，引用它的变量则是指向这个新创建的内存地址，用简单的一句话概况就是：修改时复制&lt;br /&gt;&lt;br /&gt;4，所以，回到（2），如果$p指向的内容发生了变化，那么，也会自动复制一份$p原来的内容到一块新的内存地址中，当用echo输出$c的时候，输出的内容还是$p的内容发生改变前的内容。&lt;br /&gt;&lt;br /&gt;5，综上所述，可以推导出（并且也经过实验证明了），如果有$a,$b=&amp;$a,那么你修改a时，b的内容也会随之改变，如果你想再用c来引用b，并且在a改变时也能影响到c,那么必须如下这样写：&lt;br /&gt;&lt;br /&gt;     $a=&quot;aa&quot;;&lt;br /&gt;&lt;br /&gt;     $b=&amp;$a;&lt;br /&gt;&lt;br /&gt;     $c=&amp;$b; &lt;br /&gt;&lt;br /&gt;     如此这般，当a变化时，用echo输出b和c的结果和a的内容是一样的，当然这样是为了说明php指针的特性，并不特意想说明他在具体应用中会有什么用，只是为了更加深刻的理解php的指针。&lt;br /&gt;&lt;br /&gt;     如果上面的三行代码最后一行变成：$c=$b;&lt;br /&gt;&lt;br /&gt;     那么在a发生改变时，输出c的值还是a原来的值。</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/phpuAOOeOyOA-b1-p4.htm</guid>
	</item>
	<item>
		<title>ubuntu在英文环境下使用中文输入法</title>
		<category>第一个博客</category>
		<pubDate>2008-01-25T04:47:46Z</pubDate>
		<description>fcitx输入法安装及设置（Kubuntu下推荐使用）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fcitx安装：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sudo apt-get install im-switch fcitx &lt;br /&gt;&lt;br /&gt;im-switch -s fcitx -z default # 注意，前面千万不要加sudo &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;完成设置最好重启一下X，输入法就生效了&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fcitx设置(可选)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;kate ~/.fcitx/config            #kubuntu &lt;br /&gt;&lt;br /&gt;gedit ~/.fcitx/config           #ubuntu &lt;br /&gt;&lt;br /&gt;mousepad ~/.fcitx/config        #xubuntu &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;如果英文界面下输入栏与输入文字为方块的现像，只需修改config中的字体即可，例如：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;显示字体(中)=SimSun&lt;br /&gt;&lt;br /&gt;显示字体(英)=SimSun&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;提示:可以设为自己喜欢的字体，但必须保证你所使用的字体支持中文。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;英文locale下fcitx输入设置，解决部份非QT(如firefox/swiftfox等)程序的输入问题&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;kdesu kate /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules         #kubuntu&lt;br /&gt;&lt;br /&gt;gksu gedit /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules         #ubuntu&lt;br /&gt;&lt;br /&gt;gksu mousepad /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules      #xubuntu&lt;br /&gt;&lt;br /&gt;sudo vim /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules           #通用&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;找到下面这个部份&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;quot;/usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so&amp;quot;&lt;br /&gt;&lt;br /&gt;&amp;quot;xim&amp;quot; &amp;quot;X Input Method&amp;quot; &amp;quot;gtk20&amp;quot; &amp;quot;/usr/share/locale&amp;quot; &amp;quot;ko:ja:th:zh&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;将&amp;quot;ko:ja:th:zh&amp;quot; 改为 &amp;quot;en:ko:ja:th:zh&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;设置完毕，注销一下电脑。输入法（按Ctrl+空格键激活输入法）就应该可以使用了。 &lt;br /&gt;</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/ubuntuOUOIAIAEOAODIAEaEe-b1-p3.htm</guid>
	</item>
	<item>
		<title>关于在ubuntu下无法使用Zend Studio的解决方法</title>
		<category>第一个博客</category>
		<pubDate>2008-01-25T04:46:26Z</pubDate>
		<description>There are two ways to execute Zend Studio, by running the ZDE script,&lt;br /&gt;and by running the runStudio_unix.sh script, both are in the bin&lt;br /&gt;direcory of zend studio&lt;br /&gt;&lt;br /&gt;(usually /usr/local/Zend/ZendStudio-/bin)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following workarounds may be used, but there is no guarantee how well or how long it might work for you in your environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;modification of ZDE script for xgl: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Open your ZDE script with your favorite editor&lt;br /&gt;&lt;br /&gt;2. add the next line of code at line 1693.&lt;br /&gt;&lt;br /&gt;options=&quot;$options -Dawt.toolkit=sun.awt.motif.MToolkit&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;for example:&lt;br /&gt;&lt;br /&gt;1693:&lt;br /&gt;&lt;br /&gt;1694: debugOut &quot;&quot;&lt;br /&gt;&lt;br /&gt;1695: unset POSIXLY_CORRECT&lt;br /&gt;&lt;br /&gt;1696: if [ $DO_NOT_FORK ]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;becomes:&lt;br /&gt;&lt;br /&gt;1693: options=&quot;$options -Dawt.toolkit=sun.awt.motif.MToolkit&quot;&lt;br /&gt;&lt;br /&gt;1694: debugOut &quot;&quot;&lt;br /&gt;&lt;br /&gt;1695: unset POSIXLY_CORRECT&lt;br /&gt;&lt;br /&gt;1696: if [ $DO_NOT_FORK ]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Save the file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;modification of runStudio_unix.sh script for xgl: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. open the the file in your favorite editor.&lt;br /&gt;&lt;br /&gt;2. modify the java execution line,&lt;br /&gt;&lt;br /&gt;the line starts with: ../jre/bin/java -Xms16m -Xmx256m -cp...&lt;br /&gt;&lt;br /&gt;change it to: ../jre/bin/java -Dawt.toolkit=sun.awt.motif.MToolkit -Xms16m -Xmx256m -cp...&lt;br /&gt;&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;&lt;br /&gt;as you can see, the only difference is an extra parameter to the java program.&lt;br /&gt;&lt;br /&gt;3. Save the file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Disclaimer: The XGL-Compiz/Beryl product is experimental and highly unstable. Therefore, it is unsupported by Zend.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The information in this article applies to&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Zend Studio Client&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Common Problems&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On some amd64 based systems, the motif toolkit will not work, complaining that &quot;current locale is not supported in X11&quot;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A solution for this case is to set the XLOCALELIBDIR environment variable to the X11 32 bit locale&lt;br /&gt;&lt;br /&gt;directory of your system.&lt;br /&gt;&lt;br /&gt;Ubuntu Distribution users will find it at: /usr/lib32/X11/locale.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ubuntu users can use the following as a startup-script:&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;export AWT_TOOLKIT=MToolkit&lt;br /&gt;&lt;br /&gt;export XLOCALELIBDIR=/usr/lib32/X11/locale&lt;br /&gt;&lt;br /&gt;exec ZendStudio-5.5.0/Zend_Development_Environment&lt;br /&gt;</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/OOUOUubuntuIAIEOAZend-StudiouAao-b1-p2.htm</guid>
	</item>
	<item>
		<title>joomlaAPI</title>
		<category>第一个博客</category>
		<pubDate>2008-01-25T04:44:02Z</pubDate>
		<description>这俩天每天工作超过12小时,不过还是有点收获的,经过努力现在看joomla的函数有点头绪了,结合着&lt;a href=&quot;component/option,com_jd-wiki/Itemid,31/id,references:joomla.framework/&quot;&gt;Wiki API Reference&lt;/a&gt;对新手可以有很大帮助,里面有相当的例子帮助你理解函数的用法,加油!!&lt;br /&gt;&lt;br /&gt;</description>
		<guid>http://aivera.soublog.net/uUOoI-b1/joomlaAPI-b1-p1.htm</guid>
	</item>
	</channel>
</rss>