当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : emacs的require和load
帖子发表于 : 2010-12-16 15:37 

注册: 2007-12-24 13:23
帖子: 50
送出感谢: 1
接收感谢: 0 次
最近觉得.emacs配置文件太大了,想拆分管理。结果遇到个莫名其妙的问题,请那位知道的大大帮忙解决。

问题描述:
.emacs里面使用
(add-to-list 'load-path "~/emacs/own/")
增加了自己写的el的目录

下面使用
(require 'my-cedet-settings) 一直提示不能找到my-cedet-settings

使用
(load "my-cedet-settings.el") 可以正常加载͂

这样的话,说明目录已经添加进去了,为什么使用require不能加载呢?

使用debug-init参数启动时候的错误信息:

Debugger entered--Lisp error: (error "Required feature `my-cedet-settings' was not provided")
require(my-cedet-settings)
eval-buffer(#<buffer *load*> nil "~/.emacs" nil t) ; Reading at buffer position 324
load-with-code-conversion("~/.emacs" "~/.emacs" t t)
load("~/.emacs" t t)
#[nil "^H\205\264........."]
nil都是乱码,不知道跟这个有关系没有。

请知道的大大不吝赐教,谢谢了。呵呵!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: emacs的require和load
帖子发表于 : 2010-12-16 16:11 
头像

注册: 2008-03-25 15:49
帖子: 25878
地址: 谁知道?
送出感谢: 8
接收感谢: 10
my-cedet-settings.el 末尾 应该有一个 provide 的。 后面才是对应的 reuqire 对应的。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: emacs的require和load
帖子发表于 : 2010-12-16 16:14 

注册: 2007-12-24 13:23
帖子: 50
送出感谢: 1
接收感谢: 0 次
刚刚出去溜达了一圈,有点思路。说出来大家讨论下:
add-list 那个只是把路径增加到搜索路径里面,本身没有什么动作。

In Emacs Lisp code, you can require the loading of a Lisp library that provides a feature, as follows:

(require 'the-feature "the-library-file" <soft-flag>)

require请求的是已经loading进来的库,而本身不做load的动作。
所以require失败。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: emacs的require和load
帖子发表于 : 2010-12-16 16:17 

注册: 2007-12-24 13:23
帖子: 50
送出感谢: 1
接收感谢: 0 次
不好意思,刚刚没有刷新。呵呵。才看到pocoyo的回复。

文件后面增加provide是声明该模块的意思吗?

测试了一下是可以的。emacs的处理机制还不清楚。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: emacs的require和load
帖子发表于 : 2010-12-16 17:29 

注册: 2009-06-20 23:53
帖子: 490
送出感谢: 3
接收感谢: 0 次
我以前全部拆分了,后来觉的管理这么多el太麻烦,最近又合并到一起了。 :em06


页首
 用户资料  
 
6 楼 
 文章标题 : Re: emacs的require和load
帖子发表于 : 2011-03-02 0:08 
头像

注册: 2007-04-28 15:14
帖子: 1167
系统: NixOS+虚拟机各种系统
送出感谢: 0 次
接收感谢: 4
bhunter 写道:
不好意思,刚刚没有刷新。呵呵。才看到pocoyo的回复。

文件后面增加provide是声明该模块的意思吗?

测试了一下是可以的。emacs的处理机制还不清楚。

如果el文件中有,provide XXX,那么可以require XXX就可以加载了,否则,就要直接用load来加载文件。


_________________
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
双路 + NixOS + openbox + qemu/spice + 智能生产线研发


页首
 用户资料  
 
7 楼 
 文章标题 : Re: emacs的require和load
帖子发表于 : 2011-03-15 22:52 
头像

注册: 2008-06-18 22:02
帖子: 186
送出感谢: 0 次
接收感谢: 1
provide和require的emacs lisp的模块加载机制


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译