内容简介
1、Emacs简介
2、Emacs三个平台的安装与配置
3、自动补全插件
4、小编的Emacs配置文件
5、常用快捷方式
6、和版本控制系统的配合(以SVN为例)
【程序员小助手】系列
本组文稿将时常发布,作者会向各位介绍近些年(时间不长)在编程学习及工作实践中个人认为十分出色的软件工具,期待能实现优质资源的共享,帮助各位提升编程与事务处理的效能。
Emacs,最强编辑器,没有之一
小编清楚,这个标题公布之后,必定会引来民众的批评,甚至可能被其他平台的支持者暗中排挤。
Vim的用户或许会来挑战,VS或的支持者也可能集体发难,不过我仅仅是陈述个人看法,请批评时手下留情,鸡蛋不要扔太多,要是鸡蛋扔得多了,也请多投几个番茄过来,这样我就能做番茄炒蛋了,谢谢。
对许多人而言,运用Vim和Emacs,不只是彰显独特品味的途径,更是抵达某种执着境界的体现,这或许显得过于夸大。当然,这同宗教信仰截然不同,仅是一种值得欣赏的固执态度罢了。
Emacs功能相当丰富,不应仅将其视为文本处理工具,它实质上是一个综合性的工作平台,也可以称之为“一体化编程场所”,此外它还能实现以下功能:
上网,浏览网页
看视频
收发邮件
修改程序,借助GDB,等。兼容C/C++,Perl,Lisp等语言
玩游戏
计算器
记日记
管理日程,Task,ToDo,约会等
个人信息管理
目录管理
文件比较
阅读info和man文档
等等
小编过去在Linux系统上编程时主要借助Vim这个工具,它功能相当完备,但自2014年初次尝试Emacs以来,便对其产生了浓厚兴趣,从此便倾心于Emacs,尽管Vim偶尔还会派上用场,但绝大多数时间进行编码工作都选择使用Emacs。
起初不明白 Emacs 为何如此出色且功能强大,直到后来读了《黑客与画家》这本书,那是硅谷创业导师保罗•格雷厄姆的作品,实际上是他的一些随笔整理而成的,书中阐述了 Lisp 语言的卓越与精妙,而 Emacs 正是用 Lisp 语言开发的,这就不足为奇了。
随意聊聊为何Lisp语言功能出众,尽管它诞生已久,即便在2015年6月的TIOBE编程语言排行榜上仅位列第31位,然而:
摘录自 阮一峰 翻译的《黑客与画家》一书,推荐大家一读:
那个东西非常巨大,令人感到十分惊讶,它静静地躺在那里,周围没有任何动静,仿佛时间都停止了流动,这种景象让人难以忘怀,因为它太不寻常了。
常见的编程工具,按照特定次序摆放,比如Java、Perl、还有Ruby。你会察觉到,位次越靠后的语言,越接近Lisp。 Lisp的风格被大量借鉴,其中一些功能,连Lisp的资深程序员都当作是结构上的缺陷。而Ruby,倘若时光倒流到1975年,你指出它属于Lisp的一个分支,恐怕无人会表示异议。
编程语言如今的发展,仅仅达到了1958年Lisp语言的阶段。
1958年,John 构思了Lisp语言。在我看来,当今最前沿的编程语言,实际上只是完成了他五十多年前的构想。这是怎么做到的呢?难道计算机技术的进步不是突飞猛进吗?
那个年代的技术,怎能比得上当今的成就呢? 告诉你缘由吧。 John 当初并非要将 Lisp 制作为编程工具,至少不是我们如今所理解的那种编程工具。 他的初衷只是想开发一种理论推演方法,以便更精炼地描述图灵机。 因此,为何五十年前的编程工具,至今仍具实用价值?这种语言根本不是什么技术,它实际上是数学。数学是不会随着时间淘汰的。
不该将Lisp语言和五十年代的设备等同起来,应当拿快速排序算法来对比它。该算法诞生于六十年代,现在仍是效率最高的通用排序方案。
现今最顶尖的通用语言,也仅是初步达到了Lisp的程度,尽管已相当接近,但终究无法与Lisp相提并论。
Lisp语言刚问世时,就蕴含了九个创新理念。部分理念如今已成为普遍认知,另一些则在其他高级语言中相继出现,目前仍有两种理念是Lisp所独有的。
这个句子包含了多个部分,需要将其拆分成更小的单元,每个单元之间用逗号隔开,同时确保不使用原文中已经出现过的词汇,并且保留原有的句意。首先,要明确句子的核心内容,然后将这些内容用不同的表达方式呈现出来。在这个过程中,要注意专有名词不能被修改,同时要避免使用任何英文单词。改写后的句子应该保持与原文相同的语言风格,但表达方式要尽可能多样化。最后,将改写后的句子按照要求进行格式调整,确保每个小分句之间用逗号隔开,句末要有相应的标点符号。这样,就可以得到一个既保留原意又具有最大差异的改写版本。
感觉如何,是否渴望探究由这般卓越的Lisp语言精心打造的Emacs,其构造是否十分雅致?
这篇文章不可能向大家展示Emacs所有的精妙之处。说实话,Emacs肯定有缺点:作者还是相当明智的,不会去做那些有风险的事情。
更多Emacs的好处只有大家使用了才能慢慢领略。
Emacs简介
Emacs是一款功能非常全面的文本处理工具,在软件开发者以及从事计算机相关工作的群体里备受青睐。
EMACS,是编辑器宏的简称,最早由理查德·马修·斯托曼和Guy在1975年于MIT联手研发而成。
这位胡子浓密的长者,乃是开源理念的先驱,他对于苹果公司以及众多企业和组织持反对态度,持续不断地表达着自己的立场,他同时担任自由软件基金会主席这一职务,该基金会负责领导和推动包括GNU项目在内的众多开源计划,GNU项目让全球的开发者得以围绕Linux系统构建各类应用软件,从而促成了Linux的繁荣发展否则Linus(Linux的缔造者)仅仅开发出Linux核心系统,远远不够。因此当前Linux最恰当的名称是GNU/Linux。
Emacs自出现之后,衍生出了很多不同的版本,其中应用范围最广的两个是:1984年由某个人发起且他至今仍在维护的GNU Emacs,以及1991年启动的一个版本。这个版本源自GNU Emacs,并且到现在仍然有很高的相似度。它们都选用了Emacs Lisp这种扩展能力非常突出的编程语言,借助这种语言,它们成功拓展了多种功能,例如编程、编译,以及网络浏览等。
能够借助Lisp语言重构Emacs的功能模块,并且可以调整设置,从而实现Emacs的全方位个性化定制,使这款编辑器蕴含着无尽可能。
国际化
Emacs能够编辑多种文字的文档,涵盖UTF-8在内的多种编码方案,同时兼容各种字符集、书写体系,以及不同地域的文字规范,因此全球多数语言的使用者都可以借助Emacs完成文本编辑工作。此外Emacs还能借助外部工具,支持多语种的拼写校验功能。
跨平台性
Emacs是当今全球可移植性最强的关键软件之一,几乎可以在所有主流操作系统上运行,涵盖类Unix系统,例如GNU/Linux、各种BSD、AIX、IRIX、Mac OS X等,也包括MS-DOS,还有移动平台以及iOS系统。
缓冲区的概念
初学Emacs需要理解什么是缓冲区:
Emacs中的所有操作都在编辑缓冲区进行,这个缓冲区一般是某个文件的临时版本。当你在编辑的缓冲区里有某个文件的副本时,保存修改后,Emacs会将缓冲区里的内容转移到该文件中。除了用于处理文件副本的缓存区域之外,还存在一些用于临时操作的缓存区域,这些区域功能类似于草稿板,用户可以借助write-file指令("C-x C-w")或save指令(“C-x C-s”)随时将其中存储的临时内容进行固定。
最初我也对缓冲区的含义不太明白,不过不用着急,慢慢使用之后很快就能掌握。
可以参考一些高手的Emacs教程和“练级”系列:
Emacs的官网:
Emacs的中文WiKi:
轻松一下,关于Emacs的一则玩笑
《Emacs 的日子是这个样子的》
据说存在一种名为Emacs的程序。试用过后,觉得它类似文本编辑器。操作起来十分简单,没有任何门槛。但是……始终无法找到结束运行的方式……
起初对 Emacs 有一定了解,随后接触不同的模式,研究按键的对应关系,探索设置技巧,接着逐渐适应 Emacs 的使用。
已经对 Emacs 非常了解,基本上用它来完成所有工作,整天都沉浸在使用 Emacs 的状态中……
对个人习惯使用的 Emacs 非常了解,能够指导他人使用 Emacs,经常参与 Emacs 相关的社群活动,频繁获取、应用并关注他人的插件,已经无法离开 Emacs 了
慢慢对 Emacs 失去兴趣,慢慢精通 Lisp 语言,开始重新配置自己的 Emacs,在此期间,又不断遇到挫折,工作效率总被某个糟糕的改动所耽误
长期调整 Emacs,自己手里的 Emacs 几乎每周都和上周有些差异…… 就是,调整得太多,时常在某天整理代码时猛然意识到……竟然还有这么个便捷的功能……早已遗忘许久……
7. …… ……
Emacs三个平台的安装与配置
1. 下安装Emacs
请到以下链接下载版的Emacs:
请各位获取清单里最新档次的压缩包,例如当前最前沿的版本是2015年5月1日推出的24.5版,
emacs-24.5-bin-i686-.zip
下载后,用或7-zip解压,会出来一个文件夹
emacs-24.5-bin-i686-
内含四个子文件夹:
bin
share
var
进入bin目录,执行里面的emacs程序就能启动Emacs,无需事先安装。
可以将emacs.exe这个文件固定在任务栏上,这样使用起来就很便捷,只需点击图标即可快速启动。
2. Linux下安装Emacs
一族(包括)下安装Emacs:
sudo apt-get emacs
一族(包括)下安装Emacs:
sudo yum emacs
其余部分可尝试查询安装方法,或者获取Emacs的原始资料进行编译设置。
以下展示Linux获取Emacs源码并编译安装的步骤,这是非常炫酷的安装方法:
首先去
ftp:///pub/gnu/emacs
那里存有Emacs各个主要版本的源代码压缩文件,可以获取最新版本,倘若使用旧版本亦可,例如:emacs-24.5.tar.gz
展开 emacs-24.5.tar.gz 文件,然后开始编译,接着进行安装,在命令行界面里,按顺序输入以下指令(假如是别的版本,只需把命令中的24.5换成对应版本号就行):
将名为emacs-24.5.tar.gz的压缩文件进行解压缩操作,释放其内部内容,这个过程是通过执行tar命令配合zxvf参数来完成的
cd emacs-24.5 (进入目录)
./ (配置)
make (编译)
sudo make (安装,会提示你输入管理员密码)
设置完成后要启动Emacs非常容易,只需开启一个命令行界面,键入emacs,按下确认键,即可运行。但作者觉得这种方法过于繁琐,因此可以采用更便捷的方法来启动Emacs,这里介绍一种通过单个按键完成操作的方法(演示环境为21版本,但其他类似系统也同样适用)。
打开的“设置” (肯定知道设置在哪里吧)
选择“键盘”
在选项清单里找到“个人化操作指令”,随后点一下“+”号,以便增加一条新的操作指令
选定快捷键的按键,我这边用的是F2键,接着输入指令,内容为“emacs”,然后输入快捷方式的名字,可以随意填写,我设置为“Emacs”,最后点击确认
按F2键试试,是不是就启动Emacs啦?这酸爽不言而喻!
3. Mac OS下安装Emacs
Mac上安装Emacs的方法很多,有通过Git获取Emacs的源代码再进行编译安装的;也有借助包管理工具进行安装的,不过作者更倾向于介绍一种更便捷的途径,这种安装方式跟Mac系统里安装QQ、迅雷等软件的操作流程类似。
上网之后,去获取那个dmg文件,苹果系统的用户一定清楚,这是在苹果机上安装程序的标准流程。接下来就没别的要做了……假如连这样都搞不定Emacs,那确实没理由再用它了……
自动补全插件
设置好Emacs之后,还得配置一个能自动补全功能(包含关键字和文本等)的插件,这个插件功能很突出,叫做-mode,官网地址是
幸运的是,这个扩展无需我们像常规方法那样从官网获取、部署到Emacs中,原因是Emacs内置了扩展的安装清单,这个清单功能类似于 apt-get 和 yum 这类包管理程序,因此我们只需遵循步骤进行安装
按下 M-x 来调出命令输入
输入 list-,回车
在出现的列表里,点击
在右边出现的新缓冲区里点击 (英文: 安装)
点击 Yes
这个指令(list-命令)同样能用来配置众多Emacs的附加组件(插件),大家留意到清单中汇集了诸多工具了吗,由此可见Emacs的功能特性颇为类似一个微型操作系统。
小编的Emacs配置文件
点击“阅读全文”获取小编整理好的压缩包(.rar格式),其中包含小编的 Emacs 配置文件 .emacs(注意文件名前面有个点),以及三个实用插件,可供 .emacs 文件引用使用。
可以到网络上获取一些资深用户的Emacs设置文件,研究他们的Emacs操作命令,比如除了那些基础通用的操作命令之外,用户还能根据自己的需求设定很多操作命令,这些命令可以添加到 .emacs 文件中去设定。
如果你“不幸”选择使用小编的Emacs配置文件,那么:
请用小编的 .emacs 文件来更新你的主目录中的 .emacs 文件,在安装完Emacs软件后,你的主目录,也就是 ~ 路径下,会自动生成一个 .emacs 文件。
将压缩包中的另外三个组件文件移到 .emacs.d 目录下的子目录中,这个 .emacs.d 目录会随着 Emacs 安装完毕后在用户主目录生成,但那个子目录需要自行建立:
cd ~/.emacs.d/
mkdir
将 php-mode.el 和 psvn.el 复制到 saved 目录下,或者直接手动把这三个模块文件放到那个文件夹里面
常用快捷方式
Emacs的按键操作通常与Ctrl和Alt组合使用,或者称为Meta键,在Mac系统中则对应Cmd键,比如Ctrl+x表示C-x,Alt+x表示M-x(Mac上使用Cmd键)。此外,用户可以根据个人需求调整所有按键的功能。
所以下面我在讲述快捷键的组合表示方式时:
C 代表Ctrl键
M 代表Alt键或者在苹果的Mac系统下是Cmd键
C-x C-c 代表着,先按C-x,再按C-c
C-x k 代表着,先按C-x,松开手,再按k
小编平时最常用的是这些快捷键组合
M-s : 新建一个(缓冲区)
C-x O,请注意是大写的O,不是数字零,因此操作时必须同时按下shift键和o键,这个组合键的功能是在不同的缓冲区之间进行切换。
C-g : 取消当前操作
C-x u : 回到上一步,相当于Undo
C-x C-3 : 将当前编辑页面横向划分成左右两个部分,新产生的编辑区域是复制原有页面的内容,可以重复操作,以便创建出更多独立的编辑窗口
按下C-x C-2键,可以将当前编辑区域纵向一分为二,新出现的编辑区域是原区域内容的克隆,重复操作可以实现更多子窗口的创建
M-w功能的作用是,当用户选择了某些文字时,执行复制这些文字的操作,而如果用户没有进行任何文字的选择,那么系统会默认复制光标所在的那一行内容
C-w功能,当有文字被选中时,执行的是剪切操作,若没有文字被选中,则剪切的是当前所在的行
启动指令功能,能够输入指令名称,例如帮助文档指令,版本控制指令等
C-y : 黏贴
C-x C-s : 保存文本
C-x C-f : 打开文件,如果文件不存在,则新建文件
C-x C-v : 打开一个文件,取代当前缓冲区
C-x k : 关闭当前缓冲区()
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,很快就能熟练掌握,我向你保证!
另有一个日常会使用的功能,是查找函数,能够便捷地检索到预先设定的函数。
按下 M-x 来调出命令输入
输入 man,就是Linux或Unix系统里的man指令,这个命令的简称,表示的是"手册"的含义
然后输入你要查询的函数名,回车
就出来啦,比如小编查询函数,就会弹出下图右边的缓冲区:
请提供小编的 .emacs 配置文件全文,以防下载地址失效,那三个组件,即 php-mode.el、psvn.el 和 saved-,都可以从网络上获取。
;; FOR TO LOAD
在加载路径列表中添加一个位置,这个位置指向家目录下的emacs.d文件夹,使用 tilde 符号进行路径前缀的表示
;;( 'dsvn)
( 'psvn)
( 'php-mode)
( ')
;;( 'unxls)
文件所在的具体路线,通过点来明确指示
;;( ')
(-set-key ')
(-set-key
( z)
'undo)
;; We could use '- or '-
(-set-key
( )
'-)
;;(-set-key "\C-)" '-)
;;(-set-key "\C-=" '-)
(-set-key "\C-n" 'imenu)
(defun try-to-add-imenu ()
当情况不存在时,将“imenu”添加到列表中,并且不会引发错误
在字体锁定模式钩子函数中注册尝试添加索引菜单的功能
;; mode in all
在初始化过程结束后执行特定功能模式
(-set-key "\M-s" 'new-shell)
设置快捷键,将 Ctrl+x+t 分配给显示待办事项的功能
;; Copy or Cut one line if no
;; copy or whole line
(-set-key "\M-w"
( ()
()
(if mark-
(kill-ring-save (-)
(-end))
(progn
(kill-ring-save (line--)
(line-end-))
( " line")))))
;; kill or whole line
(-set-key "\C-w"
( ()
()
(if mark-
(kill- (-)
(-end))
(progn
(kill- (line--)
(line-end-))
( " line")))))
(defun new-shell ()
()
(let (
( (get-- (-)))
( (-new--name "*shell*"))
(-new- )
(set---p nil)
(set-- )
(shell )
;; . This force the
;; to be set .
将路径变量值获取并处理,首先保存当前路径,然后添加指定目录,接着执行命令输出结果,最后将输出内容赋值给新路径变量
( "PATH" path)
(setq exec-path
扫一扫在手机端查看
-
Tags : 程序员 文件夹 7-zip 文本编辑器 mac lisp语言 配置文件 svn lisp 黑客与画家 subversion 个人信息管理 版本控制系统 emacs lisp sudo linux setq 苹果 android facebook 快捷方式 编程语言 openvms john mccarthy 编辑器 百度 操作系统 emacs 黑客
- 上一篇:ep-fe/zn5/cms 25kW电动汽车直流充电桩设计_电动汽车直流充电桩设计指南完整版来了,全干货!
- 下一篇:TensorFlow安装教程_解决安装AI算法库TensorFlow 的最新入坑指南以及详细的安装教程
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1