Emacs 简介

1 Emacs是什么?

Emacs是一种功能超强的文本处理程序,或者文本编辑器。做者Richard Stallman(主
页:http://stallman.org/)。基础部分是使用C语言编写的,其余部分是用Emacs Lisp编写的。深层次的话,C语言构成了emacs的底层,包括Emacs Lisp的解释器。而Emacs Lisp则是负责了Emacs Lisp的建筑物上层,也就是包括咱们平时用的扩展、界面等。编程

Emacs只是一文本编辑器,这和Windows上的Visual Studio等等不一样的是,VS集成的是完整的开发功能,包括编译器、编辑器、调试器等等。而Emacs只是一个文本编辑器,固然不要所以而是否认Emacs的强大。Emacs能够作的:小程序

  • 收发电子邮件、经过FTP/TRAMP编辑远程档案、经过Telnet登陆主机、上新闻组、登录IRC和朋友交流windows

  • 查看日历、撰写文章大纲
      架构

  • 对多种编程语言的编辑、调试程序,结合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等
      编程语言

  • 玩游戏、计算器、记日记
      编辑器

  • 煮咖啡、管理日程,Task,ToDo,约会等、我的信息管理、目录管理函数

  • 文件比较、阅读info和man文档、浏览网站工具

他确实只是一个文本处理器,你能够将之视为伪编辑器的操做系统。而这是由于其与unix/Linux系统的整合程度而起的,换句说,若是Richard Stallman能够早点开发出内核,而不是等到Linux的话。Linux/Unix的设计思想之一就是:简单,使用足够的小程序来支撑起这世界,而是Emacs所作的就是利用这些工具,来打造本身,完成本身的系统。于是,Emacs强大的另外一点是,有足够的扩展,不管是过去的auto-complete或者是如今的Android-mode等等。故而,咱们能够在《架构之美》之中看到关于其的介绍,而是他的特性也是如此,助长的特性是其优点。网站

也因些,Emacs是Unix世界的两大神器之一,另一个是Vim/Vi。spa

2 Emacs是什么样的?

emacs1

emacs2

Emacs的设计预想是须要时只须要启动一次,而后一直运行着。咱们能够对窗口进行分割,打开多个文件进行编辑。Emacs的三种基本对象是:帧(frame)、窗口(window)、缓冲区(buffer)。

3 Emacs 的基本概念

Emacs 的基本概念

3.1 frame

Emacs中的frame就是操做系统中的窗口.

buffer是文件的内存表示, windows则是显示buffer的区域, 一个frame中能够有多个window, Emacs则能够有多个frame.

3.2 window

窗口. 因为Emacs很早就诞生了, 它的窗口概念和如今基于窗口的操做系统中的窗口概念不是同样的. Emacs中的窗口是用来显示buffer的一个区域. 它并不像操做系统中的窗口拥有本身的标题栏,系统菜单栏.

3.3buffer

缓冲区. Emacs并不直接对文件进行操做, 它是把文件加载进buffer, 用户直接操做buffer, 只有当用户肯定把buffer中所作的修改写人文件时, Emacs才把buffer中的内容写入文件. buffer实际上就是一个内存缓冲区, 这和通常编辑器中都同样, 应该很好理解.

3.4 Emacs Lisp

Emacs最基础的部分是用c写的,其余部分都是用Emacs Lisp语言写的,Emacs Lisp语言是基于lisp语言的. lisp是LISt Processor的缩写, 即链表处理语言, 因此lisp语言的操做都是基于链表的, 它的语法也是链表结构, 链表第一个元素表示函数名, 其余元素是参数, 好比一般语言中的a+b, 在lisp就是(+ a b)

3.5 mode

mode有major mode和minor mode之分, 每一个缓冲区对应一个major mode, 也只有一个major mode, 可是能够有多个minor mode. Emacs对每一种文件都有一个mode.

3.6 命令

你对Emacs全部的操做都是对Emacs的命令的调用。好比,你在text-mode里,当你按下任何字母键进行编辑的时候,其实是调用的emacs的命令self-insert-command.

3.7 快捷键

Emacs中Control键用C表示,Alt键用M表示, 即: C-c表示Control C, M-x表示Alt x.

除掉以Alt键开头的,好比Alt a,Emacs中的快捷键基本上都有一个前缀,Emacs中最多的快捷键前缀就是C-x,C-c,前缀表示,你没必要要一块儿按下前缀和后缀,能够先按下前缀,Emacs会等待你按下剩余的快捷键,这样Emacs中的快捷键按起来很是的方便。

3.8 keymap

键盘映射. Emacs的快捷键是经过keymap来控制的. 有全局和局部的keymap. 每一个mode都会有一个本身的局部的keymap, 局部的keymap会覆盖全局的keymap, 另外若是对应的major mode有开启的minor mode, 并且这个minor mode有keymap的话, 这个minor mode的keymap会覆盖major mode的keymap.

参考资料
Emacs入门系列:尝试定制神器
Emacs 入门指引(一) Emacs简介
Emacs基础知识简介

相关文章
相关标签/搜索