前言

本文介绍了如何定制Emacs的外观和如何组织Emacs配置文件以做到“一处配置随处可用”。外观定制部分仅举个例子,包括:菜单栏、工具栏、滚动条、字体设置、主题,重在讲解定制方法,读者一旦掌握定制的方法,就可以做更多的定制。

定制Emacs有两种方式:

  • 通过Emacs的Cusmtomize系统,类似传统软件的GUI操作
  • 通过修改Emacs配置文件(.emacs或者init.el,后面介绍这个配置文件)

第一种方式其实也是在修改Emacs配置文件,只不过是Emacs自动修改的。对于初学者或者是不喜欢去手动操作配置文件的用户,使用Customize系统是更好的选择。

去掉菜单栏、工具栏、滚动条

所有的定制操作有一个统一的入口:M-x customize RET。进入Customize Mode之后的界面如下:

定制的操作很简单,选择要设置的项目编辑、保存即可。关键在于如何找到要设置的项目,可以使用页面上方的搜索框来搜索要设置的选项。使用C-h m来获得使用Customize Mode的帮助信息。
以隐藏菜单栏来举例,我在search里输入”menu bar”回车,在搜索结果里将光标移动到”Menu Bar Mode”那一行行首,按TAB键,光标会自动定位到Toggle按钮上,按回车键来切换设置状态,设置为“off”之后,再一下TAB将光标移动到下面的State按钮上,按下回车,Emacs提示你保存状态,选择“1”,为以后的sessio都使用这个设置。如下图所示:

小提示:在Customize Mode下,TAB键自动将光标移动到下一个按钮,S-TAB移动到上一个按钮。

对于隐藏工具栏和滚动条是一样的操作,把搜索词替换为“tool bar”和“scroll bar”即可。要关闭的两个Mode分别是:Tool Bar ModeScroll Bar Mode

更换字体

字体的设置可以按如下操作进行:

  1. M-x customize-group RET basic-faces RET,进入了Customize Group的Basic Faces设置分组,将光标移动到Default那一行,按回车键,展开Default分组:

  1. 可以看到Font Family那项就是字体的名称,光标移动到那行的行首,按TAB键会自动定位到名称编辑框里进行修改,可以根据需要修改其它的设置。修改之后,点击State按钮,类似之前修改菜单栏的操作一样,要对修改进行保存,要为以后的session都使用这个字体那就根据提示输入“1”即可。

更改主题

在介绍如何安装Package之前,这篇文章只讲如何在Emacs自带的主题直接进行切换。

如果只是临时想修改主题,那么可以这么操作:输入M-x customize-themes RET, 会看到Emacs自带的十几种主题,光标移动到某个主题,然后按回车键,当前的session就会切换到对应主题。如果想在Emacs重启后仍然保留需要点击上面的保存按钮。

自定义操作小结

前面介绍的定制操作提到了三种进入设置页面的方法,第一种是通过M-x customize RET,进入设置的主页面,然后使用搜索功能,定位到具体的设置选项。

第二种是使用M-x customize-group然后进入Basic Faces分组。

第三种是直接进入主题设置页面:M-x customize-themes。

通常某个具体的设置项都对应着Emacs的一个变量,在熟悉了设置项之后,则可以直接定位到具体的设置页面,比如假设我知道了控制菜单栏显示的变量叫:menu-bar-mode,那么我可以使用:

M-x customize-variable RET menu-bar-mode RET 直接进入菜单栏设置界面。

综上所述,我们目前掌握的进行定制操作的命令分为以下四类:

  • M-x customize : 进入设置主页,通过搜索来导航
  • M-x customize-group :按分组来设置,需要指定分组名,需要对设置分组有一定的了解
  • M-x customize-variable :定位到具体的某个变量,需要对要设置的项的变量名熟悉
  • M-x customize-themes :以设置主题为代表的这类命令,对Emacs某个方面进行设置的命令,需要对设置系统比较熟悉

让你的Emacs个性化设置随处可用

当你的Emacs配置复杂到一定程度以后,让你在另一台设备上重新设置一遍是很费精力的。就像你希望你的浏览器书签可以在任何设备上可用一样,你也希望你最喜欢的Emacs个性化设置也一样随处可用,这不是什么难事,有很多办法。

在介绍如何做到这一点之前,首先要确定的是,我们的Emacs配置文件在哪里?

默认情况下,你的Emacs配置文件是在($HOME)/.emacs这个文件里的。如果找不到这个目录和文件,请参考下面那节“我的配置文件在哪里”。

安装的扩展Package等文件是放在($HOME)/.emacs.d/这个目录下的。你也可以把.emacs文件重命名为init.el, 然后把它也放在.emacs.d这个文件夹下,这样就维护一个目录就行了。

因此,($HOME)/.emacs.d/这个文件夹就是你的私人Emacs定制内容,让它随处可用即可。用U盘、云盘啥都行,很多人都把.emacs.d建成一个独立仓库托管在github上,在实现了云端存储的同时,还方便版本管理,记录每次的修改,所以建议使用这个方案。

使用别人的优秀配置,站在巨人的肩膀上

Emacs诞生已经30来年了,使用Emacs的大牛很多,也有很多大牛把自己的配置挂在网上分享出来,它们是很好的学习参考对象。可以把这些优秀的配置下载下来,在使用中体会它的精妙,并逐渐改造成更适合你自己的配置,这会为你节省大量的精力,并且更容易走在正确的路上。

这个链接是Ergoemacs网站推荐的一些适合Coding的配置,同时也提到了适合初学者的配置:

Emacs: What’s the Best Setup for Coding {Python, Java, C++, Web Dev, …}

下面这个链接是一些使用Emacs的名人列表,有精力的话可以去网上搜他们的配置:

Famous Emacs Users (that are not famous for using Emacs):著名的Emacs用户(不是因为使用Emacs而出名)

使用Emacs.d关键字来搜索github,按Star数量降序排列应该会找到优秀的emacs配置。(我还未尝试)

我的配置文件在哪里?

C-h v user-init-file 就会看到你使用的配置文件是啥了,你的配置文件就在那里。如果你对Emacs只进行了上面的几个配置,那么现在打开这个配置文件,内容大致是这个样子的:

(custom-set-variables;; custom-set-variables was added by Custom.;; If you edit it by hand, you could mess it up, so be careful.;; Your init file should contain only one such instance.;; If there is more than one, they won't work right.'(menu-bar-mode nil)'(scroll-bar-mode nil)'(tool-bar-mode nil))(custom-set-faces;; custom-set-faces was added by Custom.;; If you edit it by hand, you could mess it up, so be careful.;; Your init file should contain only one such instance.;; If there is more than one, they won't work right.'(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 120 :width normal :foundry "outline" :family "Monaco")))))

可以看到你刚才进行的几项配置都保存在这里了(menu-bar-mode是菜单栏,scroll-bar-mode是滚动条,最下面的是字体设置),每次Emacs启动的时候会执行这个lisp脚本来加载你的定制选项。

C-h v对应的命令叫:describe variable,也可以使用:M-x describe-variable 来启动这个命令,M-x 是启动命令的万能钥匙,以C-h v类似的按键来发送命令是一种快捷方式!

推荐的.emacs.d(不定期更新)

  • magnars/.emacs.d: emacs rocks系列视频的配置,文档齐全,可以当做学习参考之用
  • tuhdo/emacs-c-ide-demo:C/C++开发环境demo,可参考作者的博客,可以把Emacs打造成一个功能完备的C++ IDE,可以在Emacs中高效的浏览Linux Kernel源代码。

作者水平有限,对相关知识的理解和总结难免有错误,还望给予指正,非常感谢!

在这里也能看到这篇文章:github博客, CSDN博客, 欢迎访问

【积水成渊-逐步定制自己的Emacs神器】2:基本的定制Emacs相关推荐

  1. 【积水成渊-逐步定制自己的Emacs神器】3:为Emacs安装扩展

    前言 本文介绍了如何使用Emacs的Package-Mode来为其安装扩展包,讲解如何添加新的Package源和如何安装Package.以安装一个新的主题包Solarizd和Markdown编辑扩展M ...

  2. 【积水成渊-逐步定制自己的Emacs神器】5:回到最初,重新开始

    前言 本文介绍如何把Emacs"恢复出厂设置",这是我们克服一切困难的终极法宝. 在前面的Emacs定制那篇文章中,我们知道了通常所有对Emacs的定制文件都在.emacs.d这个 ...

  3. 【积水成渊-逐步定制自己的Emacs神器】1:Emacs入门

    前言 本文介绍了Emacs编辑器的入门知识,看完本文读者会知道Emacs的基本用法以及如何通过Emacs来学习Emacs,这会让你觉得整个学习Emacs的过程都是在被"授之以渔". ...

  4. emacs初步了解贴,emacs是什么,为什么用emacs,emacs与vim和Eclipse之间的应用不同,怎么选择这些编辑器和平台做最有效率的开发。...

    首先声明:个人认为 1:不同的开发需求,必定有不同的最优选择,一个项目中有多个需求,那么多个分模块的解决方案就是必然的最优解.多个项目更是如此. 2:不同的开发工具有其不同的优点.取长补短就可以了.不 ...

  5. Emacs 入门指引(一) Emacs简介

    Emacs是什么? Emacs是一种功能超强的文本处理程序,或者文本编辑器.作者Richard Stallman(主页:http://stallman.org/).基础部分是使用C语言编写的,其他部分 ...

  6. emacs python开发环境_配置Emacs下的Python开发环境

    特性 在Linux论坛上总有人问Python用什么IDE比较好,然后总会有人回答说Emacs.最近开始学Python,也花了点时间研究怎么配置Emacs,发现没有想象中的那么麻烦.这篇文章大致上来自于 ...

  7. emacs c语言 自动补全,Emacs 与 C/C++ 代码自动补全

    基于 Emacs 的 company 模式并配合 semantic 文法分析器,实现 Emacs 的 C/C++ 代码自动补全. 关于 Emacs 的代码自动补全 代码自动补全的功能,对于使用 Ema ...

  8. ERP软件定制开发需注意哪些问题?ERP定制开发要多长时间?

    多企业想选择定制开发ERP软件,但不清楚要怎么找,用什么标准去找软件开发商,前畏虎后怕狼,找来找去,犹如一团乱麻,那么ERP软件定制开发需注意哪些问题?要按照什么标准找,ERP定制开发要多长时间,要做 ...

  9. 【积水成渊-逐步定制自己的Emacs神器】4:Emacs自动补全

    前言 本文介绍了Emacs里的自动补全功能,包括其内置的缓冲区文件名补全和使用扩展package实现的文本的补全和程序代码的补全功能等. 本文提到的几个package(或mode): ido-mode ...

最新文章

  1. ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
  2. python提高办公效率-几个可以提高工作效率的Python内置小工具
  3. 逃离美股!瑞信给出了11个理由
  4. 笔记-项目整体管理-项目工作说明书
  5. sql时间格式转换yyyymm_XML和实体类之间的转换
  6. python中plot的图像类型_Python绘图问题:Matplotlib中指定图片大小和像素
  7. 嵌入式操作系统的主要特点都有哪些
  8. SqlBulkCopy 批量复制数据到数据表
  9. WebBrowser的Cookie操作
  10. 为什么有的电路中要有两单片机
  11. 哪些场景应用了dsrc通信标准_如何提高量子通信系统的实用性,制约了量子通信系统的应用场景...
  12. 【服务治理】服务治理漫谈
  13. oracle 11.2.0.3.0 client下载,oracle64位客户端 Instant Client
  14. MySQL笔记: B站宋红康最新教程 (持续更新中)
  15. The scripts f2py, f2py3 and f2py3.8 are installed in ‘/home/cyd/.local/bin‘ which is not on PATH
  16. 云队友丨两年还债4个亿!罗永浩,你可真行
  17. nginx 日志问题(\x22)
  18. 《Loy解说Hystrix》
  19. C语言文件详解(一)文件介绍,文件打开和关闭
  20. 2013年部分节假日安排

热门文章

  1. android端接入腾讯云直播全过程详解(包含腾讯云点播、腾讯云IM)直播+弹幕+录制直播视频
  2. wpsppt页面卷曲在哪里_2013版ppt怎么制作页面卷曲动画效果_博客
  3. 帷幄匠心 c++ qt岗位,一二三四面 2个半小时
  4. greenplum 添加mirror
  5. python免费下载歌曲_实现python批量下载网易云音乐的免费音乐
  6. 字节终面:说说Kakfa副本状态机的实现原理?
  7. 开源 制作磁力链接_3个开源链接缩短器
  8. C# 汉字转拼音 拼音转汉字 简体繁体互转
  9. mysql占用内存过高_MySQL内存消耗过高问题处理
  10. jsp130ssm妇女联合会管理系统