zoukankan      html  css  js  c++  java
  • emacs学习3

     

    emacs学习3

    1 emacs24的中ELPA

    引用emacswiki.org/emacs/ELPA中对ELPA的描述:

    "Our goal is to make it simple to install,use,and upgrade Emacs Lisp packages. We supply ##package.el###,a simple package manager for Emacs,and a repository of pre-packed Emacs Lisp code."

    package.el是emacs的包管理工具,自24版开始內置在emacs中,黙认包管理库是FSF的 库,http://elpa.gnu.org/packages/。 ELPA支持多个包管理库,我按照emacswiki中的说 明设置了三个库,gnu库包含的包较少,如cedet,ecb都没有,marmalgae,mepla包含很多 包,有些很新,来源于github:

    (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
                             ("marmalage" . "http://marmalade-repo.org/packages/")
                             ("melpa" . "http://melpa.milkbox.net/packages/"))
    

    2 emacs24字体设置

    (setq default-frame-alist (font . "Monaco 12")
    

    这是一般用的字体设置,可应用于所有frame的黙认字体,但是对于中英文混排的文章,需 要对中文和英文使用不同的字体。emacs支持根据字符编码找合适的字体,需要按编码进行 设置,如让emacs在遇到汉字时用“微软雅黑”,而不是"Monaco",要这样设置:

    (set-fontset-font
      (frame-parameter nil 'font)
      'han
      (font-spec :family "Microsoft YaHei" :size 18))
    

    除了han以外,还有kana,symbol,cjk-misc,bopomofo这些编码集也要设置,可以使用 elisp的dolist做循环操作,减少不必要的重复:

    (dolist (character '(han kana symbol cjk-misc bopomofo))
      (set-fontset-font (frame-parameter nil 'font)
         character
         (font-spec :family "Microsoft YaHei" :size 18)))
    

    还有,原来对字体的设置方法要改成下面才能和中文配合,否则emacs会忽略英文字体设置,所 以最终版本是:

    (set-face-attribute 
      'default nil :font "Monaco 12")
    (dolist (character '(han kana symbol cjk-misc bopomofo))
      (set-fontset-font (frame-parameter nil 'font)
         character
         (font-spec :family "Microsoft YaHei" :size 18)))
    

    看看配置成的效果:

    latex-table

    3 emacs与windows整合

     

    3.1 右键直接打开文件

    在配置文件中加入,(start-server t),然后用Emacs编辑一个文件时,可以 用emacsclientw.exe -n –alternate-editor=runemacs "%1"打开文件,可以在已打开的 emacs中显示文件,因为emacs打开后再不关闭,用这种方式打开文件很快。

    编辑一个注册表文件:

    REGEDIT4
    [HKEY_CLASSES_ROOT\*\shell]
    
    [HKEY_CLASSES_ROOT\*\shell\openwemacs]
    @="Edit &with Emacs"
    # The above value appears in the global context menu,
    # i.e., when you right click on a file.
    # (The '&' makes the next character a shortcut.)
    
    [HKEY_CLASSES_ROOT\*\shell\openwemacs\command]
    @="D:\\soft\\emacs24.3\\bin\\emacsclientw -n --alternate-editor=runemacs \"%1\""
    # The above has to point to where you install Emacs
    

    双击加入注册表中,在任一个文件上点右键会出现“Edit with Emacs”,点击“Edit with Emacs” ,文件会在已打开的emacs中出现。

    3.2 与vs结合

    在vs的菜单“工具”下面通过“外部工具”加入一个自定义的外部工具emacs,命令栏输 入:D:\soft\emacs24.3\bin\emacsclientw.exe,参数栏输入:-n -a "D:\soft\emacs24.3\bin\runemacs.exe" +$(CurLine) $(ItemPath),见下图。

    latex-table

    打开菜单“选项”下面的“键盘”,点中“工具.外部命令1”,设置快捷 键:”Ctrl+Tab“,见下图,这样每次用vs浏览代码时,如果看到想编辑的内容,直接按 "Ctrl+Tab"就可以把emac呼出,光标会自动放在文件刚刚看到的那行上面,编辑完了再按 "Alt+Tab"切换到vs中。打开菜单“选项”下面的“文档”,选中“自动加载更改(如果已保 存)”,避免毎次都弹出对话框让你确认是否重新载入。

    latex-table

    4 ecb2.4

    emacs24.4自带了cedet2.0,从elpa安装ecb2.4后出现错误,运行ecb-activate, 提示说ecb2.4最大支持cedet 1.0.9版本,我们可以在ecb-cedet-wrapper.el 的83行找到最大支持版本的定义:

    ECB can only be used with [1.0pre6, 1.0.9]! Please install it and restart Emacs!
    
    (defconst ecb-cedet-required-version-max '(1 0 4 9)
      "Maximum version of CEDET currently accepted by ECB.
    See `ecb-required-cedet-version-min' for an explanation.")
    ;; 改成
    (defconst ecb-cedet-required-version-max '(2 0 4 9)
      "Maximum version of CEDET currently accepted by ECB.
    See `ecb-required-cedet-version-min' for an explanation.")
    

    byte-compile-file编译ecb-cedet-wrapper.el,关闭emacs,打开emaca,再次运行ecb-activate,出现如下错误:

    ECB 2.40 uses CEDET 2.0 (contains semantic 2.2, eieio 1.4, speedbar 1.0).
    All requirements for ECB 2.40 fulfilled - Enjoy it!
    ad-handle-definition: `custom-save-all' got redefined
    The ECB is now deactivated.
    ecb-clean-up-after-activation-failure: ECB 2.40: Errors during the basic setup of ECB. (error-type: void-function, error-data: (ecb-enable-own-temp-buffer-show-futition))
    Package assoc is obsolete!
    

    解决办法:在ecb.el中找到(ecb-enable-own-temp-buffer-show-futition) 这 句,改为(ecb-enable-own-temp-buffer-show-function),用 byte-compile-file编译ecb.el。

    Date: 2013-04-28 16:17:02 CST

    Author: machine of awareness

    Org version 7.8.06 with Emacs version 23

    Validate XHTML 1.0
  • 相关阅读:
    Tensorflow中张量的数学运算
    TensorFlow2.0中tf.concat和tf.stack的区别
    机器学习之K-Means(聚类分析)
    机器学习之线性回归
    机器学习之随机森林
    机器学习之决策树
    python爬取FTP文件,并批量下载到本地。
    ATOM系列之-atom报错"Cannot load the system dictionary for zh-CN"
    开机出现loading (hd0)/ntldr。。。
    如何制作一张符合上传的照片
  • 原文地址:https://www.cnblogs.com/machine/p/3049360.html
Copyright © 2011-2022 走看看