zoukankan      html  css  js  c++  java
  • Emacs的一些事情(与Vi的争议及使用)

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

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

    1.vi与Emacs的不同

    viEmacs
    快捷键命令 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文件,一定会很有收获的,至少我是如此.

  • 相关阅读:
    JavaScript之事件冒泡和事件捕获详细介绍
    jQuer配合CSS3实现背景图片动画
    jQuery中animate()的方法以及$("body").animate({"scrollTop":top})不被Firefox支持问题的解决
    JavaScript 运用之表单验证(正则)和控制输入长度。
    input[type=submit]以及数字日期在苹果手机上显示异常的处理
    webstorm 快捷键
    Bootstrap 折叠(Collapse)插件
    input输入内容时放大问题及处理
    省市二级联动(原生JS)
    Spring4.X——搭建
  • 原文地址:https://www.cnblogs.com/xubeiping0930/p/4483124.html
Copyright © 2011-2022 走看看