標籤: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