记录下自己在使用emacs的配置过程,于己备份,于人共享。这次有主题,输入法和其他的一些基本配置。
- 主题
emacs默认的主题比较难看,基本上是黑白配;如果实在难以忍受,那么这里给出一个能够 让用户选择自己喜欢主题的方法。当然,肯定还有很多其他方法,但笔者当前只是使用 color-theme这方法实现的,而且效果基本上还比较好,至少是笔者比较喜欢的主题。- 从http://download.gna.org/color-theme/ 下载color-theme代码;
- 解压到.emacs.d目录下;
- 在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
- fcitx设置问题
- 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)