這篇文章主要介紹了Windows上配置Emacs來開發Python及用Python擴展Emacs的方法,Emacs與Vim并稱為開發者手中最強大的兩款文本編輯器,需要的朋友可以參考下
Windows下配置Emacs來開發Python
去年在網上偶然的一個機會知道了Emacs的存在,在周圍前輩們都在夸贊Sublime好用的時候,喜歡跟大眾唱反調的我,突然覺得如果能用Emacs來編代碼,也許是個很牛的技能。
但是在看了一次Tutorial后,就因為復雜的快捷鍵和不同于一般編輯器的操作方式放棄了這個想法。
今年開始工作以后,公司還沒有給我發配項目,讓我有時間學了些Python入門。在尋找合適的編輯器的時候,擱置腦后許久的Emacs突然被揪了出來。
重新開始打開教程,耐著性子看完,并稍微記住了幾個快捷鍵,總算能夠磕磕絆絆的使用了。
然后在開始尋找Emacs上使用Python的方法的時候,才發現原來Emacs的插件配置對于新手這么棘手。中文的資料本來就少,而且大多數還是在Linux/Mac系統上的。向我們這樣在Windows上使用Emacs的“少數人口”似乎很難入門。
今天在公司,花了一下午時間,各種搜索,各種嘗試,各種折騰,總算是讓Emacs用上了Python-mode插件。雖然似乎用的最多的和功能更全的是iPython插件,不過今天為止還沒有弄明白。以后有機會再更新后續內容吧。今天就把再Window環境下Emacs配置Python-mode插件的方法記錄下來。
Emacs的下載安裝
下載
Emacs官方地址
http://www.gnu.org/software/emacs/
下載地址:(windows 版本)
http://ftp.gnu.org/gnu/emacs/windows/
下載最新版本的zip包就可以
安裝
下載解壓后,進入根目錄下的bin文件夾,運行addpm.exe安裝,安裝后在開始菜單中會加入GNU Emacs項。
當然你也可以選擇不安裝,直接調用emacs.exe 或 runemacs.exe打開Emacs。
入門
運行Emacs后,點擊Help菜單下的“Emacs Tutorial”進入Emacs自帶的教程文檔。(教程文檔很高質量,向文檔創建/譯制者們致敬)還可以點擊“Emacs Tutorial(choose language)”來選擇不同的語言。
讀完教程能幫助初學者快速入門和對Emacs最基本的概念進行理解,并能簡單的進行Emacs的日常使用。
Emacs的功能十分強大,更多的應用還需要使用者日后不斷地學習。
Python的安裝
Python的安裝請參考其他資料,為了編輯速度,這里先集中說明Emacs的配置。
Emacs配置使用Python-mode
Emacs配置
在很多有關Emacs配置的資料里,都會提到說“~/.emacs.d/”路徑和“~/.emacs”文件,我折騰了很久沒找到。后來才發現,“~”所指的HOME路徑在window系統里是C:/Users/(username)/AppData/Roaming :
按Windows7系統本身的HOME目錄配置的話,C:/Users/(username)/AppData/Roaming 這個HOME目錄太深了,而且默認狀態下AppData目錄是隱藏的,最最關鍵的是:如果系統盤一旦出問題,之前的.emacs配置文件和.el的擴展都得重新配置和下載。接下來很多資料上會教你怎樣更改HOME目錄以更方便的使用它。但事實上,初次使用Emacs的用戶如果沒有經常要更改配置文件的需要的話,使用原本的目錄就足夠了,如果你的電腦已經設置顯示隱藏文件的話,這個目錄也不是特別難找。
~/.emacs 文件并不是一開始就存在的。在Emacs的Options菜單里隨便設置一項,比如點選 Highlight Matching Parenthesis 然后選擇 Save Options, mini緩沖區里就會顯示 “Wrote c:/Users/(username)/AppData/Roaming/.emacs”這時進入HOME目錄就能看到.emacs文件和.emacs.d目錄了。
python-mode
python-mode下載:
https://launchpad.net/python-mode
下載解壓,進入Python shell 運行
- >python setup.py install
安裝。Python shell的進入方式在安裝python的資料里都會有,大家自行參考。
然后將解壓后的 python-mode.el 文件復制到HOME目錄.emacs.d文件夾下。
打開.emacs文件, 添加如下內容:
- (require 'python-mode)
- (add-to-list 'auto-mode-alist '("//.py'" . python-mode))
運行Emacs,便會自行配置好python-mode了。
運行
配置好python-mode后,用emacs打開任何.py文件,輸入 M-x py-execute-buffer 來運行python代碼。
使用快捷鍵 C-c C-c 也是一樣的效果。
使用 python 擴展 emacs
Pymacs 可以使得emacs能和python程序進行交互,可以讓emacs插件開發者盡量使用python進行開發。這里提供一個例子,在lisp中調用python的函數并將當前buffer的文件名傳遞給python,在emacs中輸出python函數的返回值
安裝
首先安裝 python 包 Pymacs. 在 ubuntu 里面安裝 pymacs 即可。
然后安裝emacs插件pymacs, el-get-install 或者 package-install 都可以
寫一個 python 模塊
目錄結構如下:
- ├── sample
- │ └── __init__.py
- └── setup.py
__init__.py 的內容:
- from Pymacs import lisp
- interactions = {}
- def hello_word(filename):
- return 'Hello from python, file name is %s' % filename
- interactions[hello_word] = ''
setup.py 的內容:
- from setuptools import setup, find_packages
- setup(
- name = "sample-pymacs",
- version = "0.1",
- packages = find_packages()
- )
安裝這個模塊
- python setup.py install
如果一切正常, 在 python 中可以 import sample
在lisp中調用python 模塊
創建一個lisp文件:
- (pymacs-load "sample")
- (message (sample-hello-word buffer-file-name))
將光標移動到每一行上并使用 C-M-x 來執行該行 lisp 代碼, 執行后會在emacs上看到輸出。
新聞熱點
疑難解答