emacs_emacs linux - CSDN
emacs 订阅
Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman(理查德·马修·斯托曼)于1975年在MIT协同Guy Steele共同完成。这一创意的灵感来源于TECMAC和TMACS,它们是由Guy Steele、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏文本编辑器。自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。Emacs使用Emacs Lisp,这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。 [1] 展开全文
Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman(理查德·马修·斯托曼)于1975年在MIT协同Guy Steele共同完成。这一创意的灵感来源于TECMAC和TMACS,它们是由Guy Steele、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏文本编辑器。自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。Emacs使用Emacs Lisp,这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。 [1]
信息
外文名
Emacs
定    义
一种强大的文本编辑器
运行环境
GNU/Linux,BSD,Solaris,Windows
中文名
编辑器宏
完    成
1975年
emacs发展历史
Emacs在1970年代诞生于MIT人工智能实验室(MIT AI Lab)。在此之前,人工智能实验室的ITS上运行的操作系统PDP-6和PDP-10的默认编辑器是一个叫TECO(Text Editor and Corrector)的行编辑器。与现代的文本编辑器不同,TECO将击键、编辑和文本显示按照不同的模式进行处理,稍晚出现的vi与它有些类似。在TECO上击键并不会直接将这些字符插入到文档里去,必须先输入一系列相应的TECO指令,而被编辑的文本在输入命令的时候是不会显示在屏幕上的。在如今还在使用的UNIX编辑器ed(ed)上,我们还能看到类似的工作方式。1970年代初,Richard Stallman访问Stanford AI Lab时见到了那里的"E" editor。这种编辑器有着所见即所得的直观特点,深深打动了Stallman。后来Stallman回到MIT,那时候MIT AI lab的黑客Carl Mikkelsen 已经给TECO加上了称作“Control-R”的编辑显示模式,使得屏幕能跟随用户的每次击键刷新显示。Stallman重写了这一模式,使它运行得更有效率,后来又加入了宏,允许用户重新定义运行TECO程序的键位。这一新版的TECO立刻在AI实验室流行开来,并且很快积累起了大量自定义的宏,这些宏的名字通常就以“MAC”或者“MACS”结尾,意为“宏”(macro)。两年后,Guy Steele承担起统一当时存在的各种键盘命令集的工作。Steele和Stallman经过一夜奋战,最终由Stallman完成了这一任务,包括一套扩展和注释新的宏包的工具。这个完成的系统被称作EMACS,代表“Editing MACroS”。根据Stallman的说法,他采用这个名字是“因为当时在ITS里还没有被当作缩写用过。”("because was not in use as an abbreviation on ITS at the time." )也有说法指出,当时波士顿在MIT附近有家名为“Emack & Bolio's”的商店出售的冰激凌很受欢迎,Dave Moon是那里的老主顾,他就将ITS上一个给文本排版的程序命名为BOLIO,然而Stallman并不喜欢甚或根本不知道那种冰激凌,此事后来成了黑客界的一桩公案。Stallman意识到过多的定制、在开发过程中事实上的分支以及针对特殊用途的限制,威胁着Emacs的发展。后来他写道:“ Emacs的发布基于社群共享,这意味着所有的发展都要反馈给我,由我进行整合和发布。("EMACS was distributed on a basis of communal sharing, which means all improvements must be given back to me to be incorporated and distributed.") ”最初的Emacs同TECO一样只能运行在PDP-10系统。Emacs虽然是在TECO的基础上发展起来的,不过它已经足以被认为是一个新的文本编辑器了。很快,Emacs就成为ITS上的标准编辑程序,接着由Michael McMahon移植到Tenex和TOPS-20系统上。
收起全文
精华内容
参与话题
  • emacs入门

    千人学习 2018-10-22 21:38:15
    emacs和vim一样是受欢迎的编辑器之一。目前国内用vim的用户较多,vim有编辑器之神的号称,而emacs被称为神的编辑器,开个玩笑,哈哈,希望通过这个教程可以让大家喜欢上emacs
  • Emacs,最强编辑器,没有之一

    万次阅读 多人点赞 2019-12-30 19:35:29
    小编知道,此标题一出,肯定会遭受广大群众“诟病”,说不好还会被其他编辑器的粉丝暗地里“干掉”。 比如,Vim,Sublime,Nano编辑器的粉丝可能就会来“踢馆”,VS或Eclipse的粉丝也兴许会“群起而攻”,但是小...

     

    小编知道,此标题一出,肯定会遭受广大群众“诟病”,说不好还会被其他编辑器的粉丝暗地里“干掉”。

    比如,Vim,Sublime,Nano编辑器的粉丝可能就会来“踢馆”,VS或Eclipse的粉丝也兴许会“群起而攻”,但是小编只是表达一下自己的感受,为了效果也只能夸大一下了。
    所以请拍砖的时候轻一点,鸡蛋少扔几个。如果扔的鸡蛋多也请多扔几个番茄过来,再来几根葱,这样我可以做番茄炒蛋,谢谢。

    有种张无忌在光明顶被6大门派“围剿”的架势...

    对于很多人来说,使用Vim和Emacs,不仅是提升“逼格”的方式,更是上升到“信仰”的层面,夸张吧。当然这和宗教信仰不一样,只是一种可爱的“偏执”而已。

    请参看我的 Linux探索之旅 | 第五部分第一课:Vim岂是池中物,宝剑锋从磨砺出

    不过,Emacs实在能做很多事,不要认为它只是一个文本编辑器,它可以说是一个整合环境,或可称它为“集成开发环境”,它还可以做以下事情:

    • 上网,浏览网页
    • 看视频
    • 收发邮件
    • 调试程序,结合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等
    • 玩游戏
    • 计算器
    • 记日记
    • 管理日程,Task,ToDo,约会等
    • 个人信息管理
    • 目录管理
    • 文件比较
    • 阅读info和man文档
    • 等等

    当然了,这里主要将Emacs作为文本编辑器来介绍。
    如果你要做特定开发,那还是用业界知名的IDE(集成开发环境)更加有效率。
    例如开发Android应用,那必须得上Android Studio(你不要跟我说你还在用Google已经不发布支持更新的Eclipse);开发iOS应用,必须得上Xcode。
    如果你用Emacs来开发这些应用,那效率太低了。

    小编以前在Linux下编写代码是使用Vim编辑器的,也极为强大。但是自从2014年接触到Emacs之后,就爱上了Emacs(fall in love with Emacs),Vim虽然有时还会用到(目前的公司的开发组大家基本都是用Vim,我也没办法只好用Vim,以方便和大家交流、演示),但其实我还是比较喜欢Emacs。

    一开始我不知道为什么Emacs如此优美又强大,直到后来阅读了《黑客与画家》这部经典著作(硅谷创业教父 Paul Graham 保罗•格雷厄姆所写,其实也就是他的一些日志汇编而成),里面讲述了Lisp语言的强大和优美,而Emacs就是用Lisp语言编写的,怪不得。

    闲扯一下为什么Lisp语言如此强大,虽然这门语言很老了(1958年被发明),在2015年6月的TIOBE编程语言排行榜也只有第31位,但是:

    摘录自 阮一峰 翻译的《黑客与画家》一书,推荐大家一读


    如果我们把流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。

    Python模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能,也一起模仿了。至于Ruby,如果回到1975年,你声称它是一种Lisp方言,没有人会反对。

    编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平。

    1958年,John McCarthy设计了Lisp语言。我认为,当前最新潮的编程语言,只是实现了他在1958年的设想而已。

    这怎么可能呢?计算机技术的发展,不是日新月异吗?

    1958年的技术,怎么可能超过今天的水平呢? 让我告诉你原因。 这是因为John McCarthy本来没打算把Lisp设计成编程语言,至少不是我们现在意义上的编程语言。他的原意只是想做一种理论演算,用更简洁的方式定义图灵机。

    所以,为什么上个世纪50年代的编程语言,到现在还没有过时?简单说,因为这种语言本质上不是一种技术,而是数学。数学是不会过时的。

    你不应该把Lisp语言与50年代的硬件联系在一起,而是应该把它与快速排序(Quicksort)算法进行类比。这种算法是1960年提出的,至今仍然是最快的通用排序方法。

    直到今天,最高级的主流语言,也只是刚刚接近Lisp的水平。虽然已经很接近了,但还是没有Lisp那样强大。

    Lisp语言诞生的时候,就包含了9种新思想。其中一些我们今天已经习以为常,另一些则刚刚在其他高级语言中出现,至今还有2种是Lisp独有的。

    按照被大众接受的程度,这9种思想依次是:

    1. 条件结构(即"if-then-else"结构)。现在大家都觉得这是理所当然的,但是Fortran I就没有这个结构,它只有基于底层机器指令的goto结构。

    2. 函数也是一种数据类型。在Lisp语言中,函数与整数或字符串一样,也属于数据类型的一种。它有自己的字面表示形式(literal representation),能够储存在变量中,也能当作参数传递。一种数据类型应该有的功能,它都有。

    3. 递归。Lisp是第一种支持递归函数的高级语言。

    4. 变量的动态类型。在Lisp语言中,所有变量实际上都是指针,所指向的值有类型之分,而变量本身没有。复制变量就相当于复制指针,而不是复制它们指向的数据。

    5. 垃圾回收机制

    6. 程序由表达式(expression)组成。Lisp程序是一些表达式区块的集合,每个表达式都返回一个值。这与Fortran和大多数后来的语言都截然不同,它们的程序由表达式和语句(statement)组成。

    7. 符号(symbol)类型。符号实际上是一种指针,指向储存在哈希表中的字符串。所以,比较两个符号是否相等,只要看它们的指针是否一样就行了,不用逐个字符地比较。

    8. 代码使用符号和常量组成的树形表示法(notation)

    9. 无论什么时候,整个语言都是可用的。Lisp并不真正区分读取期、编译期和运行期。你可以在读取期编译或运行代码;也可以在编译期读取或运行代码;还可以在运行期读取或者编译代码。


    怎么样,是不是很有兴趣了解一下如此强大的Lisp语言开发出来的Emacs是如何优美呢?

    当然此文不可能带大家领略所有Emacs的优美之处。说实话,Emacs肯定存在不足之处: 小编还是很“识相”的,不敢“冒天下之大不韪”。

    更多Emacs的好处只有大家使用了才能慢慢领略。

    Emacs简介


    Emacs是一种强大的文本编辑器,在程序员和其他以技术工作为主的计算机用户中广受欢迎。

    EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman(理查德·斯托曼)于1975年在MIT(麻省理工学院)协同Guy Steele共同完成。

    Richard Stallman可是开源运动之父啊,我的Linux探索之旅 | 开宗明义+第一部分第一课:什么是Linux?这一课专门介绍过他。

    这位可爱的长胡子大叔抵制Apple,抵制Facebook,抵制Amazon,抵制不少公司和机构。他也是自由软件基金会(Free Software Foundation,简称FSF)的主席,而自由软件基金会主导了包括GNU在内的很多开源工程。

    GNU工程使得世界各地的程序员可以为Linux操作系统开发周边软件等,才有了Linux的今天。不然Linus Tovarlds(Linux之父)基本上光是写了一个Linux内核,哪够啊。所以今天的Linux最正确的称谓应该是GNU/Linux 。

    自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种分别是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。它们都使用了Emacs Lisp这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。

    你可以使用Lisp语言改写Emacs的功能组件,而且可以更改配置,完全自定义Emacs,所以Emacs是充满无限可能的编辑器。

    国际化


    Emacs支持对多种文字的文本编辑,包括UTF-8在内的诸多编码系统,加上对多种字符集、文稿、书写系统,以及不同文化的书写习惯都提供了支持,使得世界上大多数语言的使用者都能通过Emacs进行文本处理。

    Emacs还能通过调用诸如ispell这样的外部程序,实现多种语言的拼写检查。

    跨平台性


    Emacs是目前世界上最具可移植性的重要软件之一,能够在当前大多数操作系统上运行,包括类Unix系统(GNU/Linux、各种BSD、Solaris、AIX、IRIX、Mac OS X等等)、MS-DOS、Microsoft Windows以及OpenVMS等,还有移动Android平台以及iOS。

    缓冲区的概念


    初学Emacs需要理解什么是 缓冲区

    Emacs里的一切操作都发生在编辑缓冲区(buffer)里,它通常是某个文件的工作副本。如果你正在编辑的编辑缓冲区里包含着某个文件的一个副本,那么当你保存自己所做的改动时,Emacs把编辑缓冲区的内容复制到文件中。

    除了工作在文件副本上的缓冲区外,还有一些做临时工作的缓冲区,它就像一张草稿纸,当然也可以随时使用write-file命令("C-x C-w")或save-buffer命令(“C-x C-s”)保存这类临时工作缓冲区的内容。

    小编一开始也是对缓冲区的概念一知半解,不要怕,用着用着马上就理解了。

    可以参考一些高手的Emacs教程和“练级”系列


    http://www.cnblogs.com/robertzml/archive/2009/09/10/1564108.html
    http://blog.csdn.net/redguardtoo/article/details/7222501/
    http://blog.sina.com.cn/s/blog_6df127760101ll7a.html
    http://arch.pconline.com.cn//pcedu/soft/gj/photo/0609/865628_1.html

    Emacs的官网和Wiki


    http://www.gnu.org/software/emacs/

    目前最新版是Emacs 25.1

    Emacs的中文WiKi
    http://www.emacswiki.org/emacs?interface=zh-cn

    轻松一下,关于Emacs的一则玩笑


    《Emacs 的日子是这个样子的》:

    1. 听说有 Emacs 这个东西。试了一下,感觉就像记事本一样。没什么学习曲线。就是……咋也找不到退出的办法……
    2. 开始会一些 Emacs 了,开始学习各种 mode,按键绑定,配置方法,开始熟悉 Emacs……
    3. 比较熟悉 Emacs了,基本使用 Emacs干活,每天“活在” Emacs 里面……
    4. 非常熟悉自己“常用”的 Emacs,可以教别人 Emacs,大量泡 Emacs社区,大量下载、使用和跟踪别人的扩展,已经离不了 Emacs……
    5. 渐渐不满 Emacs,渐渐熟悉 Lisp 语言,开始改写“自己”的Emacs,在这期间,又开始四处碰壁,工作效率总是被一个失败的修改所影响……
    6. 经常修改 Emacs,自己手中的 Emacs基本上每周都和上一周有那么一点不太一样…… 就是,改的太多了,经常在某天整理代码的时候突然发现……原来还有这么个易用的功能…… 忘记好久了……
    7. …… ……

    Emacs三个平台的安装与配置


    1. Windows下安装Emacs

    请到以下链接下载Windows版的Emacs:

    https://ftp.gnu.org/gnu/emacs/windows/

    请大家下载列表中最新版本的zip文件,比如目前最新版的是2016年9月18日发布的25.1版:

    emacs-25.1-x86_64-w64-mingw32.zip

    下载后,用Winrar或7-zip等解压,会出来一个文件夹 emacs-25.1-x86_64-w64-mingw32

    内含四个子文件夹:

    • bin
    • libexec
    • share
    • var

    打开bin文件夹,运行其中的 emacs.exe 文件即可开启Emacs,不需要安装:

    你可以把emacs.exe这个文件锁定到任务栏,就很方便了,按一下图标就启动了。

    2. Linux下安装Emacs


    Debian一族(包括Ubuntu)下安装Emacs:

    sudo apt-get install emacs
    

    Redhat一族(包括Fedora)下安装Emacs:

    sudo yum install emacs
    

    其他的可以搜索如何安装,或者下载Emacs的源代码来编译安装。

    下面演示Linux如何下载Emacs的代码来编译安装(“逼格”最高的方式):

    • 首先去

    ftp://ftp.gnu.org/pub/gnu/emacs

    • 上面有Emacs的几乎所有版本的源代码包,下载最新版的(用老版的也可以),如: emacs-25.1.tar.gz

    • 解压 emacs-25.1.tar.gz 并编译,安装,在终端(Terminal)中依次运行以下命令(如果是其他版本,则将如下命令中的25.1替换为相应版本即可):

    tar -zxvf emacs-25.1.tar.gz   #(解压文件)
    cd emacs-25.1                 #(进入目录)
    ./configure                   #(配置)
    make                          #(编译)
    sudo make install             #(安装,会提示输入你的用户密码)
    
    • 安装完之后要启动Emacs很简单,开一个终端(Terminal),输入emacs,回车,就可以了。

    不过小编嫌这样太麻烦,可以用更简单的方式来打开Emacs,我这里用一个键就可以了(演示环境是Fedora,不过其他系统如Ubuntu类似):

    • 打开Fedora的“设置” (肯定知道设置在哪里吧)

    • 选择“键盘”

    • 选择列表中的“自定义快捷方式”,然后点击加号“+”,用于添加新的快捷方式

    • 选择快捷方式的按键,小编这里选的是F2这个键,然后填写命令,就是“emacs”,再填写快捷方式的名称,这个随便填,我填的是“Emacs”,确定。

    按F2键试试,是不是就启动Emacs啦?这酸爽,不言而喻!

    3. Mac OS下安装Emacs


    Mac下安装Emacs,网上有不少文章,有用Git克隆下来Emacs的源码然后编译安装的; 也有用一些包管理软件来安装的,但是小编推荐一个更方便的方式,和Mac下安装QQ,迅雷那样方便:

    http://emacsformacosx.com/

    上这个网,然后下载那个dmg包,Mac用户肯定懂的,就是Mac下安装软件的最常用方式。然后就没有然后了... 如果这样你都不会装Emacs,那真心没必要用Emacs了。

    自动补全插件


    安装完Emacs之后,还需要安装一个自动补全(可以自动补全关键字,文本等)的扩展,非常强大,名叫company-mode,官网:

    http://company-mode.github.io/

    幸好,这个扩展并不需要我们按照传统的方式从官网下载、安装到Emacs里面,因为Emacs里有个安装扩展的列表,有点类似 Debian系列的 apt-get 和 Redhat系列的yum 这样的包管理工具,所以我们只需要按步骤安装:

    • 按下 M-x 来调出命令输入 (在Windows下就是Alt + x 键)

    • 输入 list-packages,回车

    • 在出现的列表里,点击 company

    • 在右边出现的新缓冲区里点击 Install(英语“安装”的意思)

    • 点击 Yes/是

    开始感受自动补全的乐趣吧!

    用此方法(list-packages命令)也可以安装很多其他的Emacs的插件(扩展),大家也看到列表里有很多插件了吧,所以说Emacs都有点像一个小型的操作系统。

    小编的Emacs配置文件


    大家可以从网上下载一些大牛的Emacs配置文件,看一下他们的Emacs快捷键(除了基本的一些通用快捷键以外,用户可以自定义很多快捷键,可以定义在 .emacs 文件中)。

    如果你“不幸”选择使用小编的Emacs配置文件,那么承蒙看得起(当然,你可以把我的配置文件作为参考,取其精华,去其糟粕(不过估计精华有点少,糟粕比较多...),“调配”出属于你自己的Emacs配置):

    下面讲的是在Linux或Mac OS下的配置操作:

    请用小编的 .emacs 文件替换你的家目录的.emacs文件 (安装完Emacs,你的家目录,也就是 ~ 下就会有一个 .emacs 文件(默认是隐藏文件))。

    把压缩文件里的其他三个模块文件放置到 .emacs.d 这个文件夹下的modules文件夹 (.emacs.d 文件夹是安装完Emacs就会有的,也在家目录里,不过modules文件夹需要你自己创建):

    cd ~/.emacs.d/
    mkdir modules
    cp php-mode.el psvn.el saved-places modules/   #(或者手动直接把三个模块文件复制到modules文件夹里)
    

    我的Emacs配置和说明在Github上


    https://github.com/frogoscar/emacs

    其中配置文件的内容是:

    https://github.com/frogoscar/emacs/blob/master/.emacs

    三个模块:

    https://github.com/frogoscar/emacs/tree/master/modules

    常用快捷方式


    Emacs的快捷键都是绑定于Ctrl和Alt(或称Meta, 在Mac下就是Cmd键)上的,例如C-x就是Ctrl+x,M-x就是Alt+x (在Mac下就是Cmd键)。当然所有的按键都可以自定义。

    所以下面我在讲述快捷键的组合表示方式时:

    • C 代表Ctrl键

    • M 代表Alt键(在苹果的Mac OS系统下是Cmd键)

    • C-x C-c 代表着“先按C-x,再按C-c”

    • C-x k 代表着“先按C-x,松开手,再按k”

    小编平时最常用的是这些快捷键组合


    M-s : 新建一个buffer(缓冲区)
    
    C-x O : 注意是大写的O,不是零,所以需要按住shift键再按o键。用于在缓冲区之间切换
    
    C-g : 取消当前操作
    
    C-x u : 回到上一步,相当于Undo
    
    C-x 3 : 把缓冲区(buffer)分为左右两个,新的一个缓冲区是复制当前的缓冲区 (可以执行多次,来分割出很多小窗口)
    
    C-x 2 : 把缓冲区(buffer)分为上下两个,新的一个缓冲区是复制当前的缓冲区 (可以执行多次,来分割出很多小窗口)
    
    M-w : 选中文字的情况是复制文字,而如果没有选中文字则是复制当前的一行
    
    C-w : 选中文字的情况是剪切文字,而如果没有选中文字则是剪切当前的一行
    
    M-x : 调出命令输入,可以在后面接命令,比如man,svn-status,等
    
    C-y : 黏贴
    
    C-x C-s : 保存文本
    
    C-x C-f : 打开文件,如果文件不存在,则新建文件
    
    C-x C-v : 打开一个文件,取代当前缓冲区
    
    C-x k : 关闭当前缓冲区(buffer)
    
    C-s : 向前搜索
    
    C-r : 向后搜索
    
    C-x h : 全选
    
    C-v : 向下翻页
    
    M-v : 向上翻页
    
    C-f : 前进一个字符
    
    C-b : 后退一个字符
    
    M-f : 前进一个单词
    
    M-b : 后退一个单词
    
    C-@ : 标记开始区域
    
    C-a : 移到行首
    
    C-e : 移到行尾
    
    M-a : 移到句首
    
    M-e : 移到句尾
    
    M-< : 缓冲区头部
    
    M-> : 缓冲区尾部
    
    M-g M-g,再输入数字 : 跳转到文本的第几行
    
    C-x 0 : 关闭当前缓冲区
    
    C-x C-c : 退出Emacs
    

    暂时只能记起来这么多啦,还有很多快捷键就要你自己去发掘啦!小编平时也不会所有的快捷键都用上,上述的快捷键组合是最常用的。

    注意: 千万不要死记这些快捷键组合,随着你使用Emacs,很快就能记住的,相信我!

    Emacs还有一个很大的好处就是几乎所有的快捷键按键都在键盘的左下角,用左手就能单独完成大部分操作,而右手则可以玩游戏(哦,不对,是操作鼠标),提高效率。

    或者说,你用好了Emacs的快捷键组合,编辑代码时甚至不需要鼠标,两个手在键盘上就够了!

    还有一个平时常用的功能就是查询函数,可以方便查询已定义的函数:

    • 按下 M-x 来调出命令输入

    • 输入 man ,也就是Linux或Unix系统的man命令,是manuall的缩写,也就是"手册"的意思

    • 然后输入你要查询的函数名,回车

    尝试一下Emacs吧,真的是“神器”!
    谁用谁知道,用过都说好~

    原文:https://www.jianshu.com/p/732157b02ecc

    展开全文
  • Emacs(一)——初识 Emacs

    千次阅读 2017-07-17 17:01:26
    GNU Emacs 是目前 Unix/Linux 世界里最常见的文本编辑器,与VI(Unix/Linux 操作系统的标准编辑器)。

    Emacs(GNU Emacs) 简介

      GNU Emacs 是目前 Unix/Linux 世界里最常见的文本编辑器,与VI(Unix/Linux 操作系统的标准编辑器)。

    理解文件与编辑缓冲区

      编辑器并不是对某个文件本身进行编辑。事实上,他们会先把文件的内容放到一个临时性的缓冲区中,然后再对缓冲区中的东西进行编辑。在通知编辑器保存缓冲区中的内容之前,存放在磁盘上的原始文件是不会发生任何改变的。虽然缓冲区看起来和文件很相似,但它只是一个临时的工作区域,里面保存的可能只是原始文件的一份副本。Emacs 在打开一个文件的时候,是将这个文件复制一份到缓冲区,然后对缓冲区中的内容进行编辑操作,当关闭 Emacs 时,若选择不保存文件,这样就不会影响原始文件。Emacs 一般情况下,打开文件的缓冲区的名称与原始文件一样,且一一对应;但是,有些缓冲区没有与他们关联的文件, 比如 scratch 就只是一个临时的辅助性缓冲区,它的作用有点像草稿薄,而帮助功能会把帮助信息显示在一个名为 help 的缓冲区里,它也是与任何文件都没有关联的缓冲区。

    编辑模式

       一个编辑缓冲区每次只能处于一种主模式,退出一种主模式的办法是进入另一个主模式。

    Emacs编辑器的主模式(major mode)

    模式 英文名称 功能
    基本模式 fundamental mode 默认模式,无特殊行为
    文本模式 text mode 书写文字材料
    邮件模式 mail mode 书写电子邮件消息
    RMAIL 模式 RMAIL mode 阅读和组织电子邮件
    只读模式 view mode 查看文件,但不进行编辑
    shell 模式 shell mode 在 Emacs 里运行一个 UNIX shell
    FTP 模式 ange-ftp mode 下载或者查看远程系统上的文件
    Telnet 模式 telnet mode 登录到远程系统
    大纲系统 outline mode 书写大纲
    缩进文本模式 indented text mode 自动缩进文本
    图形模式 picture mode 绘制简单的线条图形
    nroff 模式 nroff mode 按 nroff 的要求对文件进行排版
    TEX 模式 TEX mode 按 TEX 的要求对文件进行排版
    LATEX 模式 LATEX mode 按 LATEX 的要求对文件进行排版
    C 模式 C mode 书写 C 语言程序
    C++ 模式 C++ mode 书写 C++ 程序
    FORTRAN 模式 FORTRAN mode 书写 FORTRAN 程序
    Emacs LISP 模式 Emacs LISP mode 书写 Emacs LISP 程序
    LISP 模式 LISP mode 书写 LISP 程序
    LISP 互动模式 LISP interaction mode 书写和求值 LISP 表达式

    Emacs编辑器的副模式(minor mode)

    模式 英文名称 功能
    自动换行模式 auto-fill mode 开启字换行(word wrap)功能
    改写模式 overwrite mode 打字时替换而不是插入字符
    自动保存模式 auto-save mode 把文件按一定周期自动保存到一个特殊的临时文件里
    行号模式 line number mode 在状态行上显示当前文本行的编号
    临时标记模式 transient mark mode 对被选取的文本区做高亮反显
    缩略语词模式 abbrev mode 允许使用单词的简写形式
    大纲模式 outline mode 书写大纲
    VC 模式 VC mode 在 Emacs 下使用各种版本控制系统

    Emacs 的编辑面板

      在屏幕的底部,Emacs 会给出一大堆关于当前工作情况的信息。这一行叫做状态行 。状态行靠左边的位置可能有两个星号(**)。这两个尾号的作用是表明正在编辑的文件在上次存盘之后又被修改过。如果没有修改,那么不会出现两个星号。接下来,Emacs 显示“Emacs:”和正在编辑的缓冲区的名字(filename)。接下来的圆括号里给出当前所处的编辑模式。在它的后面,Emacs 给出光标在文件的位置。屏幕的最底部,状态行的下面是辅助输入区(minibuffer),一般用于输入名令或者显示命令的执行结果。

    退出 Emacs

      如果想结束一次 Emacs 会话,可以按下“C-x C-c”组合键来退出 Emacs;如果对文件进行了编辑却没有保存,Emacs 会询问你是否想要保存那些修改。C-x 表示按下 Control 键,按住不放,同时按下 x 键;ESC n 表示按下 ESC 键,然后放开,再按下 n 键。而 C 表示 Control 键,M 在美式键盘中表示 Alt 键,有些键盘没有 Alt 键则会绑定到 Esc 键。若有什么困惑,可以进入 Emacs 的帮助功能,进入帮助 功能的按键是 C-h,按下 C-h t 时将启动 Emacs 教程。

    与文件操作有关的命令

    键盘操作 命令名称 动作
    C-x C-f find file 查找文件并在一个新缓冲区中打开它
    C-X C-v find alternate file 读入另一个文件替换掉用 C-x C-f 读入的文件
    C-x i insert file 把文件插入到光标的当前位置
    C-x C-s save buffer 保存文件
    C-x C-w write file 把缓冲区内容写入一个文件
    C-x C-c save buffers kill Emacs 退出Emacs
    C-h help command 进入 Emacs 的在线帮助系统
    C-h f describe function 给出某个给定命令的在线帮助信息
    C-h k describe key 给出某个给定击键序列的在线帮助信息
    C-h t help with tutorial 启动 Emacs 教程
    C-h i info goto Emacs command node 启动 Info 文档阅读器
    展开全文
  • 简易Emacs配置

    万次阅读 2018-01-23 14:30:56
    简易Emacs配置 之前看到一个笑话,大概是,某人一直跟别人说emacs怎么怎么好,自己如何如何使用emacs,后来有一天,别人看到他没有使用emacs了,问他为什么?他说,因为我一不小心把emacs的配置弄丢了,还没有备份...

    简易Emacs配置

    之前看到一个笑话,大概是,某人一直跟别人说emacs怎么怎么好,自己如何如何使用emacs,后来有一天,别人看到他没有使用emacs了,问他为什么?他说,因为我一不小心把emacs的配置弄丢了,还没有备份。

    其实我用着emacs觉得还挺顺手的,不想因为丢了配置文件而放弃emacs,就把我自己使用的emacs配置写成博客,放在网上,以供自己日后参考。

    Emacs版本

    只用官网最新的版本。配置好window的启动项,默认使用自己的工作空间作为Emacs运行环境。

    配置文件位置

    我一般会使用到四台不同电脑办公或者学习(两台windows,一台Linux,一台双系统),所以配置文件的存放和同步是一个大问题。为了避免卡在这一步,我都使用默认的路径和配置格式。统一使用.emacs文件作为配置文件,windows的配置文件放在c盘根目录,linux的放在home目录,有更新的配置,就逐机逐文件手动更新。虽然繁琐,但是因为我的配置文件内容不多,基本上是一次性的配置工作,倒也还好。网上有很多先进的自动化更新方式,都很好,但是对于我来说,一个快速的起步更为重要。

    配置文件内容

    目前我的配置都是添加于c盘或者home目录的.emacs中

    主题配色

    在Vim上折腾够了,发现自己对于主题配色之类的不敏感,使用系统默认提供的就可以了。我使用黑色的,和Sublime保持一致。

    (load-theme 'wombat t)
    

    字符编码

    由于操作系统的语言选项不同,我统一使用utf8,防止乱码。

    (prefer-coding-system 'utf-8)
    (set-default-coding-systems 'utf-8)
    (set-terminal-coding-system 'utf-8)
    (set-keyboard-coding-system 'utf-8)
    

    配置MELPA

    先不管这具体内容,总之,配置好了之后,就可以一键安装软件了

    (require 'package)
    (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
    (package-initialize)
    

    配置Evil

    大多数人应该需要这一步,我是从VIM迁移到Emacs的,而且我十分喜欢vim的快捷键,所以就使用Evil,来在emacs中使用vim的快捷键。(VirtualStudio中可以使用Vsvim)
    更详细的内容,请参考 emacswiki:evil

    简单来说,配置步骤如下:

    1. 在配置好melpa后,输入下面的命令进行安装:
        M-x package-refresh-contents
        M-x package-install RET evil
    1. 安装完之后,在.emacs中加入
        (require 'evil)
        (evil-mode 1)

    重启Emacs之后,进入Normal模式,输入i进入插入模式。使用Ctrl+Z可以在Vim和Eamcs模式切换,注意窗口下面状态栏的的变化。

    字体

    对于强迫症的我来说,我差点就因为表格中英文字体不能对齐而放弃Emacs,后来查到了cnfonts这个中文字体配置工具,相当不错。详情见GitHub:cnfonts

    简单的说,配置步骤如下:

    1. 先配置melpa, 再输入下面的命令进行安装:
        M-x package-install RET cnfonts RET
    1. 在.emacs中加入
        (require 'cnfonts)
        ;; 让 cnfonts 随着 Emacs 自动生效。
        ;; (cnfonts-enable)
        ;; 让 spacemacs mode-line 中的 Unicode 图标正确显示。
        ;; (cnfonts-set-spacemacs-fallback-fonts)
    1. 重启Emacs,输入以下命令进行设置:
    命令 功能
    cnfonts-edit-profile 调整字体设置
    cnfonts-increase-fontsize 增大字号
    cnfonts-decrease-fontsize 减小字号

    中文我使用文泉驿微米等宽,在文泉驿官网即可下载到,依次配置,英文,中文,对齐即可。

    org配置

    其实我使用Emacs,只用org部分,写代码,我还是使用IDE,看代码,我还是使用Sublime。

    • TODO的关键字
        (setq org-todo-keywords
              '((sequence "TODO" "|" "DONE" "CANCEL")))
    
        (setq org-todo-keywords
              '((sequence "TODO(t)"  "|" "DONE(d!)" "CANCEL(c!)")))
    • org的快捷键
        (global-set-key "\C-cl" 'org-store-link)
        (global-set-key "\C-cc" 'org-capture)
        (global-set-key "\C-ca" 'org-agenda)
        (global-set-key "\C-cb" 'org-iswitchb)
    • 设置自动加载org文件到安排中,以及自动加载org
        ;; read agend data from which file
        (setq org-agenda-files (list "c:/notes_jg/org/"
                             ))
        (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
    • 换行
        (add-hook 'org-mode-hook
                  (lambda()
                    (setq truncate-lines nil)))
    • 支持导出markdown
        (eval-after-load "org"
            '(require 'ox-md nil t))

    快捷键

    按键 功能
    S+M+RET 创建新条目
    C+c C+t 修改TODO的状态
    C+k 删除整行
    C+y 粘贴
    C+x 0 关闭当前窗口
    C+x o 切换窗口
    C+c a L 列出日程中的项目
    M+左右 修改TODO层级
    M+上下 移动列表
    C+c C+c 增加tag
    C+c C+c 修改checkbox
    C+c a m 搜索tag
    M+x 输入命令
    S+TAB 折叠展开
    S+left 推进状态
    C+c C+x C+i 开始计时
    C+c C+x C+o 停止计时
    C+c C+x C+s 移动到归档文件
    Ctrl+z 使用vim模式

    M+x下的常用命令

    Update time org-evaluate-time-range
    linum-mode 显示行号
    goto-line 跳转到行号
    展开全文
  • Emacs详细教程

    万次阅读 2013-04-20 13:58:42
    转自:http://www.cnblogs.com/holbrook/archive/2012/02/15/2357335.html 内容提要 1.Emacs是什么 2. Emacs能做什么 3. Emacs的界面 4.基本概念--命令 ...Emacs学习笔记2: 初识Emacs 1.E

    转自:http://www.cnblogs.com/holbrook/archive/2012/02/15/2357335.html

    内容提要

    1.Emacs是什么

    2. Emacs能做什么

    3. Emacs的界面

    4.基本概念--命令

    5. 基本概念--快捷键

    6. 基本概念--模式

    Emacs学习笔记2: 初识Emacs

    1.Emacs是什么

    其实很难给Emacs下一个定义。正统的说法也许是"Emacs即Editor MACroS(宏编辑器),是一种文本编辑器"。

    最初人们认为Emacs是一个编辑器(Editor),与Vim一起并称为两大神器,据说Vim是编辑器之神而Emacs是神之编辑器,又据说世界上的程序员分三种,一种使用Emacs,一种使用vim,剩余的是其它。

    也有人认为Emacs是一个架构在编辑器上的集成环境,除了最基本的编辑功能,还可以完成文件管理、终端模拟、浏览网页、收发邮件、编译程序等工作,以及煮咖啡。

    更有人说Emacs是伪装成编辑器的操作系统,甚至说Emacs是一种信仰

    Emacs最初由RichardStallman在1975年开发,之后产生了众多的衍生版本,而目前使用得最多的两个版本是RichardStallman在1984年开发的GNUEmacs和1991年由JamieZawinski写成的XEmacs。Emacs可谓历史悠久,目前的GNU Emacs的版本是23.4。一部Emacs的历史,等于一部计算机史,一部世界黑客史。本文不想将编辑器大战的战火烧到这里,所以还是就此打住,来看看Emacs能做什么。

    2. Emacs能做什么

    王垠师兄如是说:

    据我所知,Emacs 的能力包括:
    1.    编辑文本
    2.    编辑程序
    3.    作为其它程序的界面
    4.    作为操作系统
    5.    煮咖啡


    Emacs是一个具有超强扩展性,超强定制性的操作平台,它能做什么取决于你对它的定制和扩展。Emacs之所以强大,就来源于其近乎无限的可定制性和可扩展性。

    3. Emacs的界面

    未定制的Emacs如下图所示:

    0 1329317327v33B

    整个窗口在Emacs中叫做frame,图形界面下的Emacs可以打开多个frame。每个frame从上到下分成3部分,分别是缓冲区,状态栏和回显区。

    缓冲区是编辑的主区域,但是在这里操作的还不是真正的文件,而是文件的一个缓存(buffer)。只有执行写入操作时,才会将buffer的内容写入到文件。缓冲区可以分成多个区域,缓冲不同的内容。这些区域在Emacs中成为"窗口"。

    缓冲区之下是状态栏,显示当前的一些状态信息,比如图中从左至右依次为:
    U: 当前的文件编码是UTF-8, 如果是GBK会显示c
    **: 文件状态,**表示未保存,--表示可写,%%表示只读
    Emacs1: 是当前编辑的文件的名称
    All: 表示当前缓冲区已经显示文件的所有内容,否则会显示比如Bot,表示处于文件的末尾处
    L23: 当前光标所在的行数
    fundamental: 当前的模式
    等等,不同发行版的Emacs显示的状态栏内容可能会有所不同。

    最下面是回显区,提示当前正在进行的操作。比如"文件已保存"之类的信息。如果一个命令没有输入完,这里还会显示已经输入的指令,提示用户。

    4.基本概念--命令

    对Emacs所有的操作都是通过调用命令实现的。对于一些常用的命令,会定义快捷键以便快速使用。
    不管是否有快捷键,都可以通过M-x command 的方式执行命令。(M-x即Alt+x,是一种快捷键,后面会有介绍)比如输入回车,相当于:
    M-x newline
    通过M-x执行命令时,可以使用 TAB 补全,使用 M-p 上翻, M-n 下翻。
    Emacs中的取消通常是连按三下ESC:
    ESC ESC ESC (M-x keyboard-escape-quit)
    但是在命令执行过程中,有可能该命令无法使用(比如有些命令是交互式的,需要输入一些参数),所以中止一条命令的执行最好使用C-g (M-x keyboard-quit)。

    5. 基本概念--快捷键

    本质上,快捷键只是一种发送命令的方法!
    Emacs的快捷键通常以组合键的方式定义。如M-x 表示Alt+x。前面的字母M代表修饰符,Emacs定义的修饰符如下:
    C-:Control
    M-: Alt(应该是Meta,在 PC 上,Meta键 通常对应 Alt 键)
    C-M-: 同时按住 Ctrl 和 Alt 
    S-:Shift
    RET:Return
    TAB:Tab
    ESC:Esc,等价于M-。比如,C-M-r ,等价于ESC C-r
    SPC:空格键
    DEL:退格键
    Delete:删除键

    上面提到了ESC C-r。这是一种组合方式,表示先按ESC,再按C-r。Emacs中的很多快捷键定义成组合的方式。如 C-x C-c(M-x save-buffers-kill-emacs)
    此外还有些命令可以传递参数,在Emacs的表示法中用 (#) 代表。如:
    C-u (#) C-f 代表重复#次C-f

    6.基本概念--模式

    Emacs是一种“有模式”的编辑器。如果用过Vim就很容易理解。不过Emacs中的模式分成主要模式(major mode)和次要模式(minor mode)两种。
    主要模式由文件类型决定,每个buffer打开文件时会根据文件类型决定其主要模式。常见的主要模式有:

    fundamental-mode:缺省的 Emacs 模式,拥有最少设置和绑定
    text-mode:编辑文本的基本模式
    c-mode:用于编辑 C 程序源代码
    lisp-interaction-mode:用于编辑和编译 Lisp 代码
    ptex-mode:用于编辑 TeX 文档



    次要模式可以组合到主要模式中,常见的次要模式比如:

    abbrev-mode:用于生成和使用缩写
    auto-fill-mode:用于自动文字回绕、填充较长的行和段落
    line-number-mode:显示当前行号
    overwrite-mode:覆盖模式,代替默认的插入模式



    可以通过命令来指定模式:M-x  mode_name
    对于一个buffer来说,当前的主要模式只能有一种,当指定主要模式时,原来的主要模式会被替换;而当前的次要模式可以有多种。
    如果输入的模式包含在当前模式中,对于主要模式,会清空所有的次要模式;对于次要模式,会关闭这个次要模式。
    模式的变化在状态栏中可以看到。

    Emacs学习笔记(3):帮助系统

    GNU的软件大多有丰富的帮助系统,学习GNU的软件时,首先学习如何使用其帮助系统,往往事半功倍。Emacs的帮助文档很多,并大部分都在C-h开头的组合键中。

    首先是C-h ?,关于帮助系统的“帮助”。改命令会打开一个新的Frame,如下图:

    0 1329368000o9y4

    从该文档中摘录常用的帮助功能如下:

    快捷键 命令 说明
    C-h ?   关于帮助系统的帮助,可以通过SPC和DEL键滚动,通过ESC退出
    C-h t M-x help-with-tutorial 进入 《Emacs 快速指南》
    C-h r M-x info-emacs-manual Emacs使用手册
    C-h i M-x info 《Emacs说明》
    C-h a M-x apropos-command 搜索命令》
    C-h v M-x describe-variable 查看变量说明》
    C-h f M-x describe-function 查看函数说明》
    C-h m M-x describe-mode 查看当前mode的相关文档,包含mode中的命令、快捷键等》
    C-h k KEYS M-x describe-key KEYS 查看快捷键对应的命令及其简要说明,比如C-h k C-x C-c,会告诉你C-x C-c是做什么的》
    C-h c KEYS M-x describe-key-briefly 查看键绑定说明》
    C-h w M-x where-is 查看某个命令对应的快捷键》
    C-h b M-x describe-bindings 查看当前buffer所有的快捷键列表》
    KEYS C-h   查看当前buffer中以某个快捷键序列开头的快捷键列表,比如C-c C-h》
      M-x apropos 查看匹配某个关键词的任何东西,如函数,变量,命令,模式等》


    1. C-h t 《Emacs快速指南》是迅速上手最好的文档。

    2. 使用帮助时,可能会分割出其它Frame,可以通过 C-x 1 关闭。


    Emacs学习笔记(4):基本的编辑功能

    掌握了Emacs的帮助系统,就可以自己随时学习了。但是还是应该有一个主线。尽管Emacs能做的事情很多,但首先Emacs是一个编辑器。所以还是应该从文本编辑的功能开始。完成本节的内容后,可以应付日常的大部分编辑工作。

    内容提要

    • 文件操作
    • 光标定位
    • 输入删除
    • 复制粘贴
    • 撤销重做

     

    1.文件操作

    文件操作的快捷键都集中在C-x"菜单"中:

    快捷键(C-x)     命令(M-x)                                          说明
    C-x C-f              find-file                                              打开文件或录
    C-x C-c             save-buffers-kill-emacs                 保存退出
    C-x C-z             iconify-or-deiconify-frame             挂起(最小化)
    C-x C-f              find-file                                              打开文件、目录
    C-x C-r             find-file-read-only                            以只读模式打开
    C-x i                  insert-file                                           插入文件
    C-x C-s             save-buffer                                       保存
    C-x s                 save-some-buffers                          保存所有未保存的缓冲区
    C-x C-w            write-file                                            另存为文件
    C-x RET r         revert-buffer-with-coding-system  以指定编码读取文件
    C-x RET f         set-buffer-file-coding-system         以指定编码保存文件
    revert-buffer                                      恢复到原始状态
    C-x d                dired                                                   进入目录列表模式
    C-x C-d            list-directory                                      获取文件列表(简洁)

     

    2. 光标定位

    向前    向后    向下    向上        
    翻页                           C-v    M-v
    字符        C-f       C-b     C-n    C-p
    单词        M-f       M-b
    句           M-a      M-e
    行           C-a       C-e
    段落       M-{        M-}
    缓冲区   M-<      M->

    其它:
    M-g M-g     (goto-line)                      跳转到某行
    M-x              (goto-char)                    跳转到字符位置:     
    C-M-l          (reposition-window)    将当前行卷至页面中部
    C-l               (recenter)                       刷新页面,将将当前行卷至页面中部 (使用数字参数指定行)
    M-r M-x      (move-to-window-line) 移动光标至页面中间的行 (使用数字参数指定行)

    3.输入删除

    输入很简单,在缓冲区直接敲键盘就OK了(这个不像Vim)

    删除:

    向前        向后
    字符     C-d         DEL
    单词     M-d        M-DEL 
    行         C-k(删除至行尾)
    整行                   C-S-backspace
    按表达式删除    C-M-k
    区块     C-w
    删除连续空格     M-x delete-horizontal-space

    注1:在PC中,用Backspace代替DEL
    注2:单词、行、区块的删除是kill,相当于剪切,会被放入kill-ring,字符及空格的删除是delete

    4.复制粘贴

    复制前要先选择:C-@开始区块选择,然后移动光标,选中的区域会高亮
    剪切:前面"删除"的部分包括了一些剪切操作,对区块的剪切用C-w
    复制:区块复制用M-w,至于复制1行,复制1个单词之类的功能,自己想办法吧:(
    粘贴: C-y:粘贴kill-ring堆栈的最后一次的内容
    C-y 之后可以继续M-y, 对Kill-ring中的内容依次召回

    5.撤销重做

    撤销: C-/  (每插入20个字符,视为一个 undo 的单位)
    重做: C-/ 后,依次输入C-g C-/ 就可以redo


    Emacs学习笔记(5):更有效率的编辑

    前面学习了Emacs的基本编辑功能。为了让编辑更有效率,还需要了解:

    • 窗口管理
    • 缓冲区管理
    • 搜索和替换
    • 批量处理

     

    窗口管理

    C-x 2           split-window-vertically           水平分割
    C-x 3           split-window-horizontally       竖直分割
    C-x 1           delete-other-window             只保留当前窗格
    C-x 0           delete-window                      关闭当前窗格
    C-x o           other-window                        切换窗格
    C-M-v           scroll-other-window             滚动下一个窗格

    缓冲区管理

    Emacs中,打开新的buffer,不会关闭原有buffer,而是需要手工操作:
    C-x C-b          list-buffers               查看缓冲区列表
    C-x b              switch-to-buffer       切换缓冲区
    C-x k               kill-buffer                关闭缓冲区
    其他:可以参考ibuffer.el扩展

    搜索和替换

    Emacs中的搜索包括增量搜索和一般搜索。增加搜索是每次在前一次搜索的结果基础上继续搜索。在增量搜索时,如果上一次搜索之后进行了其他操作,则需要连续按两次快捷键才能召回关键词。
    可以选中区块后在区块内进行搜索

    增量搜索

    C-s M-x         isearch-forward                向前增量搜索 
    C-r M-x          isearch-backward            向后增量搜索 
    C-M-s M-x     isearch-forward-regexp    正则表达式向前增量搜索 
    C-M-r M-x     isearch-backward-regexp 正则表达式向后增量搜索

    一般搜索

    M-x               search-forward                 向前搜索   
    M-x               search-backward              向后搜索  
    M-x               search-forward-regexp     正则表达式向前搜索  
    M-x               search-backward-regexp 正则表达式向后搜索

    替换

    M-x                replace-string                  替换   
    M-x                replace-regexp                正则表达式替换

    询问替换

    M-% M-x       query-replace              询问替换 
    C-M-% M-x   query-replace-regexp 正则表达式询问替换

    取消搜索

    C-g 取消搜索,光标返回搜索前的位置
    RET结束搜索,光标停留在当前位置。

    批量处理

    批量处理的命令应该有很多,这里列出2个:
    选中区域, M-x untabify:将 TAB 字符转换为空格
    选中区域, M-x indent-region:对齐文本块


    Emacs学习笔记(6):常用命令备忘(打印版)

    博客搬家,加上换办公区,Emacs的学习计划就耽搁了。

    可能是因为年纪大了,记性大不如以前,新学的很多Emacs快捷键/命令都记不住。所以要整理一个常用命令清单(与当初学习Vim一样),并且打印出来贴在电脑边。

    刚开始不可贪多,所以只整理了:
    Key Mapping, Important, Help, File, Cursor,  Cut/Del/Copy/Paste, Buffer, Window, Undo/Redo, Search/Replace几个部分,控制在2页A4纸之内。

    附图如下:

    不知道谁能告诉我,博客园可以上传附件吗?


    macs学习笔记(7):简单的配置

    继续Emacs学习计划。这是“初学者”阶段的最后一篇。完成本节的内容,就可以向“中级计划”进军了 : )

    经过一段时间的使用,已经大体适应了Emacs的快捷键,不过还是要参考命令备忘表

    Emacser通常要对Emacs进行定制,使用起来才会爽。据说Vimer嘲笑Emacser的一个理由就是:

    Emacser如果丢了配置文件就什么都干不了。

    好吧好吧,这些争论和我没什么关系,我只是恰好原来用Vim现在喜欢上了Emacs。还是回到Emacs的简单定制吧。

    1. 配置文件

    Emacs的配置文件在~/.emacs。现在就用Emacs打开这个文件吧,如果没有就创建一个。首先改一下颜色配置,让Emacs看起来更酷一些:

    (set-background-color "black") ;; 使用黑色背景
    (set-foreground-color "white") ;; 使用白色前景
    (set-face-foreground 'region "green")  ;; 区域前景颜色设为绿色
    (set-face-background 'region "blue") ;; 区域背景色设为蓝色


    尽管可以重启Emacs使配置生效,但更快捷的方式是在打开~/.emacs的时候执行命令M-x eval-buffer,就可以使配置文件立即生效。

    2. 安装插件

    Emacs和Vim都有大量的插件,一些经久不衰、广泛使用的插件组合起来,就体现出一种"集体智慧"。

    Emacs的插件一般都是一个以el为后缀名的文件。首先要指定一个插件目录,比如~/.emacs.d/lisps然后在~/.emacs中指定插件目录和要使用的插件:

    (add-to-list 'load-path "~/.emacs.d/lisp/")
    (require 'pluginname')

    还是玩一下颜色设置。前面的方法只是进行了一些简单的颜色设置,但是有热心人写了插件,配置好了很多方案,不仅仅是前景背景色,还包括语法高亮等。从这里下载,解压后将color-theme.el文件和themes文件夹复制到插件目录,然后修改配置文件:

    (add-to-list 'load-path "~/.emacs.d/lisp/")

    (require 'color-theme)

    (color-theme-initialize)

    M-x eval-buffer使配置生效后,可以执行插件提供的命令:M-x color-theme-select RET进入配色方案选择界面。我选择的是Classic

    Screenshot


    选好之后,你可能希望将配色方案设成默认,还是修改配置文件。在配色方案选择界面中选择主题后按d,会出现该配置的提示信息,比如:

    color-theme-classic is an interactive Lisp function in
    `color-theme-library.el'.

    (color-theme-classic)

    Color theme by Frederic Giroud, created 2001-01-18.
    AntiqueWhite on darkslategrey scheme.  Based on Gnome 2, with my favorit
    color foreground-color and fontlock color.

    将类似(color-theme-classic)的内容添加到.emacs中,就可以每次启动Emacs时自动选择配色方案了。

    3. 进阶

    不要迷信自己,不要一开始就尝试自己定制Emacs。一定要参考甚至抄袭大牛们的设置。比如Steve Purcell。学习他们的配置,不仅能让你直接学会“最佳实践”,更能加深你对Emacs的理解。

    最后再回顾一下《Emacs初学者的学习计划》:

    1. 要学习必须有一个计划

    2. 认识Emacs,Emacs不仅仅是一个编辑器

    3. 使用Emacs的帮助系统,随用随学

    4. 掌握了基本的功能,就可以开始用,而且要多用

    5. 其实你可以更快地编辑

    6. 命令太多记不住,可以打印出来随时查阅

    7. 了解如何定制Emacs,并参考大师的配置

    完成这些内容,可以说是对Emacs入门了,接下来可以学习如何用Emacs写代码,GTD,发邮件,浏览网页等等,在实现这些目标的同时提高自己的Emacs水平,最终将Emacs上升到一种信仰。


    展开全文
  • [emacs].emacs

    2020-07-29 14:19:59
    NULL 博文链接:https://chuqq.iteye.com/blog/1333212
  • ubuntu安装最新emacs

    千次阅读 2018-07-03 18:06:43
    $sudo add-apt-repository ppa:ubuntu-elisp/ppa $sudo apt update $sudo apt install emacs-snapshot emacs-snapshot-el $emacs --version #查看emacs版本
  • Emacs快速入门

    2019-01-31 22:28:20
    Emacs快速入门 Ubuntu初安装时,其时是有emacs图形界面和emacs终端界面两个快捷方式的。你只需要用鼠标点击就可以进入相应的模式。 不过如果你真心开始想用emacs,相信会有更便捷的方式,比如在终端输入emacs -nw...
  • emacs 常用用法

    千次阅读 2020-08-20 17:28:21
    参考effective emacs中文版来提升emacs 快捷键 C-\ 关闭输入法 C-h k 再输入一个快捷键 查看这个快捷键绑定了什么函数 C-h w 查看函数绑定了哪些快捷键 通常可以先C-h f查看当前快捷键绑定了哪个函数,再看看这...
  • 一年成为Emacs高手(像神一样使用编辑器)

    万次阅读 多人点赞 2016-09-03 11:10:20
    作者:陈斌(redguardtoo) 版本号:20140329 更新时间: 2014-03-29 Sat 原创时间: 2012-01-31 Tue 版权:本文采用以下协议进行授权,自由转载 - 非商用 - 非衍生 - 保持署名 | Creative Commons BY-NC-ND 3.0,转载请...
  • emacs

    2019-04-26 11:17:55
    emacs操作 多行注释和取消注释: 注释是 M-x comment-region 取消注释是 M-x uncomment-region 检查语法: ispell (检测拼写) 1)安装ispell:(Mac) a. 打开终端,输入 ruby -e “$(curl -fsSL ...
  • windows下Emacs的安装与配置

    万次阅读 热门讨论 2008-09-08 16:27:00
    最近在学习windows下的Emacs,遇到不少问题,比如什么home目录啦,.emacs配置文件啦,.el文件啦,通过几天的反复琢磨,终于有所感悟。我想不仅是我,很多人都遇到过这些问题,现在就总结如下,以供有需要的朋友参考...
  • Emacs User 's Guide中文版电子书

    热门讨论 2020-07-30 23:30:59
    GNU Emacs 是什麽 GNU EMACS 的特质 Emacs 的线上辅助说明 Emacs 的基本知识 Emacs 的自学教材 Ctrl-h 的用法 Emacs 的 info 使用说明 Emacs 的整合环境 如何在 Emacs 中执行 Shell 的指令 有关目录的编辑...
  • 为什么会想要用emacs-jupyter 我平时使用stata来做统计,用python来做数据。在ein当中使用stata不能在emacs里面显示图片,只在浏览器当中显示图片。所以我想要尝试一下emacs——jupyter 怎样安装 原网址 emacs-...
  • 制定Golang的Emacs配置

    千次阅读 2018-08-06 16:20:00
    最近在学习Emacs,跟vim差别真的很大。作为Emacs的初学者,还是能够感觉到”神之编辑器和编辑器之神的区别”的。 配置环境是参考其他人的,然后做了一些个人开发习惯的修改;作为Emacs小白,自己对emacs配置文件的...
  • 原文地址:https://www.lujun9972.win/blog/2018/04/23/使用...如果一次性在电脑上编译多个版本的Emacs不仅麻烦,而且管理起来还很麻烦,尤其是当需要为不同版本的Emacs定义不同配置文件的时候。 不过还好,我们有...
  • Emacs-060-树莓派安装Emacs 25.3.1

    千次阅读 2018-01-16 00:13:37
    Emacs-060-树莓派安装Emacs 25.3.1 在一台Linux PC机上安装了Emacs并且远程ssh登录使用,感觉用着还比较顺手。寻思我自己的树莓派上应该也可以这样操作,于是把自己的Emacs配置全都传到了树莓派。然而使用的时候...
  • emacs 下载安装插件

    千次阅读 2019-09-10 02:04:54
    emacs 24之后的版本内置了 elpa 包管理功能,下面我来介绍如何使用 elpa 的包管理功能来方便的安装插件。 有一点得提前说明:我使用的完全是 陈斌的配置,所以以下也是在其原有结构上实现的。 文章目录寻找并下载...
  • Emacs Q&A

    2016-07-17 16:56:11
    Q: Windows下Emacs配置文件在哪里? A: 设置环境变量HOME变量,比如:HOME=”C:\Users\username\”,然后在C:\Users\username\下创建文件”.emacs”,重启emacs。Q: 文件名末尾带’~’的文件是什么文件? A: 是...
  • Emacs初学者+Emacs初学者必知必会

    千次阅读 2012-11-29 22:44:49
    我周围的好多人在我的”鼓吹”下, 也对Emacs感兴趣起来, 可是不过好久, 就放弃了, 究其原因, 我想是他们对Emacs的认识不够, 或者是学习方法不正确. 在这里, 我想说一下Emacs初学者应该注意的一些问题. Emacs是什
1 2 3 4 5 ... 20
收藏数 60,859
精华内容 24,343
关键字:

emacs