码迷,mamicode.com
首页 > 编程语言 > 详细

Emacs 降魔篇 ——制作 Python IDE

时间:2015-04-13 00:25:22      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:github   lisp   scheme   


个人的武装配置比较搓。希望大神指正下。

我们先去这里收集主人公闯关道具 —— 昊天塔 emacs for windows:http://ftp.gnu.org/gnu/emacs/windows/

我使用的是冥界版 24.3。


释放 emacs 的灵压,将其解压在你需要的目录下,在生成的 bin 目录下,点击 addpm.exe,

会在 "C:\Users\Administrator\AppData\Roaming" 目录下生产 “.emacs.d” 子目录。

接着在解压的 bin 目录下,点击 runemacs 之后,就能看到昊天塔现身了!

技术分享


为了试探出 ".emacs" 配置文件这个妖孽到底藏身何处,所以先随意配置下 emacs 的界面样式,乱其阵脚,

我习惯性用“courier new bold 12 号”字体,所以先在 opition 下 set default font,然后一定要 save opitions.

接着发现 emacs 下面的 buffer 有了 .emacs 这个鬼怪的藏身踪迹:

技术分享


然后用记事本或者其他什么神器打开它,会看到这些鬼画符,据说这是一个叫 Lisp 的古老种族遗留下的古迹,

至于它到底在阐述什么奥义,who 造呢:

技术分享

但是这个时候神器昊天塔 emacs 的外观似乎不太和谐,有点吓人,

需要设置一下长宽,在 .emacs 配置文件中添加如下咒语:

( setq default-frame-alist ‘( ( height . 32 ) ( width . 80 ) ( menubar-lines . 20 ) ) )


在 C:\Users\Administrator\AppData\Roaming\.emacs.d 目录下面,

创建一个 plugins 子目录(auto-save-list 是自动产生的,不用管它)。

技术分享


先配置 ecb, 这个神器是用来浏览文件的,也就是浏览代码的三界众生的,

ecb 需要用到 cedet 这个做祭祀,但是冥界版的 24.3 内置了 cedet,所以就不用去探索 cedet 的遗迹了:

去三宝殿: https://github.com/emacsmirror/ecb 下载 ecb,

在 plugins 目录下,创建 ecb 子目录,将 ecb 的灵压释放在里面:

技术分享


在 .emacs 配置文件里面写如下咒语,并保存:

;;;;;;;;;;;;;;;;;;;;; begin ecb ;;;;;;;;;;;;;;;;;;;;;;;
(add-to-list ‘load-path "~/.emacs.d/plugins/ecb")
(require ‘ecb)
(setq ecb-auto-activate t
      ecb-tip-of-the-day nil)
;;;;;;;;;;;;;;;;;;;;;  end ecb  ;;;;;;;;;;;;;;;;;;;;;;;


然后召唤昊天塔 emacs 会看到这个界面的时候,证明 ecb 配置好了:

技术分享


不过这时候这个 ecb 比较犟,不是很配合,比如用鼠标左击一些文件会点不开,所以需要念咒语,重新改造:

M-x ecb-customize-most-important 

(M-x 在 windows 是按 Alt + x,然后在下面的 buffer 中输入ecb-customize-most-important 

会看到这个鬼,然后选中Primary: mouse-1, secondary: mouse -2,最后记得保存下,发现鼠标左击可以用了

技术分享

好吧,先关闭 emacs。。。。我们的神器得休息一下。


下面召唤 yasnippet 这个僵尸:这个僵尸有制作代码模板的黑魔法。

当然,我们得先去魔巢 github 探索下:https://github.com/capitaomorte/yasnippet,

然后在 plugins 目录下再创建 yasnippet 子目录后,释放yasnippet 的妖气

技术分享

在 .emacs 配置文件中写如下咒语来召唤 yasnippet  这个鬼:

;;;;;;;;;;;;;;;;;;;; begin yasnippet ;;;;;;;;;;;;;;;;;;;;;
(add-to-list ‘load-path "~/.emacs.d/plugins/yasnippet")
(require ‘yasnippet)
(setq yas/prompt-functions 
   ‘(yas/dropdown-prompt yas/x-prompt yas/completing-prompt   
    yas/ido-prompt yas/no-prompt))
(yas/global-mode 1)
(yas/minor-mode-on)
;;;;;;;;;;;;;;;;;;;; end yasnippet ;;;;;;;;;;;;;;;;;;;;;

好吧,再次召唤 emacs,新建一个 test.py 文件,会发现yasnippet 如约而至

技术分享


整顿 elpy,话说这个鬼是捉妖师 ——橙月·离雪 帮我捉回来的。

据妖侠宝典上记载:elpy 的魔法值比auto-complete + pymacs + pyrope + ropemacs + pycomplete 这几只怪物加起来要高。

不过在此之前得先收集 python 的四大神器!一起念咒吧:

pip install rope

pip install jedi

pip install flake8

pip install importmagic

好,施法完毕,打开 .emacs 配置文件,添加如下代码

( require ‘package )
( add-to-list ‘package-archives
             ‘( "elpy" . "http://jorgenschaefer.github.io/packages/" ) )

然后打开昊天塔 emacs:

写上咒语: M-x package-refresh-contents

按下回车之后再输入:M-x package-install

回车后再输入elpy

由于 elpy 是大魔头,所以用昊天塔镇压它需要一点时间,等待 1分钟。

然后发现 .emacs.d 目录下多出了 elpa 子目录,里面还多了很多乱七八糟的怪兽,可以先无视。

技术分享


删掉原本在 .emacs 配置文件中的代码

( require ‘package )
( add-to-list ‘package-archives
             ‘( "elpy" . "http://jorgenschaefer.github.io/packages/" ) )

并添加如下代码:

;;;;;;;;;;;;;;;;;;;;;;;;; begin elpy ;;;;;;;;;;;;;;;;;;;;;;;
(package-initialize)
(elpy-enable)
;;;;;;;;;;;;;;;;;;;;;;;;; end elpy ;;;;;;;;;;;;;;;;;;;;;;;;;

重启 emacs,创建 python 文件,输入关键字会发现有提示,包括库中的函数:

技术分享

yasnippet  这个时也可以用了,输入关键字,比如输入 class 后按下回车,

等 elpy 的提示消失之后,按下 tab 键就可以了。

技术分享


按下 ctrl + x 2 出现两个编辑区,在上面的编辑区按下 ctrl + c,ctrl + c,python 的代码就会在下面执行。

但是介于内置的这个货色有点丑,就集成 ipython吧。

先念咒语 pip install ipython。

之后,在 .emacs 配置文件中编辑如下咒语:

;;;;;;;;;;;;;;;;;;;;;;; begin python ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( require ‘python )
;; use ipython 
(setq python-command "ipython") 
(setq 
      python-shell-interpreter "ipython" 
      python-shell-interpreter-args "" 
      python-shell-prompt-regexp "In \\[[0-9]+\\]: " 
      python-shell-prompt-output-regexp "Out\\[[0-9]+\\]: " 
      python-shell-completion-setup-code "from IPython.core.completerlib import module_completion" 
      python-shell-completion-string-code "‘;‘.join(__IP.complete(‘‘‘%s‘‘‘p))\n" 
      python-shell-completion-module-string-code "" ) 
( add-hook ‘python-mode-hook
    ( lambda ()
        ( set-variable ‘indent-tabs-mode nil )
      ( define-key python-mode-map ( kbd "RET" ) ‘newline-and-indent ) ) )
;;;;;;;;;;;;;;;;;;;;;;;; end python ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


重启 emacs,再次编辑 python 会发现支持自动缩进,而且再次运行,就可以看到 ipython:

技术分享


至于为什么前面会出现In[1], In[2], In[3] 这样诡异的 repl 提示,

是 elpy 发功的时候走火入魔了,还是其它什么原因已无从考证。


不过介于 flake8 这个八婆会不断的提示你代码有问题,可以选择炒它鱿鱼:

在 elpy 中选择 configuration(稍等一会儿会出现)

将 python check command 的 flake8 改成 nil 即可(虽然不知道这样做正不正宗,不过是起作用的)。

技术分享


好吧,其实没写完,先这么多吧。




Emacs 降魔篇 ——制作 Python IDE

标签:github   lisp   scheme   

原文地址:http://blog.csdn.net/pandora_madara/article/details/45013927

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!