emacs diy

要充分享受emacs的乐趣必然是从装插件开始的。git

  1. 与ubuntu等同样,先换个国内的源github

    (require 'package)
    
    (setq package-archives '(("gnu"   . "http://elpa.zilongshanren.com/gnu/")
                             ("melpa" . "http://elpa.zilongshanren.com/melpa/")))
    
    (package-initialize)
  2. 好的插件
    这里其实因人而异,可是有几个包是全部地方都用的上的。ubuntu

    • helm:这是一个功能强大的命令提示框架。支持正则,按下空格后进行二次搜索,左右方向键在历史命令与可用命令间切换。。
      好比helm-M-x,功能与原来的M-x同样。可是更加友好方便。若是想开启某项mode又想不起来,如linum-mode:显示行号。先看看有哪些mode,先调用helm-M-x再键入.*-mode。有好多,行号跟line 有关系吧。 再按下SPC li,立刻就看到了。完整命令.*-mode li框架

    • helm-ag:使用helm扩展的ag命令。须要先安装ag。这个命令能够查询目录中全部文件的内容。一样支持正则,收益于helm,能够很方便的跳转与二次搜索。ide

    • 个人配置文件基本上是使用这个的:https://github.com/tuhdo/emac...ui

  3. 解决冲突。
    装上一大堆插件后,不可避免地遇到了按键冲突。this

  • global-set-key: (global-set-key KEY COMMAND),例:(global-set-key (kbd "C-c k") 'helm-ag )spa

  • local-set-key:用法同样可是将按键绑定到local-map上。插件

  • define-key(define-key KEYMAP KEY DEF)将快捷键绑定到keymap中。
    KEYMAP是一个存储按键信息的特殊结构,使用make-sparse-keymap构造一个空的keymap,而make-keymap构造一个全部按键为空的keymap。
    KEY 绑定的按键:(kbd "")|[remap COMMAND]|[t]:随机分配一个
    DEF 的类型:
    nil (means key is undefined in this keymap),
    a command | symbol(a Lisp function suitable for interactive calling),
    a string (treated as a keyboard macro),
    a keymap (to define a prefix key),code

    若是自定义了keymap,还须要配合mode (define-minor-mode )中填写:keymap参数来使得keymap生效。

相关文章
相关标签/搜索