一年成为Emacs高手(像神一样使用编辑器)推荐文章

http://ftp.gnu.org/gnu/emacs/windows/
http://blog.csdn.net/redguardtoo/article/details/7222501/

1.vi与Emacs的不同

vi Emacs
快捷键命令 vi通过记录按键序列,形成决策树中的一条路径,从而确定一个命令。 Emacs通过组合键的方式立即执行命令。
内存占用和定制性 由于历史原因,vi小而快,但定制性上比较受限。 Emacs启动慢且占用更多内存,但高度可定制,包含大量复杂功能。它基本上是一个Lisp程序的执行环境。
用户界面 vi早先独占命令行终端,没有图形用户界面(GUI)。后来的衍生版本,如MacVim和gVim,都具备全功能的GUI。 Emacs,最初也为终端设计,但很早就具备了GUI,现代版本提供众多GUI版本。
功能/导航 vi具名明确的编辑模式。 Emacs采用功能键组合。

vi类型编辑器的优点

  • 遵循“简单工具,多样组合”的理念。
  • 小,符合Unix哲学中的“只做一件事,并做好它”,避免了功能蔓延。
  • 比Emacs快(至少历史上是这样的)。
  • 可运行于任何实现了C标准库的系统之上,包括UNIX、Linux、AmigaOS、DOS、Windows、Mac、BeOS和POSIX兼容系统等等。
  • 让“QWERTY”键盘用户将手指保持在默认键位上,使编辑时手指移动更少。
  • 更普及。基本上所有Unix和类Unix系统都默认提供了vi或其变体。

Emacs的优点

  • 符合“厨房水槽”理念,提供了比vi更多的功能。
  • 移植最广泛的非试用计算机程序之一。它能在各种操作系统上运行,包括大多数类Unix系统(GNU/Linux、各种BSD、Solaris、AIX、IRIX、AmigaOS、Mac OS X[1][2]等)、MS-DOS、Microsoft Windows和OpenVMS。Unix系统,无论自由版本或商业版本,均随系统提供Emacs。
  • 可扩展和可定制(Lisp的变体 - Emacs Lisp),功能包括:
    • 专门的编辑模式,支持大量编程语言、标记语言、排版语言,如Bash、C、Delphi、Java、Lisp、LaTeX、MediaWiki、Python等。
    • 可模拟vi(“viper-mode”)。
    • 强大可扩展的文件管理器(dired)、智能调试器和大量工具。

2.Windows下的Emacs安装与配置

1、下载
到这个网址可以下载到Emacs的windows版本:http://ftp.gnu.org/pub/gnu/emacs/windows/
只需要一个压缩文档,如emacs-22.3-bin-i386.zip

2、安装
在D盘根目录下新建一个文件夹,取名Emacs22.2(也可以是其他路径,随个人喜好而定),将emacs-22.2-bin-i386.zip里的文件解压到这个目录下,这样在d:/Emacs22.2/下就有bin, tec, info, leim, lisp, site-lisp等目录。

双击bin文件夹里的addpm.exe进行安装,安装后将在开始菜单生成Gnu Emacs/Emacs链接,点击这个链接便可启动Emacs。也可以双击bin文件夹里的runemacs.exe启动。注意到bin目录里还有个文件是emacs.exe,双击它也可以启动,但是会出现一个控制台窗口

3、修改注册表
打开注册表,找到HKEY_LOCAL_MACHINE/SOFTWARE/GNU/Emacs(如果没有则手动添加项),在此项下添加字符串值,名称为HOME,值为D:/Emacs22.2。这样做的目的是让D:/Emacs22.2成为Emacs的home路径(传说中的home path,以后你将会经常看到“home目录”、“home directory”等等)。

4、创建.emacs.d目录和.emacs文件
相信.emacs.d目录和.emacs文件是困扰大家很久的问题了,其实有个简单的办法可以解决此问题。启动emacs,用鼠标点击Options菜单,随便点击一两个选项,比如点击一下Active Region Highlighting,然后点击Save Options。先不要担心你会破坏了什么东西,这样做的目的是让emacs自动创建.emacs.d目录以及.emacs文件!观察你的Emacs窗口最后一行,是否显示“Wrote d:/Emacs22.2/.emacs”?如果是的话就对了,当你选择Save Options的时候,Emacs会在home路径下产生.emacs文件,并把配置信息写进这个文件。现在看看你的d:/Emacs22.2/目录下是否产生了这两个东西?

5、加载.el文件
lisp目录下存放着lisp源文件(*.el)和已编译的lisp文件(*.elc),以后你也可以将自己的.el文件放在这个目录下,然后还要在.emacs文件插入相关语句。比如你有一个文件叫做abcd.el,将它复制到lisp目录下,然后打开.emacs文件插入一句(require 'abcd)就可以了(包括圆括号,不需要扩展名.el)。

如果你不喜欢lisp文件夹,也可以自己新建一个,比如在home目录下建一个文件夹叫做xyz,然后把abcd.el放在xyz目录下,在.emacs文件插入以下两句:
(setq load-path (cons "~/xyz" load-path))
(require 'abcd)
第一句告诉emacs先加载你的xyz目录,第二句再加载abcd.el。注意“~/”是linux系统的用法,表示home目录。
如果你和我一样在学习《Sams Teach Yourself Emacs in 24 Hours》这本书的话,我想你一定需要sams-lib.el这个文件!可以到这个网址下载:
http://www.cs.virginia.edu/~wh5a/personal/Emacs/
找到sams-lib.el之后右键点击“目标另存为”就可以了!

以上的之中:路径及环境变量的设置,也就是HOEM值得设置有些矛盾,跟cadence的工作路径矛盾了,后面就把cadence的路径改了。

3. 初学者使用Emacs的难点

1 配置成神一样的编辑器要花很多时间

抄高手的配置,不要抱着玩玩的心态在低水平上创新.

 
Steve Purcell的配置 https://github.com/purcell/emacs.d
Matt Briggs的配置 https://github.com/mbriggs/.emacs.d
我的配置(抄Steve Purcell的,加中文和C++支持) https://github.com/redguardtoo/emacs.d

2 太难看

安装emacs24,然后看这:http://www.emacswiki.org/emacs/ColorTheme

3 记不住那么多命令,打字太烦

安装Smex,记住你最常用的命令,只要打命令中的关键字就可以匹配.使用Smex后我基本不再设置快捷键.

4 没有非用不可的功能,总能找到替代品

Org Mode是非常优秀的软件,可以用来做笔记,做GTD,写文档.我没有找到替代品.

5 对Vi用户来说快捷键陌生且低效

安装Evil,emacs版的vim(注意,不是vi),结合Vi的高效和Emacs的强大的编辑器,完美了.

6 对普通用户来说快捷键陌生

试着适应吧,Emacs比Notepad出生的早,所以你不能怪Emacs.

7 Ctrl键太难按

交换Caps Lock和左Ctrl.

8 不知道怎么看帮助

 
快捷键 说明
C-h v 按变量名查找
C-h f 按函数名查找
C-h k 按快捷键查找

9 恩,有时候我要用代理(Emacs很多功能需网络)

在bash下:

export http_proxy=http://127.0.0.1:8000; emacs

使用socks server和tsocks:

tsocks emacs

4.史上最强的vimrc文件,据说有800行,还是作者精简后的结果.

我在尽可能保留原作者的创意的前提下做了些小的修正,主要的修改如下:

  • 增加了对win32系统的兼容,原来的vimrc文件只兼容linux和mac

  • 修正了一些快捷键,例如ctr-q被原作者用来搜索buffer,用过win32版本vim的都知道ctrl-q被用来作为块编辑的快捷键,所以ctrl-q是万万不能被移做他用的.

  • 去掉了colorscheme,原作者的colorscheme对我来说实在是太geeky,我想软件默认的colorscheme就该是最适合大多数人的.

  • 启用了swap文件,因为我的机器配置太低,而且我经常要编辑大文件

  • 取消了所有和python有关的plugin,因为一些路径问题,也因为我觉得vim对python的支持够强大了(事实是,我缺乏用python写大项目的经验).

  • 增加了对中文编码的支持,参考了吴咏炜的一篇文章

  • 兼容低版本vi,目前我在vim5.8.9, vim6.1,vim6.3, vim6.4,vim7.0, 上测试过。
  • 其他一些通用性,兼容性的修正

  • 去掉了输入([{时的自动填入右括号的功能,在我修改代码时增加很多麻烦.

我强烈建议你通读这个vimrc文件,一定会很有收获的,至少我是如此.

Emacs的一些事情(与Vi的争议及使用)的更多相关文章

  1. Linux系统中的vi/vim指令【详解】

    vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称.几乎可以说任何一台Unix机器都会提供这套软件. 只要简单的在Shell下执行vi就可以进入 vi 的 ...

  2. 跟我一起学习VIM

    跟我一起学习VIM - The Life Changing Editor   前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹 ...

  3. 跟我一起学习VIM - The Life Changing Editor

    前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧.所以分 ...

  4. linux之文本编辑器

    [目标] 管理员在进行系统操作的时候,不可避免地会对文本进行修改,如进行各种服务程序配置文件的修改,使程序对用户提供不同的服务效果.在本章我们向大家介绍Linux上常见的编辑器ed.vi.emacs, ...

  5. GNU/Linux与开源文化的那些人和事

     一.计算机的发明 世上本无路,走的人多了,就有了路.世上本无计算机,琢磨的人多了--没有计算机,一切无从谈起. 三个人对计算机的发明功不可没,居功至伟.阿兰·图灵(Alan Mathison Tur ...

  6. 【转载】跟我一起学习VIM - vim插件

    目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...

  7. Python 开发的 IDE 和代码编辑器,你选择的哪一个?

    为了方便,我会分两个大类去说明,一类是适用于软件开发的比较通用的编辑器或 IDE ,我们可以通过插件等形式支持 Python 的开发,另一个是专注于 Python 开发的编辑器或 IDE . 不过在此 ...

  8. (转载)跟我一起学习VIM - The Life Changing Editor

    原文: http://ju.outofmemory.cn/entry/79671 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种 ...

  9. 跟我一起学习VIM - vim插件合集

    2016-06-14 15:04 13333人阅读 评论(0) 收藏 举报 分类: Linux(104)  目录(?)[+]  前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教 ...

随机推荐

  1. HDU 6055 17多校 Regular polygon(计算几何)

    Problem Description On a two-dimensional plane, give you n integer points. Your task is to figure ou ...

  2. 【转】在python3.5安装tkinter

    链接:https://www.zhihu.com/question/42162071/answer/95441732 安装tkinter tkinter是由tcl和tk两个部分组成的,所以下载tkin ...

  3. 【转载】 深度强化学习处理cartpole为什么reward很难超过200?

    原贴地址: https://www.zhihu.com/question/266493753 一直在看强化学习方面的内容,cartpole是最简单的入门实验环境,最原始的评判标准是连续100次epis ...

  4. 【linux基础】如何确定系统使用的Eigen库的版本

    path /usr/include/eigen3/Eigen/src/Core/util 文件 Macros.h #define EIGEN_WORLD_VERSION 3 #define EIGEN ...

  5. Twisted 安装

    1,官网: https://www.twistedmatrix.com/trac/ 2,下载 https://twistedmatrix.com/Releases/Twisted/18.7/Twist ...

  6. CSS3 transform变形(2D转换)

    transform 属性应用于2D 或 3D 转换.该属性允许我们对元素进行平移.旋转.缩放或倾斜. 一.translate(x,y).translateX(n).translateY(n)定义2D平 ...

  7. c# 敏捷2 ForEach ToDictionary ToLookup Except比较

    using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; ...

  8. 免费获取pptv会员

    打开上面的网址!领取会员!http://vip.pptv.com/activity/2016/licaitong http://vip.pptv.com/activity/2016/caifutong ...

  9. day39机器学习

    2 Numpy快速上手 2.1. 什么是Numpy Numpy是Python的一个科学计算的库 主要提供矩阵运算的功能,而矩阵运算在机器学习领域应用非常广泛 Numpy一般与Scipy.matplot ...

  10. xencenter如何安装系统

    首先点击增加服务器 输入xenserver的ip和用户名以及密码 添加资源池,注意下面那个add new server也要指定一个server,例如刚刚创建的那个 还要搞一个存储的,注意iso要选择s ...