Blog

Blog

PHODAL

Emacs 入门指引(二) 安装及简单的配置

获取Emacs 现在的版本是:24.1,详细可见:http://www.gnu.org/software/emacs/。支持的操作系统有:

  • GNU FreeBSD Solaris MS Windows
  • GNU/Linux NetBSD Mac OS X MS DOS
  • GNU/kFreeBSD OpenBSD AIX 获取Emacs

  • Windows: http://ftp.gnu.org/pub/gnu/emacs/windows/ Mac OsX:

  • http://emacsformacosx.com/ Unix/Linux:可使用自带的软件包管理。例如Ubuntu的:sudo
  • apt-get install Emacs

安装方法:Windows直接解压就可以使用。Ubuntu安装完即可使用,Mac OSX同。如果下载的是源码包 (ftp://ftp.gnu.org/gnu/emacs/),则需要编译。 配置Emacs Windows下需要对进行Home目录,修改及配置。 如果设置了HOME环境变量,那么就用它的值作为home目录~ 如果存在注册表键值HKCU\SOFTWARE\GNU\Emacs\HOME,就用它的值作为home目录~ 如果存在注册表键值HKLM\SOFTWARE\GNU\Emacs\HOME,就用它的值作为home目录~(和2的区别是,2只是针对当前用户的注册表路径,3则是针对所有用户) 如果存在C:.emacs,就用C:\作为home目录~ 如果以上都不存在的话,就使用\Users\AppData\Roaming作为home目录~(对于XP和较早windows用户,需要到Documents and Settings目录下去找) Mac OSX,及类Unix系统都是是在默认的用户目录下,也就是HOME下的个人文件夹。默认的emacs配置文件有三个(详细可参考:http://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html即:

~/.emacs
~/.emacs.el
~/.emacs.d/init.el

我们通常用.emacs文件进行配置,不过一些比较主流的是放置于.emacs.d文件夹下。不过虽然是叫配置文件,官方的叫法是初始化文件。网上搜索的,可参考的一些简单的自定义及配置:



    (set-cursor-color "white") 
    ;; 鼠标颜色设置为白色 
    (set-mouse-color "white") 
    ;; 设置背景颜色和字体颜色 
    (set-foreground-color "white") 
    (set-background-color "darkblue") 
    ;; 设置另外一些颜色:语法高亮显示的背景和主题,区域选择的背景和主题,二次选择的背景和选择 
    (set-face-foreground 'highlight "white") 
    (set-face-background 'highlight "blue") 
    (set-face-foreground 'region "cyan") 
    (set-face-background 'region "blue") 
    (set-face-foreground 'secondary-selection "skyblue") 
    (set-face-background 'secondary-selection "darkblue") 
    ;;设置日历的一些颜色 
    (setq calendar-load-hook 
        '(lambda () 
        (set-face-foreground 'diary-face "skyblue") 
        (set-face-background 'holiday-face "slate blue") 
        (set-face-foreground 'holiday-face "white")))
    ;;外观设置 
    ;;去掉工具栏 
    (tool-bar-mode nil) 
    ;;去掉菜单栏,我将F10绑定为显示菜单栏,万一什么东西忘了,需要菜单栏了可以摁F10调出,再摁F10就去掉菜单 
    (menu-bar-mode nil) 
    ;;不要滚动栏,现在都用滚轴鼠标了,可以不用滚动栏了 
    (scroll-bar-mode nil) 

    ;;备份设置 
    ;;emacs还有一个自动保存功能,默认在~/.emacs.d/auto-save-list里,这个非常有用,我这里没有改动,具体可以参见Sams teach yourself emacs in 24hours(我简称为sams24) 
    ;;启用版本控制,即可以备份多次 
    (setq version-control t) 
    ;;备份最原始的版本两次,记第一次编辑前的文档,和第二次编辑前的文档 
    (setq kept-old-versions 2) 
    ;;备份最新的版本五次,理解同上 
    (setq kept-new-versions 5) 
    ;;删掉不属于以上7中版本的版本 
    (setq delete-old-versions t) 
    ;;设置备份文件的路径 
    (setq backup-directory-alist '(("." . "~/.emacs.tmp"))) 
    ;;备份设置方法,直接拷贝 
    (setq backup-by-copying t) 

    ;;自动补全功能,这事从王垠的网站直接Copy过来的,引用一些他对此的说明 
    ;;你可以设置以下 hippie-expand 的补全方式。它是一个优先列表, hippie-expand 会优先使用表最前面的函数来补全 
    ;;这是说,首先使用当前的buffer补全,如果找不到,就到别的可见的窗口里寻找,如果还找不到,那么到所有打开的buffer去找,如果还……那么到kill-ring里,到文件名,到简称列表里,到list,…… 当前使用的匹配方式会在 echo 区域显示。 
    ;;特别有意思的是 try-expand-line,它可以帮你补全整整一行文字。我很多时后有两行文字大致相同,只有几个字不一样,但是我懒得去拷贝粘贴以下。那么我就输入这行文字的前面几个字。然后多按几下 M-/ 就能得到那一行。
    (global-set-key [(meta ?/)] 'hippie-expand) 
    (setq hippie-expand-try-functions-list 
    '(try-expand-line 
    try-expand-line-all-buffers 
    try-expand-list 
    try-expand-list-all-buffers 
    try-expand-dabbrev 
    try-expand-dabbrev-visible 
    try-expand-dabbrev-all-buffers 
    try-expand-dabbrev-from-kill 
    try-complete-file-name 
    try-complete-file-name-partially 
    try-complete-lisp-symbol 
    try-complete-lisp-symbol-partially 
    try-expand-whole-kill)) 

    ;;时间戳设置(time-stamp),设定文档上次保存的信息 
    ;;只要里在你得文档里有Time-stamp:的设置,就会自动保存时间戳 
    ;;启用time-stamp 
    (setq time-stamp-active t) 
    ;;去掉time-stamp的警告? 
    (setq time-stamp-warn-inactive t) 
    ;;设置time-stamp的格式,我如下的格式所得的一个例子: 
    (setq time-stamp-format "%:u %02m/%02d/%04y %02H02M02S") 
    ;;将修改时间戳添加到保存文件的动作里。 
    (add-hook 'write-file-hooks 'time-stamp) 

    ;;时间显示设置 
    ;;启用时间显示设置,在minibuffer上面的那个杠上(忘了叫什么来着) 
    (display-time-mode 1) 
    ;;时间使用24小时制 
    (setq display-time-24hr-format t) 
    ;;时间显示包括日期和具体时间 
    (setq display-time-day-and-date t) 
    ;;时间栏旁边启用邮件设置 
    (setq display-time-use-mail-icon t) 
    ;;时间的变化频率,单位多少来着? 
    (setq display-time-interval 10) 

hvj的讨论和推广emacs贴3: 
这里继续帖我得hvj-basic-config.el,讲另外一些比较零碎的设置 
引用:;;启用minibuffer,好像是默认设置吧 

    (minibuffer-electric-default-mode 1) 
    ;;启用部分补全功能,如输入M-x q r r相当于M-x query-replace-regexp 
    (partial-completion-mode 1) 
    ;;在minibuffer里启用自动补全函数和变量 
    (icomplete-mode 1) 
    ;;所有的问题用y/n方式,不用yes/no方式。有点懒,只想输入一个字母 
    (fset 'yes-or-no-p 'y-or-n-p) 
    ;;允许minibuffer自由变化其大小(指宽度) 
    (setq resize-mini-windows t) 
    ;;当寻找一个同名的文件,自动关联上那个文件? 
    (setq uniquify-buffer-name-style 'forward) 
    ;;在emacs读man文档时,使用当前buffer 
    (setq Man-notify-method 'pushy) 
    ;;鼠标自动避开指针,如当你输入的时候,指针到了鼠标的位置,鼠标有点挡住视线了 
    (mouse-avoidance-mode 'animate) 
    ;;允许自动打开图片,如wiki里面 
    (auto-image-file-mode) 
    ;;可以操作压缩文档 
    (auto-compression-mode 1) 
    ;;在minibuffer上面可以显示列号 
    (column-number-mode t) 
    ;;显示默认的文档的宽度,看起来比较舒服? 
    (setq default-fill-column 60) 
    ;;指针不要闪,我得眼睛花了 
    (blink-cursor-mode -1) 
    (transient-mark-mode 1) 
    ;;当指针到一个括号时,自动显示所匹配的另一个括号 
    (show-paren-mode 1) 
    ;;是用滚轴鼠标 
    (mouse-wheel-mode t) 
    ;;去掉烦人的警告铃声 
    (setq visible-bell nil) 
    ;;滚动页面时比较舒服,不要整页的滚动 
    (setq scroll-step 1 
    scroll-margin 3 
    scroll-conservatively 10000) 
    ;;设定句子结尾,主要是针对中文设置 
    (setq sentence-end "\\([¡££¡£¿]\\|¡¡\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t\n]*") 
    (setq sentence-end-double-space nil) 
    ;;去掉Emacs和gnus启动时的引导界面 
    (setq inhibit-startup-message t) 
    (setq gnus-inhibit-startup-message t) 
    ;;当指针移到另一行,不要新增这一行?d 
    (setq next-line-add-newlines nil) 
    ;;在文档最后自动插入空白一行,好像某些系统配置文件是需要这样的 
    (setq require-final-newline t) 
    (setq track-eol t) 
    ;;使用C-k删掉指针到改行末的所有东西 
    (setq-default kill-whole-line t) 
    ;;设定删除保存记录为200,可以方便以后无限恢复 
    (setq kill-ring-max 200) 
    ;;增大使用查找函数和变量的寻找范围 
    (setq apropos-do-all t) 
    ;;是用aspell程序作为Emacs的拼写检查成学 
    (setq-default ispell-program-name "aspell") 
    ;;使用narrow功能时的一个设置 
    (put 'narrow-to-region 'disabled nil) 
    ;;启动Emacs自动设置为两个窗口(上下各一个) 
    (split-window-vertically) 
    ;;改变emacs标题栏的标题 
    (setq frame-title-format "%b@vj.org") 
    ;;允许emacs和外部其他程序的粘贴 
    (setq x-select-enable-clipboard t) 

而,我们知道Emacs更主要的是在于其扩展,以及不断增长的特性。我们可以用些来增加一些mode及功能。


或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签