Master Emacs in 21 Days,笔记01


作者:子龙山人,学习的课程地址


第一天:准备开始

说在最前面

第一次知道Emacs ,大概是因为她被称之为神的编辑器,会有一丝丝的想要渴望学会她的冲动,至于用她来干嘛就没想过,坦白来说,对于当时的我来说,用她当编辑器都觉得各种别扭,不自然。结果可想而知,背着各种快捷键,组合键和命令痛不欲生。然后还没有真正入门,就放弃了。抱着敬而远之的心态,再没有多去了解她。如此,就是我第一次学习Emacs 从入门到放弃。。

现在嘛,纯粹是因为工作之余,太清闲。。然后又恰逢遇到ManateeLazyCat,下图就是他的个人博客,自称是一位技术手艺人,同时他的名字还跟Deepin 深度操作系统密不可分,虽然,现在没什么关系了。

他让我知道Deepin (Linux) 比Ubuntu 对新手还有友好。请看知乎回答选择ubuntu还是支持deepin?

同时,他又让我燃起了再一次学习Emacs 的Hacking 斗志,起码,这次要能搞定基本的配置,先要会抄高手的配置,再试着用Elisp 瞎改,改崩了再继续学习Elisp 手册。
Emacs 传道士
Emacs 的安装和修改键位,参考我另一篇博文,成为Emacs高手02-实践记录01

基础操作

参考Emacs 自带快速指南

学习基础Elisp

学习Elisp 路线就比较长,Elisp , Scheme , Common Lisp等都属于Lisp 语言的方言。我在用Deepin (Linux)练习SICP的一些准备工作中归纳了一下,学习路线,由浅入深。。

暂时先学一点够用就行,慢慢深入。学习基础Elisp

开始 Hacking !

Emacs 的配置文件默认保存在 ~/.emacs.d/init.el 文件中。(如果其不存在可自行创建, 配置文件也可保存在 ~/.emacs 文件中,他们之间的区别我们会在后面做讨论)


我迫不及待指出它们的区别。。坑啊,如果不删除到~/.emacs文件,你在抄完高手的配置后,也就是保存~/.emacs.d/init.el文件中,只能使用 A-x eval-buffer 去执行当前缓冲区的所有 Lisp 命令。在你享受完高手的配置方案,字体,背景,代码高亮,显示行号,界面清爽,深色主题等等特殊服务后,关闭软件。。在下一次打开时,你又会看到自带着主题丑陋的Emacs,毫不夸张形容就是如花和秋香的视觉既视感。然后,要想对着秋香撸代码,你又要重新 。。使用 A-x eval-buffer 去执行当前缓冲区的所有 Lisp 命令。。。周而复始。直到有一天。你一个手贱手工删除 ~/.emacs 文件。恭喜你,你随时可以对着秋香撸代码。


注意: 如果希望把配置放在 ~/.emacs.d/init.el 文件中,那么需要手工删除 ~/.emacs 文件。

在开始配置之前让我们先来区别 Emacs 中 Major Mode 与 Minor Mode 的区别。

Major Mode 通常是定义对于一种文件类型编辑的核心规则,

  • 例如语法高亮、缩进、快捷键绑定等。

而 Minor Mode 是除去 Major Mode 所提供的核心功能以外的额外编辑功能(辅助功能)。

  • 例如在下面的配置文件中 tool-bar-mode 与 linum-mode 等均为 Minor Mode*。

简单来说就是,一种文件类型同时只能存在一种 Major Mode 但是它可以同时激活一种或多 种 Minor Mode。如果你希望知道当前的模式信息,可以使用 C-h m 来显示当前所有开启 的全部 Minor Mode 的信息。

简单的编辑器自定义

高手的配置方案如下

;; 关闭工具栏,tool-bar-mode 即为一个 Minor Mode
(tool-bar-mode -1)

;; 关闭文件滑动控件
(scroll-bar-mode -1)

;; 显示行号
(global-linum-mode 1)

;; 更改光标的样式(不能生效,解决方案见第二集)
(setq cursor-type 'bar)

;; 关闭启动帮助画面
(setq inhibit-splash-screen 1)

;; 关闭缩进 (第二天中被去除)
;; (electric-indent-mode -1)

;; 更改显示字体大小 16pt
;; http://stackoverflow.com/questions/294664/how-to-set-the-font-size-in-emacs
(set-face-attribute 'default nil :height 160)

;; 快速打开配置文件
(defun open-init-file()
  (interactive)
  (find-file "~/.emacs.d/init.el"))

;; 这一行代码,将函数 open-init-file 绑定到 <f2> 键上
(global-set-key (kbd "<f2>") 'open-init-file)

很遗憾,,暂时还没有瞎改配置的水平。先抄下来,用着爽几天!!

再次感谢,子龙山人

在每次编辑配置文件后,刚刚做的修改并不会立刻生效。这时你需要重启编辑器或者重新加 载配置文件。

  • 重新加载配置文件你需要在当前配置文件中使用 A-x load-file 双击两次 回车确认默认文件名,
  • 或者使用 A-x eval-buffer 去执行当前缓冲区的所有 Lisp 命令。 你也可以使用 C-x C-e 来执行某一行的 Lisp 代码。这些可使刚刚修改的配置文件生效。 当然你也可以将这些函数绑定为快捷键。(这两个命令,我曾输到吐血。。)

插件管理

  • 使用默认的插件管理系统(可在菜单栏 Options > Manage Emacs Packages 中找到)安 装 Company 插件,他是一个用于代码补全的插件。它的名字代表补全一切的意思( Comp lete Any thing)。因为默认的插件管理系统提供的插件十分有限,所以我们会在之后的 几天中继续将其强化。

  • 在进行美化之前我们需要配置插件的源(默认的源非常有限),最常使用的是 MELPA (Milkypostman’s Emacs Lisp Package Archive)。它有非常多的插件(3000 多个插件)。 一个插件下载的次数多并不能说明它非常有用,也许这个插件是其他的插件的依赖。在这里 你可以找到其安装使用方法。添加源后,我们就可以使用 A-x package-list-packages 来查看所有 MELPA 上的插件了。在表单中可以使用 I 来标记安装 D 来标记删除, U 来更新,并用 X 来确认。

你可以直接将下面的代码复制到你的配置文件顶端,从而直接使用 Melpa 作为插件的源。


下面这个,还看不太明白。。我敢看定中间是漏看了那句话


你可以将你需要的插件名字写在 my/packages 中,Emacs 在启动时会自动下载未被安装 的插件。

如有错误,欢迎评论指出。感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值