从vim切换到emacs小记1


在阅读了《Unix编程艺术》之后,开始尝试emacs。据说有vi派,emacs派,但是基本没有vi+emacs派,我很好奇其中原因,但是在阅读完emacs自带的教程之后(c-h t),有点明白为什么基本没有两者都用的了。不过派系的想法终归派系,重要的还是使用方法。下面讲一下我的切换体验。

如何打开emacs

不要笑,很基础的问题。ubuntu下通过sudo apt-get install emacs安装之后,直接emacs出来的是GTK的emacs。以前没留意过是否有类似vi在CLI中的模式,最近才知道输入

emacs -nw

启动emacs的话就不会打开GTK的了。赶紧alias emacs=’emacs -nw’保存起来。

退出,保存退出和退出不保存

个人现在试出来的用法:

operation vi emacs
exit :q c-x c-c
save and exit :wq c-x c-c y
exit without save :q! c-x c-c !

buffer操作

vi是通过编号切换的,emacs现在我知道的是通过名字切换的。vi使用:ls列出buffer,之后通过:bn(n为buffer编号)切换。emacs中列出buffer的方法是c-x c-b,emacs中buffer的名字一般就是你打开的文件名,你知道buffer的名字的话或者从buffer列表中看到了的话c-x b BUFFER_NAME就能切换过去,BUFFER_NAME支持自动完成,类似bash那种。

搜索文件夹中的文件

emacs中因为使用时间不久只是一个简单尝试。m-x find-name-dired,输入文件名glob,比如Foo*,在搜索结果中选择文件即可。emacs好像是使用系统的find查找文件的。另外,使用中匹配的文件会归类到文件夹,匹配结果太多的话找起来可能不是很方便。但是emacs自带这种功能,个人觉得还是挺不错的。vi中我使用的是ctrl-p。

GBK编码文件问题

解决方案是按照utf-8,gbk方式打开GBK编码,在emacs配置文件(我的是.emacs.d/init.el)中加入:

(prefer-coding-system 'chinese-gbk)
(prefer-coding-system 'utf-8)

即可。注意和vi的不同,越优先的越在后。配置好之后打开UTF-8,GBK编码的文件,并用c-h C查看编码信息。顺便说一句,vi的话是增加 set fileencodings=utf8,cp936。

字符串搜索

现在只是简单使用,c-s进入搜索状态,输入子串,c-s往下搜索,c-r回退搜索。
另外,进入c-s之后不想搜索了的话,c-g就能quit,其他命令比如find-name-dired时亦有效。

CLI中的emacs隐藏菜单栏

完全不能用菜单栏,还占空间。把下面的指令加入配置文件即可:

(menu-bar-mode -1)

最后,简单的emacs cheat sheet一份


One response to “从vim切换到emacs小记1”

  1. 在命令行中使用emacs可能,功能上可能会减弱一些,可以试试最近很多人使用的daemon模式运行emacs.