• 主题
    emacs默认的主题比较难看,基本上是黑白配;如果实在难以忍受,那么这里给出一个能够 让用户选择自己喜欢主题的方法。当然,肯定还有很多其他方法,但笔者当前只是使用 color-theme这方法实现的,而且效果基本上还比较好,至少是笔者比较喜欢的主题。
  1. http://download.gna.org/color-theme/ 下载color-theme代码;
  2. 解压到.emacs.d目录下;
  3. 在emacs配置文件中添加如下内容: ;设置颜色主题
(add-to-list 'load-path "~/.emacs.d/color-theme-6.6.0") 
(require 'color-theme) 
(color-theme-initialize) 
;下面这个是自己喜欢的主题,
;可以通过M-x color-theme-select依次试一遍,找到自己最喜欢的主题 
(color-theme-gnome2) 
;(color-theme-comidia) 
;(color-theme-arjen)
  • 输入法问题
    linux下面的输入法主要有两个:fcitx(小企鹅)和ibus,从使用的角度,前者的使用体验要比后者好很多,尤其是fcitx具有联想功能,第二组候选词大部分情况下都是通过云端搜索的,准确率比较高,这里给出两种输入法在emacs中的配置流程。
  • fcitx设置问题
//备份
sudo mv /usr/bin/emacs23 emacs23.bak 
sudo vim /usr/bin/emacs23

添加以下内容: LC_CTYPE=zh_CN.UTF-8 /usr/bin/emacs23-x $@ ,可以看出是通过调用emacs23-x脚本完成启动的 “$@“是脚本中的特殊参数,作用是将所有命令行参数视为单独的个体,也就是单独字符,等同于"$1","$2"… 保存文件,然后添加可执行权限使任何用户及用户组都能够运行emacs

sudo chmod a+x /usr/bin/emacs23

 然后修改修改当前用户主目录下的.bashrc,增加以下内容:

alias emacs='/usr/bin/emacs23'

当然如果使用的是fvwm桌面环境,只需要设置emacs启动快捷键对应的启动命令为emacs23

 

  • ibus设置问题
  • https://launchpad.net/ibus.el 上面下载ibus源码文件压缩包,并解压到.emacs.d文件 夹下。
  • 安装python-xlib:sudo apt-get install python-xlib
  • 在.emacs配置文件中添加如下内容: 
(add-to-list 'load-path "~/.emacs.d/ibus-el-0.3.2") 
(require 'ibus) 
(add-hook 'after-init-hook 'ibus-mode-on)
  • 其他基本配置 View Code
;关闭Emacs工具栏
(tool-bar-mode -1)  
;关闭Emacs菜单栏
(menu-bar-mode -1)  
;去掉滚动条
(set-scroll-bar-mode nil) 



;全屏
(defun my-fullscreen ()
(interactive)
(x-send-client-message
nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_FULLSCREEN" 0))
)
(when window-system (my-fullscreen));; 启动emacs时窗口全屏
(global-set-key [f11] 'my-fullscreen) ;; 启动全屏的快捷键


;;自动重载更改的文件
(global-auto-revert-mode 1)
;;粘贴于光标处,而不是鼠标指针处
(setq mouse-yank-at-point t) 

(setq resize-mini-windows nil)                   ;;锁定行高
(setq enable-recursive-minibuffers t)            ;;递归minibuffer
(setq suggest-key-bindings-1)                    ;;当使用M-x COMMAND后,过1秒显示该COMMAND绑定的键


 ;;设置默认工作目录 
(setq default-directory "~/Documents/")



;;设置用户 
(setq user-full-name "×××") 
(setq user-mail-address "×××@gmail.com") 


;;在窗口的标题栏上显示文件名称 
(setq frame-title-mode t) 
;;光标靠近鼠标指针时,让鼠标指针自动让开
(mouse-avoidance-mode 'animate) 
;;设置显示与当前符号匹配的符号 
(show-paren-mode t)
(setq show-paren-style 'parentheses)

(add-hook 'find-file-hook (lambda () (linum-mode 1)))
(global-linum-mode 1) 

(setq inhibit-startup-message t) ;;关闭启动的“开机画面”
(setq column-number-mode t) ;;显示列号
(display-time) ;;显示时间
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
;(setq display-time-use-mail-icon t);;时间栏旁边启用邮件设置
(setq display-time-interval 1);;时间的变化频率
(global-font-lock-mode 1);;开启语法高亮。 


(defun fix-chinese-word()
  (save-excursion
    (replace-regexp "\\(\\cC\\)\n[ \t]+\\(\\cC\\)" "\\1\\2" nil 0 (1+(buffer-size)))))

(setq emacs-wiki-before-markup-hook 'fix-chinese-word)


;;把缺省的 major mode 设置为 text-mode, 而不是几乎什么功能也
;;没有的 fundamental-mode.
(setq default-major-mode 'text-mode)

;;从剪切板复制到eamcs
(setq x-select-enable-clipboard t)

;改变C-l原来的功能为直接删除所有buffer
(add-hook 'shell-mode-hook 'my-shell-mode-hook)
(defun my-shell-mode-hook ()
  (local-set-key (kbd "C-l") (lambda nil (interactive) (erase-buffer) (comint-send-input)))
  ) 

;;insert-current-date
(defun insert-current-date ()
    "Insert the current date"
    (interactive "*")
    (insert (format-time-string "%Y-%m-%d" (current-time))))
    (global-set-key "\C-xd" 'insert-current-date)


;;insert-current-time
(defun insert-current-time ()
    "Insert the current time"
    (interactive "*")
    ;(insert (format-time-string "%Y/%m/%d %H:%M:%S" (current-time))))
    (insert (format-time-string "%H:%M:%S" (current-time))))
    (global-set-key "\C-xt" 'insert-current-time) 

;;gdb-mode下的快捷键
(add-hook 'gdb-mode-hook '(lambda ()
                            (define-key c-mode-base-map [(f5)] 'gud-go)
                            (define-key c-mode-base-map [(f10)] 'gud-step)
                            (define-key c-mode-base-map [(f11)] 'gud-next)))



;;把缺省禁用的功能打开
(put 'scroll-left 'disabled nil)                     ;;允许屏幕左移
(put 'scroll-right 'disabled nil)                    ;;允许屏幕右移
(put 'set-goal-column 'disabled nil)
(put 'narrow-to-region 'disabled nil) 
(put 'upcase-region 'disabled nil)
(put 'downcase-region 'disabled nil)
(put 'LaTeX-hide-environment 'disabled nil)

(setq track-eol t)                      ;;当光标在行尾上下移动的时候,始终保持在行尾。
(setq Man-notify-method 'pushy)                   ;;当浏览 man page 时,直接跳转到 man buffer。

;;设置字体
;(set-default-font "stxinwei-11")
;(set-default-font "Monospace-11") 
(set-default-font "stkaiti-12")
;(set-default-font "sans-serif")
;(set-default-font "sans-11")

;;设定行距
(setq default-line-spaceing 4)
;;设置删除记录
(setq kill-ring-max 200)
;;在Emacs里面使用shell
;(require 'term-settings)
;(require 'multi-term-settings)      


;(set-default-font "Bitstream Vera Sans Mono-10")  
;; 设置中文字体  
;(set-fontset-font "fontset-default"  'gb18030 '("WenQuanYi Bitmap Song" . "unicode-bmp"))  
;(set-fontset-font "fontset-default"  'gb18030 '("stxinwei". "unicode-bmp"))  

;先用xlsfonts来查看你的机器上有些什么字体,然后在.emacs中加入:
;(set-default-font "-bitstream-bitstream vera sans
;mono-medium-r-normal--16-0-0-0-m-0-iso8859-1")


;不要生成临时文件
(setq-default make-backup-files nil)

;; 不要问 yes-or-no,只问 y-or-n
(defalias 'yes-or-no-p 'y-or-n-p)
;; 高亮显示选中区域
;(transient-mark-mode t)
;;不要生成备份文件
(setq-default make-backup-files nil)
;; ** 设置标题栏
(setq frame-title-format "%b@×××")

;; ** 使用Home键移动到文件起始位置
(global-set-key [(home)] 'beginning-of-buffer)
;; ** 使用End键移动到文件终止位置
(global-set-key [(end)] 'end-of-buffer)

;;指针不闪,不恍花眼睛。
(blink-cursor-mode -1)

;;显示图片
(auto-image-file-mode t)