emacs 探索之四:基本配置

  记录下自己在使用emacs的配置过程,于己备份,于人共享。这次有主题,输入法和其他的一些基本配置。

  • 主题
    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)

     

     

posted @ 2013-01-25 08:06  roardragon  阅读(834)  评论(1编辑  收藏  举报