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生效。

相關文章
相關標籤/搜索