emacs require和provide
Emacs的默认配置文件是.emacs,Emacs启动时会读取并执行.emacs中的LISP代码,用户使用.emacs达到自己的Emacs初始化配置目的。
不过单独使用.emacs有一个问题,因为时间一久,Emacs的初始化配置会变得很多很乱,各种mode的配置都放在.emacs中,.emacs文件中的代
码就变得很长,不利于管理、更改和阅读。其实Emacs建议了另外一种管理初始化配置的方式,我们新安装的Emacs都有一个.emacs.d目录,
就是利用这个目录实现按分类逐个加载初始配置文件来管理Emacs初始配置的方式。
使用.emacs.d目录管理Emacs初始化配置文件,如下设置:
在默认配置文件.emacs中使用:add-to-list,将自己的配置文件路径,通常就使用.emacs.d,加入到load-path,并使用:require,加入配
置文件提供的特性(Feature),一般来说将配置文件名和其提供的Feature命名相同。例如,下面的.emacs配置文件:
;; This is the main Emacs initialization file – .emacs.
(add-to-list ‘load-path (expand-file-name “~/.emacs.d”))
(require ‘feature_1)
(require ‘feature_2)
(require ‘feature_3)
在.emacs中加入的load-path配置文件路径中,即上面的.emacs.d目录,放入自己的配置文件。这些配置文件可以按照功能分类组织,例如,
在.emacs.d中放入:feature_1.el、feature_2.el、feature_3.el。注意:要在每个配置文件中使用provide定义其提供的Feature,比如:
feature_1.el这个配置文件,它提供feature_1特性,即是.emacs中使用require命令要求的feature_1特性,那么要在feature_1.el中加入
provide,则feature_1.el内容如下:
;; This is my Emacs customization file feature_1.el providing feature_1
(provide ‘feature_1)
;; customization code …
这样按功能分类组织Emacs的初始化配置文件就清晰多了,原来的默认配置文件.emacs现在只是一个调入其它配置文件的入口,它的内容也少
多了,更容易扩展和管理。关于Feature、require、provide的详细功能参考Emacs的GNU官方文档:15.7 Features。
另外提一句,目前很多Linux下的开源的软件都支持这种:.xxx.d目录的方式管理配置文件,其中xxx是软件相关的名字。
原文链接:https://blog.csdn.net/gxp/article/details/6970464
c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854
emacs require和provide的更多相关文章
- Emacs学习心得之 基础配置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...
- emacs 配置.emacs
emacs 配置.emacs (require 'package) (package-initialize) (add-to-list'package-archives '("melpa&q ...
- Haskell Interactive Development in Emacs
Installation Following haskell-mode. Use MELPA repository: add the following into ~/.emacs (require ...
- ExtJS笔记2 Class System
For the first time in its history, Ext JS went through a huge refactoring from the ground up with th ...
- Node.js学习笔记 01 搭建静态服务器
希望这篇文章能解决你这样一个问题:“我现在已经了解了一些Node.Js基本概念了,怎么搭一台静态服务器呢?” 请参考一下博主的前两篇文章: 完全面向于初学者的Node.js指南 Node.Js的Mod ...
- Javascript的AMD规范
Javascript发展到今天,已经从一个小丑语言变成了不可替代的前端利器,已经脱离了低端的玩笑脚步,而转变为有规可依的强大语言. 本文主要讲述下如今被大力推广的AMD规范,为什么要AMD,什么场景是 ...
- CentOS7.2非HA分布式部署Openstack Pike版 (实验)
部署环境 一.组网拓扑 二.设备配置 笔记本:联想L440处理器:i3-4000M 2.40GHz内存:12G虚拟机软件:VMware® Workstation 12 Pro(12.5.2 build ...
- javaScript 的AMD
转载:http://www.cnblogs.com/happyPawpaw/archive/2012/05/31/2528864.html#undefined 1. AMD的由来 前端技术虽然在不断发 ...
- openstack第六章:dashboard
第六篇horizon— Web管理界面 一.horizon 介绍: 理解 horizon Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 ...
随机推荐
- vue $emit $on 从子组件传递数据给父组件
原理是: 子组件使用$emit发送数据,父组件使用$on,或者v-on绑定, 来监听子组件发送的数据. 子组件: <button @click="sendChildData" ...
- 【转】java中使用WebSocket
传统的请求,都是从客服端到服务端,表现在web应用上就是,消息都只能由浏览器发起请求,调用客户端的方法. webSocket可以从服务器端推送消息给浏览器. 使用场景: 当客户端发起缴费请求时,由服务 ...
- 未能找到元数据文件**.dll解决办法
解决方案里有很多项目.生成时提示100多个错误,都是未能找到元数据文件**.dll. 那就清理一下解决方案,一个一个来吧. 生成GateWay.Utilities项目时,虽然提示成功了,却发现bin/ ...
- [b0043] python 归纳 (二八)_python测试使用快速上手
参考 Python必会的单元测试框架 —— unittest # -*- coding: utf-8 -*- """ 测试代码组织,整理( 非可执行) "&qu ...
- django之查询操作及开启事务
目录 聚合查询 aggregate 聚合函数 分组查询 annotate F与Q查询 F查询 Q查询 ORM操作事务 django中开启事务 聚合查询 aggregate 操作外键字段管理数据的时候, ...
- tornado的IOLoop.instance()方法和IOLoop.current()方法区别
在使用tornado时,经常有人疑惑IOLoop.instance()方法和IOLoop.current()方法的区别是什么. IOLoop.instance() 返回一个全局 IOLoop实例. 大 ...
- 算法复杂度O(logn)详解
一.O(logn)代码小证明 我们先来看下面一段代码: int cnt = 1; while (cnt < n) { cnt *= 2; //时间复杂度为O(1)的程序步骤序列 } 由于cnt每 ...
- 使用sessionStorage获取值和设置值
<body><button id="btn1">设置值</button><button id="btn2">获取 ...
- java 通过Qrcode生成二维码添加图片logo和文字描述
/** * 二维码创建 * @author yhzm * */ public class printServiceImpl extends BaseService { public void barC ...
- 166. 数独 dancing links 方法
dfs硬怼通过数独 N皇后的代码后 想学习下新的数据结构和算法来解决这类覆盖问题 习题练习 https://www.acwing.com/problem/content/168/ 数独 https:/ ...