本帖最后由 terryzhouhz 于 2022-4-28 21:00 编辑
(一) 引言 使用 Emacs 已经六、七个年头了,用一句话总结,那就是:越用越喜欢。 清楚地记得,六、七年前的那个时候,被 wordpress 所迷,被 Html、Css 所迷。觉得这些内容,和平常工作中接触的 Java 相比,轻巧灵动、直截了当。而且,书写代码的感觉也是不同,写 Java 用的 IDE 一跑起来,特厚重、特霸气、整个机器上的其他软件居民,最好都为之让路;而写 Html、Css、Javascript、PHP,就用 EditPlus 好了,轻巧、干净、整台机器依旧身轻如燕。 这个新世界,所见即所得,让人沉迷。写着写着,我想:如果有一款可以把多个文件内容,平铺开来,同时展现的编辑器就太好啦!用 Google 搜索、果然有啊,Emacs 和 Vim 两大神器、跃然眼中。 我几乎是同时尝试学习 Vim 和 Emacs 的,可能学习 Vim 还要早几天,也不知是什么缘故,可能就是手感、或者是分窗口的操作,我最后用上了 Emacs ,并一直使用到现在。 这两年,我也向朋友们推荐 Emacs,有些朋友也喜欢上了,并在日常中采用。还有些朋友,不太喜欢 Emacs,并反过来,推荐我使用 Sublime ,说:只要记住快捷键、Sublime 一样迅速;而且,你看你,Emacs 都没有行号的、也不区分 空格 和 Tab 显示的。 作为一个只满足于用 Emacs 写东西,并不深究其内涵的人,我一时无法对应回答。便也试试 Sublime、果然强大、而且好看。但用着用着,还是回到了 Emacs 的怀抱中,因为:Emacs 能够满足我以下这些要求: - 一个屏幕,可以同时铺开显示、编辑、好多个文件
- 随心所欲,编辑 Web 开发中用到的:Html、Css、Javascript、Ruby、PHP、SQL、SH 等等文件;
- 随时随地,记录随想和笔记、并且能够整理出层次感;
- 直观易用,比如文件管理,也就是文件间的复制、删除、改名等等这些,非常好用,一点都不枯燥;
- 进退自如,可以随时打上书签、方便以后回来
- 其他 ......
那,没有行号、怎么办?不区分 空格 和 Tab ,怎么办? 首先,这不是 Emacs 的过错,而是我个人的习惯,只要调整一下 Emacs 的配置,也就可以啦。 一直想写写 Emacs 的闲谈,当作总结分享,也希望借此机会,结识友人,深入了解一下 Emacs 的内涵。 贴两张平时使用 Emacs 的截图吧。一般来说,我写着写着,就平铺了四、五个文件:
有时候,特别是编写 Css 文件的时候,会平铺了这么多的文件:
(二) 自如的分屏
简单编程今天很巧,是双 11 节,你有剁手吗? 对于这个节日,我从来就不感冒,因为:"断舍离、简单生活" 是我越来越喜欢的生活方式。 在编程世界中,Emacs 也带给我类似这般:"断舍离、简单编程" 的感觉。 你是否曾有过如此的经历: 本想干干静静地写写代码,但为了参考,不得不打开好多相关的文件,拖来拖去的查看,枯燥无味的点击......屏幕一会儿就杂乱了、心情也跟着浮躁起来。 而 Emacs 的分屏,就是让人摆脱这种烦躁困扰的漂亮方法。 一个屏幕,相关的文件,横平竖直的整齐平铺,一目了然方便参考,轻轻敲击键盘,关键内容就写完啦,轻巧和优雅、干净的编程。 Emacs 的分屏,是其自身就有的功能,比如: - C-x 3 : 左右分割
- C-x 2 : 上下分割
- C-x 1 : 将当前窗口变为最大
- C-x 0 : 关闭当前窗口
这些功能,在启动 Emacs 之后就天然存在。 如果,再加上几行简单的配置,就得到了:进退自如,令大多数人满意的窗口操作了: 窗口分割- C-x 3 : 左右分割
- C-x 2 : 上下分割
- C-x 1 : 将当前窗口变为最大
- C-x 0 : 关闭当前窗口
- C-c 左箭头 : 恢复上一个窗口布局(比如 C-x 1 之后,想恢复到多窗口布局的时候就可以用)
- C-c 右箭头 : 前进一个窗口布局(也就是 "C-c 左箭头" 的逆向操作)
窗口跳转- C-c i : 跳转到上边窗口
- C-c k : 跳转到下边窗口
- C-c j : 跳转到左边窗口
- C-c l : 跳转到右边窗口
- C-c m : 然后利用箭头,调整窗口的大小,最后按回车键,结束窗口的调整
其配置如下图:
该配置内容,可以访问:https://github.com/doosolar/emacs 下载或者 clone 取得。(目前,git 库里的配置文件,还没有经过整理,但可以使用。) 怎么样,心动了吗? 最后,上传几张本周在代码重构过程中,分屏编辑的实战截屏 :) 早上:
中午:
当我一开始用分屏的时候,也有着 IDE 的路径依赖,老是想着:左边分出文件目录,右边是文件内容; 而在实际使用中,自然而然地,就摆脱了这个 IDE Style 的约束,每个小窗口,变得更自在,更进退自如,而且效果更好! (三) 目录和文件管理的收放自如
这次我们看看 Emacs 是如何快捷灵活地操作文件和目录的。 先用了、再精通在展开介绍之前,先谈谈一个对 Emacs 的认识误区:一定要熟练 lisp 才可以灵活运用 Emacs 吗? 结合我的经验,使用 Emacs 是不需要熟练 lisp 的,你只要顾名思义地了解 lisp 的大概意思,大体看懂配置文件,就可以:在实际项目中自如使用 Emacs 的。就像工作中,不需要知道细节,只要会引入 Gem, Plugin , SDK 等等,就可以满足大多数时候的需要了。 dired mode 目录模式:简介好了,言归正传,在 Emacs 中,有一个 dired mode 目录模式,让 Emacs 变成一个强大的文件管理器。 按下快捷键:C-x d 就进入了 dired mode 模式,屏幕上一行一行地显示出:目录里面的文件和子目录。dired mode 模式,提供很多快捷键,进行文件和目录的操作。 另外,按下 ^ 就跑到上一层目录,很喜欢这个快捷键、明快简洁,所以我在 Emacs 的使用过程中,都不去找传统的树形目录了。 dired mode 详细的快捷键,可以用 Google 等搜索一下,也可以在使用中,慢慢了解。 dired mode 目录模式:五行增强配置现在,看看配置文件,就五行,让您的文件和目录操作,更加简单。同时,也算是了解 Emacs 配置文件的入口吧。先贴图:
- 图中右上部的两个分窗口,是 dired-mode 在增强 dired-details.el 之后的两种显示(详细和粗略)
- 其中用绿色框起来的五行,载入了:dired-details.el 和 ido.el 两个 lisp 文件(就像两个 gem)
- 其中用橙色框起来的,是一个稍微复杂一些的配置,定义了:按下 F2 键,执行一个匿名函数
怎么样?Emacs 的配置文件,绝大部分都是可以顾名思义的吧?
(四) 合理的默认快捷键
虽然很多朋友都喜欢修改 Emacs 的默认快捷键。但作为喜欢” 断舍离 “风格的我,觉得没有太大必要花时间在修改快捷键上。 事实上,从学习 Emacs 开始,直到可以在日常工作中熟练使用 Emacs,我都没有刻意改过快捷键。唯有一次,就是把 Mac 电脑上的 Option 键,对应到 Emacs 的 Meta 键,(Mac 电脑上,默认的是 Esc 键对应 Emacs 的 Meta 键),具体的对应方法,在本回的最后,有贴图,一看就会。 为什么不需要修改 Emacs 的快捷键,就能用的很顺手呢? - 首先,Emacs 的默认快捷键,是有一定逻辑分类的,用几次,自己就会记住。
而且,感觉上,常用的也就 20~30 个吧,有时候,一天下来,也就十几种快捷键用用。 其次,最重要的一点是:使用正确的打字指法打字:又快又省力。 与其花时间改快捷键,不如好好练指法。好的指法,是最有效率的编辑器,就像牛仔,要练习拔枪一样,这是基本功 :)
正确的指法图:
好了,我们来看看:把 Mac 电脑上的 Option 键,对应到 Emacs 的 Meta 键,其实就是设置一下 terminal 的偏好设置,勾一下勾,就好啦 :)
(五) 在 CentOS 的安装前面概要地叙述了 Emacs 的极简使用。现在,我们来看看,如何在 CentOS 系统安装 Emacs 24.4 。 一般而言,在云服务器上进行运维,往往都使用系统自带的 Vim,但如果按照极简的原则,使用 Emacs ,同样也是非常方便的。作为 Emacs 爱好者,目前,我几乎在每台要运维的服务器上,都安装了 Emacs 和相关的极简配置,然后用 Emacs 打开多个窗口,编写不同的文件,感觉也很棒。 下面,直接贴上在 CentOS(5.6 或者 5.7 )上安装 Emacs 24.4 的命令和某个极简配置的取得,您只要把这些命令,一条一条 copy paste,就 OK 啦。 ### First: install the following software(安装软件包) sudo yum -y groupinstall "Development Tools" # 在有些云服务器中,这一步服务商已经做好了,当看到屏幕提示说: Development Tools 没有什么的,你就跳过这步 sudo yum -y install gtk+-devel gtk2-devel sudo yum -y install libXpm-devel sudo yum -y install giflib-devel sudo yum -y install libtiff-devel libjpeg-devel sudo yum -y install ncurses-devel sudo yum -y install gpm-devel dbus-devel dbus-glib-devel dbus-python sudo yum -y install GConf2-devel pkgconfig### Second: get emacs 24.4 (取得emacs 24.4) wget http://ftp.gnu.org/pub/gnu/emacs/emacs-24.4.tar.gz sudo tar xvf emace-24.4.tar.gz### Third: compile emacs 24.4 (编译) sudo ./configure -prefix=/usr/local -with-x-toolkit=gtk sudo make && make install### Fourth: (取得一种极简配置) git clone https://github.com/doosolar/emacs.git### Fifth: link the config files (将配置文件链接生效) # 这一步,用软链接,在 ~ 目录中,链接出 # .emacs # .emacs.d结果的 image 如下:
这样就安装好啦,可以键入 emacs 运行啦。
|