Windows上配置Emacs来开发Python及用Python扩展Emacs

 更新时间:2015年11月20日 14:32:55   作者:ChanningBJ  
这篇文章主要介绍了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上看到输出。

相关文章

  • 用python生成(动态彩色)二维码的方法(使用myqr库实现)

    用python生成(动态彩色)二维码的方法(使用myqr库实现)

    今天小编就为大家分享一篇用python生成(动态彩色)二维码的方法(使用myqr库实现),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Tensorflow卷积神经网络实例

    Tensorflow卷积神经网络实例

    这篇文章主要为大家详细介绍了Tensorflow卷积神经网络实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 零基础写python爬虫之使用urllib2组件抓取网页内容

    零基础写python爬虫之使用urllib2组件抓取网页内容

    文章详细介绍了在python2.5环境下,如何使用urllib2这个python自带的组件进行抓取指定网页内容的,整个过程记录的非常的详细,也很简单,有需要的朋友可以参考下,写出自己的python爬虫
    2014-11-11
  • Flask框架中request、请求钩子、上下文用法分析

    Flask框架中request、请求钩子、上下文用法分析

    这篇文章主要介绍了Flask框架中request、请求钩子、上下文用法,结合实例形式分析了flask框架中request、请求钩子及上下文的功能、用法及相关操作注意事项,需要的朋友可以参考下
    2019-07-07
  • Python中的探索性数据分析(功能式)

    Python中的探索性数据分析(功能式)

    这篇文章主要介绍了功能式Python中的探索性数据分析的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Windows下安装Scrapy

    Windows下安装Scrapy

    今天小编就为大家分享一篇关于Windows下安装Scrapy,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Python实现验证码识别

    Python实现验证码识别

    这篇文章主要介绍了Python实现验证码识别的方法,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Python抓取移动App数据使用mitmweb监听请求与响应

    Python抓取移动App数据使用mitmweb监听请求与响应

    这篇文章主要介绍了Python抓取移动App数据使用mitmweb监听请求与响应,mitmproxy控制台方式、mitmdump与Python对接的方式、mitmweb可视化方式,需要的朋友可以参考一下
    2022-01-01
  • python爬取微信公众号文章的方法

    python爬取微信公众号文章的方法

    这篇文章主要为大家详细介绍了python爬取微信公众号文章的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • 日常整理python执行系统命令的常见方法(全)

    日常整理python执行系统命令的常见方法(全)

    本文是小编日常整理的些关于python执行系统命令常见的方法,比较全面,特此通过脚本之家这个平台把此篇文章分享给大家供大家参考
    2015-10-10

最新评论