个人的武装配置比较搓。希望大神指正下。
我们先去这里收集主人公闯关道具 —— 昊天塔 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-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] ,直接跳到 In[4] 这样诡异的 repl 提示,
是 elpy 发功的时候走火入魔了,还是其它什么原因已无从考证。
不过介于flake8 这个八婆会不断的提示你代码有问题,可以选择炒它鱿鱼:
在 elpy 中选择configuration(稍等一会儿会出现)
将 python check command 的 flake8 改成 nil 即可(虽然不知道这样做正不正宗,不过是起作用的)。
好吧,其实没写完,先这么多吧。