时间:2021-07-01 10:21:17 帮助过:82人阅读
今天在公司,花了一下午时间,各种搜索,各种尝试,各种折腾,总算是让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
(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上看到输出。