Skip to content
This repository has been archived by the owner on May 15, 2020. It is now read-only.

xgfone/dotemacs

Repository files navigation

我的Emacs配置

(1)本配置已经分别在 Windows7 和 Ubuntu 系统下对 Emacs23 和 Emacs24 两个版本进行测试,结果测试均通过。
(2)本配置的原则:
    a. 不依赖操作系统平台环境;即对Unix及类Unix系统和Windows系统均支持;
    b. 不依赖第三方程序;即只要安装本配置就可100%地完全使用,而不会缺失其它功能,除非有特殊说明。
    c. 安装便捷;即可以使用本配置提供的安装文件来快速安装,也可以手工拷贝直接安装,不需要其它额外的工作。
(3)本配置所做的工作:
     a. 配置一些基本工作,主要在 .dotemacs/configs/emacs-basic-config.el 文件中;
     b. 增强Emacs的内置功能,及增加额外的快捷功能,主要在 .dotemacs/configs/functions.el 文件中;
     c. 由于本人主要工作在 Python 开发环境下,偶尔工作在 C/C++ 和 Web 开发环境下,因此,本配置主要配置了
        Python 开发环境(使用 emacs-for-package 插件包),JavaScript 开发环境使用 js2-mode 包配置,HTML
        和 XML 等开发环境使用 Emacs 内置功能(暂时没有配置),C/C++ 开发环境简单地对 Emacs 的内置功能进
        行了配置(功能不强,有待增强)。

Install——安装

首先将本配置包放到任何一个目录下,可以命名为任何一个合法的目录名(不建议命名为“.dotemacs”————以免在某种条件下
引起名字冲突);然后执行以下命令:
本安装支持两种方式:全功能配置和简单配置。
(1)在Linux及Unix-like平台下:
     1> 安装全功能配置:
        $ sh DOWNLOADED_PACKAGE_PATH/install-awesome-emacs-on-posix.sh
     2> 安装简单配置:
        $ sh DOWNLOADED_PACKAGE_PATH/install-simple-emacs-on-posix.sh
     注:如果给以上两个文件添加了可执行权限,可以直接执行,如:
         DOWNLOADED_PACKAGE_PATH/install-awesome-emacs-on-posix.sh
       或
         DOWNLOADED_PACKAGE_PATH/install-simple-emacs-on-posix.sh
(2)在Windows平台下:
     在Windows下,默认的安装文件仅支持Windows7系统,不支持Windows7以下的版本,比如:Windows XP。否则,您需要
     自己手工拷贝安装。
     1> 安装全功能配置:
        DOWNLOADED_PACKAGE_PATH\install-awesome-emacs-on-windows.bat
      或
        DOWNLOADED_PACKAGE_PATH\install-awesome-emacs-on-windows.bat
     2> 安装简单配置:
        DOWNLOADED_PACKAGE_PATH\install-simple-emacs-on-windows.bat
      或
        DOWNLOADED_PACKAGE_PATH\install-simple-emacs-on-windows.bat
     注:在Windows系统中,也可以直接用鼠标双击这两个BAT批处理文件来完成安装。

说明:DOWNLOADED_PACKAGE_PATH是安装包的绝对路径或相对路径;如果当前目录已经是DOWNLOADED_PACKAGE_PATH目录,则
      在上述安装命令中,可以省略DOWNLOADED_PACKAGE_PATH。

Directory Structure——目录结构

.dotemacs/
     configs/                              # 配置文件目录,其中包括内置插件和第三方插件的配置文件。
         emacs-basic-config.el             # 基本、简单的配置文件。
         emacs-config.el                   # 全功能配置文件,其将引用configs目录下所有的配置文件。
     lisps/                                # 第三方插件目录,如果其配置文件较大,将单独成一个文件放置
                                           # 在configs目录,否则将直接放在emacs.config.el文件中。
     install-awesome-emacs-on-posix.sh     # POSIX兼容平台下全功能配置安装文件
     install-awesome-emacs-on-windows.bat  # Windows平台下全功能配置安装文件
     install-simple-emacs-on-posix.sh      # POSIX兼容平台下简单配置安装文件
     install-simple-emacs-on-windows.bat   # Windows平台下简配置安装文件
     README.md                             # 说明文件

Questions——问题

(1)如何查找 Windows 7 系统下用户主目录?
 在Windows7系统下,对Emacs而言,其主目录和VIM等软件对其主目录的看待不一样;对Emacs而言,Windows7用户的主目录
 较复杂一些。其定位方式也行简单:只需要打开Emacs(可以使用任何方式,只要能打开Emacs就行),在Emacs中按组合键
 “C-x X-f ~”即可,该组合键会用Dire模式打开当前用户的主目录,并在Dire缓冲区的第一行显示其主目录的具体位置。

Other Resources——其他资源

(1)Emacs Lisp List————Emacs第三方插件收集列表
 http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html

Features——本配置的特性

1、默认对一些模式(如:C-mode、C++-mode、python-mode、js-mode、html-mode、xml-mode、ruby-mode等),高亮
   显示行尾的空白。
   
2、默认对一些模式(如:C-mode、C++-mode、python-mode、js-mode、html-mode、xml-mode、ruby-mode等),在保
   存文件时删除行尾的空白。
   
3、默认对一些模式(如:C-mode、C++-mode、python-mode、js-mode、html-mode、xml-mode、ruby-mode等),自动
   格式化从Emacs编辑器外拷贝进来的代码。

4、额外实现的小功能及其快捷键绑定:
   本配置自定义了快捷键前缀 C-v。C-v 是除了 C-z、C-x 和 C-c 之外最方便按的包含 Ctrl 的快捷键,但是此三个
   快捷键前缀已被 Emacs 内置占用了,因此,为了防止与其冲突,特自定义了 C-v 快捷键前缀。

  (1)在标记与当前位置两者之间互相跳转
      C-.      在当前位置做一个标记
      C-,      在当前位置处和由C-.组合键设置的标记处来回跳转

  (2)横仿 VIM 中的 % 键
      @        模仿VIM中的 % 键,即如果当前位置处是一个括号,则跳转到与该括号匹配的另一半括号处,否则插入一
               个 @ 符号。这里没有使用 %,是因为有很多时候 %  会和括号相邻(比如:Django中的模板标签),此
               时要在括号旁边输入%,还需要先输入空白,再输入%,然后再删除空白,比较麻烦,而@很少和括号相邻。

  (3)模仿 VIM 中的 f 键
      C-v f    模仿VIM中的 f 键,即向前移动到指定的字符后。

  (4)注释/反注释代码块————增强内建的快捷键 M-;
      M-;      增加内建的 M-; 快捷键,即如果有激活区域(即有文本选择块),则注释/反注释激活区域,否则注释/反
               注释当前行

  (5)增加内建的快捷键 M-w ————如果没有激活区域,则复制当前行
      M-w
      C-v w    对Emacs内建快捷键 M-w 的增强:如果有激活区域,则复制激活区域;否则复制当前行上的所有字符。
               由于有些系统占用 M-w 快捷键,因此,在此将 M-w 的功能重新绑定到快捷键 C-v w 上,即二者完成同样
               的功能。

  (6)缩进整个缓冲区,并删除行尾的空白
      C-v j    缩进整个缓冲区,并删除行尾的空白。注:在某些情况下,其结果可能并不是我们期望的,慎用!除非你知
               道将要发生什么。

  (7)左移/右移代码块
      C-v <    左移代码块/文件块;如果没有被选中的代码块/文本块,则左移当前行。注:一次移动4个字符间距。
      C-v >    右移代码块/文件块;如果没有被选中的代码块/文本块,则右移当前行。注:一次移动4个字符间距。

  (8)查找缓冲区最长的行
      C-v C-l    找到当前缓冲区中最长的一行,并跳转到该行。

  (9)跳转到指定的行上
      F2
      C-v l    跳转到指定的行上。绑定到 F2,是为了按键方便。

  (10)删除一些临时的缓冲区
      C-v c    删除一些临时的 buffers,减少内存占用率。

  (11)打印键盘图
      C-v k    打印键盘图——显示全部热键。

  (12)快速查找Lisp函数
      C-v C-j   在快速查找Lisp函数。

  (13)将 speedbar 集成到 Emacs 主窗口中
       C-v s   打开Emacs内建的speedbar。
       C-v C-s  类似于快捷键 C-v s,但把speedbar集成到Emacs主窗口中。
       C-v 1    重置窗口配置。注:此命令最好在打开speedbar的情况下使用。

  (14)TAB 和 SPACE 互相转换
       C-v t   将整个缓冲区中的TAB键转换成SPACE键
       C-v C-t  将整个缓冲区中的SPACE键转换成TAB键

  (15)换行符(LF、CRLF、CR)互相转换————这个是Emacs内建的快捷键
       C-x RET f CODING RET       如果 CODING 为 unix、dos 或 mac,则相应的改变当前缓冲区中换行符为LF、
                                  CRLF、CR。

  (16)快速打开笔记手册
       C-v C-n  在当前缓冲区中快速打开 docs/Emacs.Learning.Notes.txt。

  (17)快速打开 README
       C-v C-r  在当前缓冲区中快速打开 README.md,以便查看该快捷键表。

  (18)快速重新加载配置文件
       C-v r    快速重新加载 ~/.emacs。

  (19)在Python文件中快速插入编码注释
       C-v C-c  在当前缓冲区中的当前行前插入Python编码注释(使用Emacs风格和utf-8编码)。
                插入的代码为:# -*- coding: utf-8 -*-。

  (20)增加Emacs内建的正则表达式字符串高亮
       M-s h r  高亮正则表达式字符串。Emacs的内建功能是全局性的,即整个 frame 中的所有缓冲区共享高亮历史;
                但配置对其进行了增强————高亮历史是局部于缓冲区的,即各缓冲间互不干扰。
       M-s h u  取消正则表达式字符串的高亮。和 M-s h r 快捷键一样,它也是局部于缓冲区
                的,可以认为取消当前缓冲区的 M-s h r 快捷键操作。
       注:由于 Emacs 24 以下版本不支持 defvar-local,而本配置又要兼容版本 23,因此,本配置在24以下的版本
       定义了一个 defvar-local 符号————可以定义一个局部于缓冲区的变量。但在24以前的 Emacs 版本中,
       read-regexp 无法直接使用它,因此,在24版本以前,各个缓冲区间并不是 100% 的分离,即在输入搜索字符串
       正则表达式时,会有一个默认的提示(上一次搜索的字符串正则表达式,如果输入为空,则使用上一次的搜索规
       则),而这个提示是所有缓冲区共用的。在 Emacs 24(以其以后的版本),read-regexp 可以直接指定局部变
       量,可以做到 100% 分离。
       如果在版本 24 以上,这个问题就不用担心。要丢掉 Emacs 23,需要时间等待呀!  ::>_<::

       C-s      正向字符串搜索。(Emacs 内建功能)
       C-r      反向字符串搜索。(Emacs 内建功能)

       C-M-s    正向正则表达式搜索。(Emacs 内建功能)
       C-M-r    反向正则表达式搜索。(Emacs 内建功能)


5、一些没有绑定快捷键的小功能:
  M-x my-indent-or-complete    如果当前光标在单词中间就对齐,否则就TAB。
  M-x my-stamp                 在当前位置中插入时间、用户名和系统信息。
  M-x my-timestamp             在当前位置中插入时间戳
  M-x my-kid-stardict          调用stardict的命令行接口来查询词典
  M-x my-kid-sdcv-to-buffer    如果选中了 region,就查询 region 的内容;否则就查询当前光标所在的单词。

About

My Emacs Configuration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published