linux emacs配置文件,[z]使用.emacs.d目录管理Emacs配置文件

第一启动emacs会在~目录下创建.emacs.d目录

使用.emacs.d目录管理Emacs配置文件

参考:Declaring .emacs Bankruptcy

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配置文件:

1

;; This is the main Emacs initialization file - .emacs.

2

3

(add-to-list 'load-path (expand-file-name "~/.emacs.d"))

4

(require 'feature_1)

5

(require 'feature_2)

6

(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内容如下:

1

;; This is my Emacs customization file feature_1.el providing

feature_1.

2

3

(provide 'feature_1)

4

5

;; customization code ...

这样按功能分类组织Emacs的初始化配置文件就清晰多了,原来的默认配置文件.emacs现在只是一个调入其它配置文件的入口,它的内容也少

多了,更容易扩展和管理。关于Feature、require、provide的详细功能参考Emacs的GNU官方文档:15.7

Features。

另外提一句,目前很多Linux下的开源的软件都支持这种:.xxx.d目录的方式管理配置文件,其中xxx是软件相关的名字。

2010/7/2 Limp_T

emacs-23.exe解压该文件,解压后进入相应的文件夹,文件夹下包含以下子文件夹:bin、data、etc、info、leim、lisp、lock、site-lisp、

var.bin文件夹中是一些可执行程序,info文件夹中是帮助信息,site-lisp文件夹中是一些扩展的包(Emacs的插件一般都是一个以el为后缀名

的文件).

在bin文件夹中,运行addpm.exe,注册系统变量ComSpec,在我的电脑图标上点击右键,选择"属性",然后选择"高级"选项卡,在"高级"选项卡

下面选择"环境变量",在"系统变量"栏中可以看到有一个变量叫做"ComSpec",它的值为C:\WINDOWS\system32\cmd.exe(和%SystemRoot%

\system32\cmd.exe一样).该变量的作用是指示emacs调用系统的shell,在windows下一般用的都是cmd,当然也可以使用cgywin等其它的shell,

使用cgywin等作为emacs默认的shell时可能会需要一些其它的设置,这些可以参考emacs的在线帮助.运行addpm.exe后,会给emacs添加开始菜

单.运行runemacs.exe可以启动emacs。

emacs安装好了以后应该对它进行配置,只有经过一些必要的配置,它才配得上"能煮咖啡"这个称号.

首先在“环境变量”中添加“HOME”变量,例如值为“E:\ erlang” (erlang工程);

接着在“HOME”变量的路径下的目录建立一个文件名为".emacs"的文件(如果不设置HOME变量,可以在根目录C:\目录下建立这

个".emacs"文件),如果直接在windows下建立一个".emacs"文件,windows会提示请输入文件名,建立不成功,我们最好直接就用emacs来建立这

个文件,在emacs下通过菜单File->Visit New

File...来建立一个文件,文件名就是".emacs".".emacs"文件是emacs的配置文件,emacs在启动

的时候会从".emacs"文件中读取配置信息,来打开或者关闭各种功能,初始化扩展包或者配置界面上的一些显示(去掉菜单栏,工具栏,改变背景

颜色等).

最后创建一个Emacs的快捷方式,放在桌面或者任务栏快速启动,右击快捷方式选“属性”,将“起始位置”设为"E:

\erlang“或"%HOME% "(HOME环境变量)。这样Emacs启动后可以直接定位到erlang工程的目录。

Windows下设置Emacs的HOME目录

总的来说,Emacs的默认配置文件放在变量HOME所指的路径下,所以,只要我们把.emacs扔到HOME所指向的目录就可以了,下面就简单介绍一

下在Windows下设置home目录的几种方法,并进行简单的对比。

第一种方法,改变home环境变量的值。

这种方法,改变了$home变量,也会影响Cygwin或是其他一些应用程序,因为有一些程序会根据Windows的home环境变量来寻找数据存放的路

径。

第二种方法,不改变Windows默认的home值,设置默认的.emacs文件读取你自己的Emacs配置文件,并重新设定Emacs的home目录。

你可以在Emacs中输入C-x

C-f,然后打开路径~(即当前的home环境变量所指的路径,一般来说是这样的路径:C:/Documents and

Settings/water/Application Data)。

看看显示的是哪个目录,如果此目录下没有.emacs,可以创建一个.emacs或_emacs,然后在这个.emacs文件里,加入如下语句:

?View Code LISP

(load-file "E:/water/.emacs")

文件 E:/water/.emacs

才是我们真正的Emacs配置文件,我们可以在这个真正的配置文件里用如下语句设置我们的home目录:

?View Code LISP

1

2

3

4

5

(setenv "HOME" "E:/water")

(setenv "PATH" "E:/water")

;;set the default file path

(setq default-directory "~/")

(add-to-list 'load-path "~/emacs/site-lisp")

这个方法的优点是比较简单同样也方便对.emacs文件备份,不会对其它应用程序产生任何影响。

第三种方法,修改注册表,在注册表中进行如下设置:

HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs\HOME=%emacs_dir%

以上三种方法都可以设置好Emacs的Home目录,但是,系统是按什么顺序来解析它们的呢?大体上的顺序是这样的:

如果设置了环境变量HOME,则使用HOME指定的目录。

如果设置了注册表里的值HKCU\SOFTWARE\GNU\Emacs\HOME,则使用这个值所指定的目录作为home目录。并不是太推荐使用这种方法,因为会

导致用户共享一个home目录。

如果 C:\.emacs 文件存在,则使用 C:\.emacs

这个文件。这个是为了向低版本的Emacs兼容,因为低版本的Emacs就是默认用这个文件作为

配置文件。

把用户的AppData目录作为home目录(通常来说,就是类似这样的目录 C:/Documents and

Settings/water/Application Data ),这个用户

的数据目录根据Windows版本的不同而有所不同。

我个人比较喜欢用第二种方法,即简单又方便备份。

其实,如果你只是想要Emacs能找到你的.emacs的话,也可以不用管HOME目录的,写个批处理文件emacs.bat:

path-of-emacs.exe -q -l path-of-your.emacs

以后执行这个批处理文件就可以用你的配置打开Emacs了。

5、加载.el文件

lisp目录下存放着lisp源文件(*.el)和已编译的lisp文件(*.elc),以后你也可以将自己的.el文件放在这个目录下,然后还要在.emacs文件插入相关语句。比如你有一个文件叫做abcd.el,将它复制到lisp目录下,然后打开.emacs文件插入一句(require

'abcd)就可以了(包括圆括号,不需要扩展名.el)。

如果你不喜欢lisp文件夹,也可以自己新建一个,比如在home目录下建一个文件夹叫做xyz,然后把abcd.el放在xyz目录下,在.emacs文件插入以下两句:

(setq load-path (cons "~/xyz" load-path))

(require 'abcd)

第一句告诉emacs先加载你的xyz目录,第二句再加载abcd.el。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux操作系统权限详解,Linux权限详解

权限权限是操作系统用来限制对资源访问的机制。权限一般分为读、写、执行。每个用户都有特定的权限、所属用户、所属组,通过这样的机制来限制哪些用户、哪些组可以对待特定的文件进行怎么样的操作。每个进程都是以某个用户的身份运行,所以进程的权限与该…

Linux 内核 颜色,Linux操作系统内核版的表示方法是( )

(8分)将煤粉隔绝空气加强热,除主要得到焦炭外,还能得到下表所列的物质:序号①②③④⑤⑥⑦名称甲烷一氧化碳乙烯苯在家庭中进行的下列实验或做法可行的是()A.用食醋区分食盐和纯碱B.将食盐经溶解、过滤、蒸发来制纯净的…

linux中检测用户信息的命令是,在Linux系统上检查用户所属组

Linux 管理员经常进行的一项操作之一:那就是把用户添加到现有组,这是在一些大环境工作的 Linux 管理员日常经常从事的操作之一,所以经常会在 Linux 系统上检查用户所属组,本文就来谈谈这方面的知识。我会因为业务需求而在我的环境…

Linux生态ox版本,从折腾说Linux生态圈

这几天折腾路由器过墙,累得一头大汗。这些天本来挺忙的,需要很多时间去做一些“正经的"事情,却因为原来的过墙方法不可以用了,又是各种学习网络知识,又是各种脚本配置的折腾。在这件事上足足花了有七八个小时。不…

linux上听FM程序,安装和使用Odio在Linux上收听FM收音机的方法

Linux平台上有一些很棒的无线电应用程序可用于在Linux上收听FM Radio(收音机),本文介绍Odio,包括安装和使用它来收听FM收音机的方法。启用S​​nap支持和安装Odio由于Snap软件包,Odio无线电应用在Linux上得到了支持,在Linux上&…

go linux 源码编译环境,修改并编译golang源码

Go 语言诞生5周年!友情提示:本文使用Markdown编写,黑色背景文字可能需要横向拖动才能看清全文最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动。特将操作过程整理如下,以供参考:golang的源…

linux多线程编程和linux 2.6下的nptl,Linux多線程編程和Linux 2.6下的NPTL

這幾天由於工作需要,琢磨了一下Linux下的多線程的相關資料。Linux下最常用的多線程支持庫為Pthread庫,它是glibc庫的組成部分。但是關於Pthread的說明文檔非常缺乏,特別是對POSIX多線程規范的介紹以及pthread庫中多線程實現方式的介紹實在是少…

linux快照软件哪个好,Linux下的快照snapshot的实现

最近的移植工作碰到了关于快照的问题,windows在这方面真是强大,留给了用户很多好的接口。而Linux下只能针对LVM卷建立快照,还好有一个比较强大的lvm管理器。不过lvm管理需要你安装,而且很多Linux用户可能并没有进行分区以及建立lv…

linux如何用cat看一行数据库,linux的cat命令

linux下cat命令最基本的用法是用来查看文件内容。那么它的其他用法是什么呢?下面由学习啦小编为大家整理了linux的cat命令的相关知识,希望大家喜欢!linux的cat命令用法1:查看文件内容主要用法1、cat f1.txt,查看f1.txt文件的内容。2、cat -n f1.txt&…

linux 内核空间 sy,在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysf...

级别: 初级燚 杨 (), 计算机科学硕士2006 年 2 月 16 日本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、deb…

linux下使用usb转串口,Linux下使用USB转串口线

现在新款的PC主板很多都没有串口了,如果要使用串口,一般会买一个USB转串口的转接器, 这种设备需要先安装驱动才能使用,附带一个光盘,上面可能只有windows下的驱动,如果在Linux下使用,需要做一些…

linux 计划任务格式,linux crontab 定时任务格式和使用方法2019-01-13

前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划…

netmiko检测linux基线,网络设备自动巡检工具

网络设备自动巡检工具使用netmiko编写的网络设备自动巡检工具。使用方法:1.脚本读取当前目录下的配置文件(需手动创建):DEVICES.cfg和各网络设备的巡检模版2.DEVICES.cfg内容格式:设备IP地址 用户名 密码 巡检模版(使用空格分割),…

c语言折半查找输出坐标,数据结构(C语言版)——有序表查找(折半查找)(代码版)...

数据结构(C语言版)——有序表查找(折半查找)(代码版)数据结构(C语言版)——有序表查找(折半查找)(代码版)#include #include #define ERROR 0#define OK 1#define MAXSIZE 20typedef int Status;Status binarySearch(int arr[],int arrLenght,int wantSearchElement);int main(…

双linux共用swap,在Linux和FreeBSD系统上共享swap空间

这个部分描述了如何使用和来共享一个空间。有几种不同的方法可以实现它。如果你愿意,你可以在Linux安装之前安装FreeBSD,只是需要注意FreeBSD slice的顺序。3.1.1安装Linux第一步是正常安装Linux。你必须在上留下一些空间作为FreeBSD的slice。你不必分出…

win10创建c语言文件,c – 如何在Windows中创建扩展(自定义)文件属性?

我们有一种专有的文件格式,其中嵌入了产品代码.我刚刚开始“在打开文件时允许最终用户按产品代码排序/过滤”的路径.对我们来说最简单的方法可能是在我们的自定义Open File对话框中添加另一个下拉列表,在其中选择要过滤的产品代码.但是,如果我们可以将此信息作为此文件类型的详…

c语言int32u的作用,求c语言大神 帮我解释一下这段说的都是啥?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//滚动显示} else if(Mode 0xdd){OffsetTemp j Offset;if(OffsetTemp<16){Display(HanZiData[OffsetTemp*160]);Display(HanZiData[OffsetTemp*161]);Display(HanZiData[OffsetTemp*162]);Display(HanZiData[OffsetTemp*163]…

c语言编写一个函数判断闰年,C语言:实现一个函数判断year是不是闰年

#include/*判断是否是闰年&#xff1a;四年一闰&#xff0c;百年不闰&#xff0c;四百年再闰&#xff0c;单独的四百年一闰也是闰年的条件*/int leap(year){int ret0;;if(((year%40)&&(year%100!0))||(year%4000)){return 1;}else{return 0;}}int main(){int year0;int…

c语言判断这天是星期几,【求指导!!】输入年,月,日,然后判断这天是星期几!!!!!...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼6楼兄弟谢了哈。可以啦!!!!哈哈&#xff0c;开心啊、//1900年1月1日是星期一//所以从1900年1月1日算起#include int fun(int year);int main(){int year,month,day;int i;int ts1[]{31,28,31,30,31,30,31,31,30,31,30,31}; //非…

c语言编程求数学期望,数学期望的计算方法与技巧.pdf

第22卷第3期 湖 南 工 业 大 学 学 报 VO1&#xff0e;22 NO&#xff0e;32008年5月 Journal of Hunan University of Technology Mav 2008数学期望的计算方法与技巧肖文华(娄底职业技术学院 电子信息工程系&#xff0c;湖南 娄底 417000)摘 要&#xff1a;利用数学期望的定义、…