Emacs 降魔系列之制作 Python IDE

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

我们先去这里收集主人公闯关道具 —— 昊天塔 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( emacs-code-browse ), 这个神器是用来浏览文件的,也就是浏览代码的三界众生的,

ecb 需要用到 cedet 这个做祭祀,但是冥界版的 24.3 内置了 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-xwindows 是按 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] ,直接跳到 In[4] 这样诡异的 repl 提示,

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

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

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

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

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值