由于我的工作涉及到固件的编程,所以今天前辈今天给了我一个编程环境Emacs 并让我尽快熟悉和使用它。

所以从今天开始学习Emacs的使用与编程。

先发一下我目前的一些概要的了解吧。

Emacs是一种强大的文本编辑器,在程序员和其他以技术工作为主的计算机用户中广受欢迎。EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman于1975年在MIT协同Guy Steele共同完成。自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种分别是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。  它们都使用了Emacs Lisp这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。

在Unix文化里,Emacs是黑客们关于编辑器优劣之争的两大主角之一,它的对手是vi。

Emacs的功能特点

Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中,在基于编辑器的功能基础上,Emacs自行开发了一个“bourne-shell-like”的shell: EShell。Emacs还可以:

  收发电子邮件

  通过FTP/TRAMP编辑远程档案

  通过Telnet登录主机

  上新闻组

  登陆IRC和朋友交流

  查看日历

  撰写文章大纲

  对多种编程语言的编辑

  调试程序,结合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等

  玩游戏

  计算器

  记日记

  煮咖啡

  管理日程,Task,ToDo,约会等

  个人信息管理

  目录管理

  文件比较

  阅读info和man文档

  浏览网站

  为各种程序(TeX等)提供统一的操作界面

此外Emacs还有如下特点:

  display editor

  实时编辑器

  高级编辑器

  Self-documenting

  可定制性

  可扩展性(集成Lisp语言)

  支持X Window环境

强大的定制功能

Emacs用户可以根据自身的需要和偏好对编辑器进行定制。强大而自由的个人定制功能是Emacs受到广泛欢迎的重要原因之一。定制Emacs主要有三种方法。

  第一种方法是使用Emacs的交互式定制功能。Emacs提供了图形化的交互界面,使用户能够对可定制的公共变量进行设置。这种方法使Emacs的初学者不需要接触Emacs Lisp代码即可完成定制。

  第二种方法是将一系列按键记录为宏,调用这一宏可以重复进行已经记录的一系列复杂操作。宏可以保存并命名,以便按名调用,不过同一时刻只能存在一个匿名的宏。

  第三种方法是通过使用Emasc Lisp完成Emacs的定制。这种方法最为复杂,但是也提供了更多的灵活性和更强大的功能。用户通常将个人定制的Emacs Lisp代码保存在一个名为.emacs的配置文件中,Emacs程序运行之初便读取这一文件,完成用户要求的配置。用户可以通过.emacs文件重设变量、重新定义按键的绑定(key bindings)、以及定义新的命令,以方便用户个人的使用。很多高级用户的.emacs文件的个性化配置长达数百行甚至更多,这些个人的定制使他们的Emacs不仅与默认配置的功能不同,每个人的Emacs之间也千差万别。这种差异能很好的满足不同个性的偏好和不同工作的需求。

  如果一段Emacs Lisp代码确实有用,它通常会被打包并发布给其他用户。在因特网上能找到很多这样来自第三方的elisp库,例如能用于编辑维基百科条目的wikipedia-mode。Usenet上的新闻组gnu.emacs.sources专门发布新的elisp库。有些第三方代码最终还成为了Emacs“标准库”的一部分。

以上文字节选自百度知道

Emac的使用与编程学习笔记相关推荐

  1. 多线程编程学习笔记——async和await(三)

    接上文 多线程编程学习笔记--async和await(一) 接上文 多线程编程学习笔记--async和await(二) 五.   处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...

  2. 多线程编程学习笔记——任务并行库(二)

    接上文 多线程编程学习笔记--任务并行库(一) 三.   组合任务 本示例是学习如何设置相互依赖的任务.我们学习如何创建一个任务的子任务,这个子任务必须在父任务执行结束之后,再执行. 1,示例代码如下 ...

  3. 多线程编程学习笔记——任务并行库(三)

    接上文 多线程编程学习笔记--任务并行库(一) 接上文 多线程编程学习笔记--任务并行库(二) 六.   实现取消选项 本示例学习如何实现基于Task的异步操作进行取消流程,以及在任务真正运行前如何知 ...

  4. Linux与C++11多线程编程(学习笔记)

    多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...

  5. Cocoa编程学习笔记一

    Cocoa编程学习笔记一 一.Cocoa的起源 Mac OS X的窗口服务器与UNIX中的X窗口服务器具有相同的功能:从用户那里接受事件,并将时间转发给应用程序,将应用程序发过来的数据显示在屏幕上.N ...

  6. 多线程编程学习笔记——使用并发集合(三)

    接上文 多线程编程学习笔记--使用并发集合(一) 接上文 多线程编程学习笔记--使用并发集合(二) 四.   使用ConcurrentBag创建一个可扩展的爬虫 本示例在多个独立的即可生产任务又可消费 ...

  7. Java 8 函数式编程学习笔记

    Java 8 函数式编程学习笔记 @(JAVASE)[java8, 函数式编程, lambda] Java 8 函数式编程学习笔记 参考内容 Java 8中重要的函数接口 扩展函数接口 常用的流操作 ...

  8. java 网络编程学习笔记

    java 网络编程学习笔记 C/S模式:客户端和服务器 客户端创建流程 1 1.建立Socket端点 2 3 Socket s = new Socket(绑定地址, 绑定端口); 2.确认源数据方式和 ...

  9. 多线程编程学习笔记——线程池(二)

    接上文 多线程编程学习笔记--线程池(一) 三.线程池与并行度 此示例是学习如何应用线程池实现大量的操作,及与创建大量线程进行工作的区别. 1. 代码如下 using System; using Sy ...

最新文章

  1. XHTML+CSS3(Chapter 1)
  2. 电商系统如何做搜索引擎?
  3. Crontab使用语法格式
  4. 小朋友你是否有很多问号?疫情期间不打游戏却在背ABC,百度翻译日活同比增长40%...
  5. spring五:获取容器中对象信息
  6. 嵌入式工程师该如何选择合适的开发系统
  7. spring用的很开心的标签(随时增加)
  8. LXReorderableCollectionViewFlowLayout
  9. 来自DFRobot的中文语音识别模块
  10. sql用java做界面设计_My Sql作为数据库,java作为应用程序?
  11. 淘宝闲鱼等电商平台数据采集软件
  12. c语言实验内容设计思路,c语言实验报告书3.doc
  13. 我们为什么要学编程?
  14. 微信公众号二维码生成
  15. 数据流程分析【停车场管理系统】
  16. outsystems刚做项目时的注意点-划重点
  17. 求最大公因数的几种算法
  18. 计算机编程课程顺序_您可以在八月开始的500项免费在线编程和计算机科学课程
  19. 简介一些黑盒测试的方法
  20. linux 网络函数调用链,Linux通知链机制及实例

热门文章

  1. 手机您的浏览器不允许第三方_手机壁纸:我的世界不允许你的消失,不管结局是否完美...
  2. 手机上流行的各类谜语及谜底
  3. 网络原理实验4 路由协议的配置
  4. 4-10 阶乘计算升级版
  5. AWS攻略——Peering连接VPC
  6. 如何切换不同的python环境
  7. vanish高速反向代理服务器配置
  8. Linux进程间通信详解
  9. 计算机与科技小故事,科学童话小故事大全【三篇】
  10. alibabaprotect 是危险的有害的顽固的病毒般的存在