zoukankan      html  css  js  c++  java
  • 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)
    Top
    收藏
    关注
    评论
  • 相关阅读:
    POJ 2155 Matrix(二维树状数组)
    HDU 1280 前m大的数
    HDU 3183 A Magic Lamp(二维RMQ)
    HDU 3743 Frosh Week(归并排序求逆序数)
    POJ 2299 Ultra-QuickSort ( 归并排序 + 求逆序数 )
    HDU 1166 敌兵布阵(树状数组)
    HDU 2846 Repository(字典树)
    HDU 1896 Stones(优先队列)
    HDU 4393 Throw nails(优先队列)
    进程池
  • 原文地址:https://www.cnblogs.com/SunSmileCS/p/2875967.html
Copyright © 2011-2022 走看看