打印
[嵌入式linux]

Emacs 使用心得

[复制链接]
1298|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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 模式,提供很多快捷键,进行文件和目录的操作。
  • 比如,有对单独文件或者子目录的操作,首先把光标移到到想操作的目标上:

    • 按下 d,然后按 x, 就可以删除它。(有确认的回答提示)
    • 按下 r,就是改名,Emacs 会提示您,修改名字。
    • 按下 c,就是复制,Emacs 会提示您键入目标所在地
    • 按下 u,就是放弃刚才 d/r/c 等等的准备
  • 还可以,先批量选择多个文件和子目录,再统一执行相同的命令:

    • 在想批量选择的文件和子目录上,按下 m,该文件或子目录会出现被标记的 * 号
    • 多个文件或子目录,都选择好了后,
    • 按下 D,就是把这几个被标志了的文件和子目录,一起删除
    • 按下 C,就是把这几个被标志了的文件和子目录,一起复制到其他地方
    • 按下 U,就是 全部放弃 被标记的文件和子目录

另外,按下 ^ 就跑到上一层目录,很喜欢这个快捷键、明快简洁,所以我在 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 运行啦。








使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

104

帖子

1

粉丝