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和朋友交流
查看日历、撰写文章大纲
对多种编程语言的编辑、调试程序,结合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。
Emacs是什么样的?
如图:
Emacs的设计预想是需要时只需要启动一次,然后一直运行着。我们可以使用C-x-2,C-x-3对窗口进行分割,打开多个文件进行编辑。Emacs的三种基本对象是:帧(frame)、窗口(window)、缓冲区(buffer)。
帧是Emacs对计算机图形界面中窗口的称呼。将上图分为三个部分,分别是显示了Emacs的介绍,可浏览的目录列表及展示Lisp交互界面的缓冲区(buffer)。而是最下面的那一行,则是输入命令的地方。
窗口是帧的一部分,要创建一个新的窗口,只能通过将原有窗口分成两个,当关闭某个窗口时,将把空间给邻近的窗口。这样的结果是一个帧中的窗口始终会填满整个帧的内容。只有对键盘命令进行响应,窗口是轻量级的,在使用时会频繁地创建和关闭。
缓冲区是用来保存可编辑的文本内容。Emacs将会把打开的文本内容保存在缓冲区中,但缓冲区中的内容并不一定必须与某个文件关联:它可能包括搜索结果、在线文档,以及刚输入还没有保存到任何文件中的内容。每个窗口将显示某些缓冲区的内容,而一个缓冲区可能保存0个、1个或多个窗口。
还有一个很重要的地方,那就是除了每个窗口底部的模式行以及其他类似的东西,Emacs在向用户显示文本信息时会将其放在缓冲区中,然后将缓冲区的内容显示在某些窗口中。帮助信息、搜索结果、目录列表以及其他类似的的内容,保存在缓冲区中的内容都有相应的名称。
现在的版本是:24.1,详细可见:http://www.gnu.org/software/emacs/。支持的操作系统有:
GNU | FreeBSD | Solaris | MS Windows |
GNU/Linux | NetBSD | Mac OS X | MS DOS |
GNU/kFreeBSD | OpenBSD | AIX |
获取Emacs
安装方法:Windows直接解压就可以使用。Ubuntu安装完即可使用,Mac OSX同。如果下载的是源码包 (ftp://ftp.gnu.org/gnu/emacs/),则需要编译。
Windows下需要对进行Home目录,修改及配置。
Mac OSX,及类Unix系统都是是在默认的用户目录下,也就是HOME下的个人文件夹。默认的emacs配置文件有三个(详细可参考:http://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html即:
我们通常用.emacs文件进行配置,不过一些比较主流的是放置于.emacs.d文件夹下。不过虽然是叫配置文件,官方的叫法是初始化文件。网上搜索的,可参考的一些简单的自定义及配置:
而,我们知道Emacs更主要的是在于其扩展,以及不断增长的特性。我们可以用些来增加一些mode及功能。
如果是windows,我们建议安装cygwin。这样可以渐渐摆脱对鼠标的依赖,当然了主要目的是与cygwin整合。
cygwin是一个在windows平台上运行的unix模拟环境;
Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。
2001年,新增了X Window System。另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。
Windows的Dos Scripts功能非常薄弱,命令行工具也非常少;如果您对Linux比较熟悉,那么Cygwin可以帮助您在Windows下面使用强大的Bash,以及使用数量繁多的Linux命令,通过Scripts,可以更加高效的完成系统管理工作
如果您刚进入Linux的世界,使用Cygwin可以让你在Windows下面练习Linux的Bash,以及常用工具。而不需要安装Linux,也不用担心Windows被破坏。
下载setup.exe
安装Cygwin,您需要下载setup.exe,此程序根据您选择的软件包,再从互联网下载所有组件。
官网:http://cygwin.com
点此下载从官网下载setup.exe
安装方法参见:http://www.cygwin.cn/site/install/直接打emacs, 如果有X-windows就会开视窗.
如果不想用X 的版本,就用 emacs -nw (No windows)起动.
C-X 表示按住CTRL键, 然后按X, 再把CTRL, X一起放开.
M-X META META
在没有META键的电脑上, M-X 等于先按 ESC键, 接着按 X键.
Sun上面META键就是菱形的那个键.
有些系统META键就是ALT键.(或者某一边的ALT键)
C-X或 M-X的X没有大小写分别.
Emacs按键命令基本上是一串C-和M-组成的.
超过两个以上的按键命令, Emacs会在屏幕最下面一行显示你按过什么.
这一行叫作mini buffer
`C-x C-c' -- 退出Emacs
或者在minibuffer输入'kill-emacs',在输入前需要按下M-x
如果当前有需要保存的文件,那么应该是'save-buffers-kill-emacs'
启动Emacs,用你喜欢或者习惯的方式。Windows可以加emacs加入环境变量,即PATH
因此相比之下,第二种和第三种方式相结合会比较顺手
常用的窗口操作,右边是命令按M-x可以输入,等同于快捷键
C-x 0 | delete-window | 关闭一个窗口 |
C-x 1 | delete-other-windows | 关闭其他窗口 |
C-x 2 | split-window-vertically | 垂直分割窗口成两部分 |
C-x 3 | split-window-horizontally | 水平分割窗口成两部分 |
C-x o | other-window | 切换到另一个窗口 |
so,让我们开始分割成三部分,先垂直再水平,也就是先'C-x 3' 'C-x 2',如图所示:
然后在第一个窗口,'M-x'然后'find-file',或者'C-x C-f',结果如图所示:
接着在切换到另一个窗口('C-x o',或者'M-x',然后输入'other-window'),再输入eshell,或者shell,如果是windows会切换到cmd也就是命令提示符,如图。
然后,新建个文件,'find-file',再输入路径和文件名,比如我的'D:\Desktop\hello.c。
接着'M-x',输入'C-mode',也就是开始C模式,有语法加亮等功能。
接着输入:
然后切换到eshell或者shell窗口,输入'gcc hello.c -o hello',如果是windows则是'gcc hello.c -o hello.exe'
再执行它'./hello',或者windows输入'hello',即可,最后如图所示:
如果没有gcc,有python,那么就如上图所示的那样。