- 浏览: 544887 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
原文地址:http://cnlox.is-programmer.com/posts/35867.html
赋闲脱产的半年里,自己用C++/Java/Lisp胡乱写了几万行的代码,到了现在的公司,给OpenStack项目贴牛皮藓,反倒是Python用得最多。作为公司里面唯一的Emacser(没准也是 公司里JJ最长的吧,笑),我一直致力于在Emacs平台上折腾出一套顺手的Python开发环境,所幸有些小心得,付诸纸面,以飨大家。
Table of Contents
1 Python.el的选择
1.1 ipython集成
2 Emacs补全:Pymacs和Ropemacs
3 virtualenv
3.1 virtualenvwrapper
3.2 virtualenv.el
4 Miscs
1 Python.el的选择
Emacs的python-mode有两套,一个是Emacs官方提供的python.el,另外一套是Python社区提供的python-mode.el。不过python.el和python-mode.el都有各种各样的小问题,python.el似乎是无法正确处理python的docstring,而python-mode.el的menu项太过繁杂,而且很多menu无法正确工作。这里用到的python.el来自于https://github.com/fgallina/python.el,细节可以参考水木社区的讨论。
安装方法可以参考项目主页的README,我自己针对el-get做了一个recipe,这样以后更新装卸都会方便很多,recipe如下:
?
1
2
3
4
5
(:name python
:website "https://github.com/fgallina/python.el"
:description "improved python.el from Fabián Ezequiel Gallina"
:type github
:pkgname "fgallina/python.el")
不过这个patch并没有被el-get接收,限于时间精力,我没有再去细究el-get撰写recipe的规范。
1.1 ipython集成
交互式的开发是python/ruby/lisp这类动态语言的重要特性,它让程序员从“编码-编译-运行-调试“的程序开发工程链中解放出来,从老旧的批处理是开发过渡到现代的交互式开发。如果你用过slime,你就会知道,交互式的开发不仅仅是一种开发模式,slime也不仅仅是一种工具,而是一种编程的革命。Emacs集成ipython,虽然没有slime那么强大,但是对于提高开发效率还是有莫大的帮助的。幸运的是,fgalling/python.el是支持ipython的。关于fgalling/python.el的参考设置如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(add-to-list 'load-path (expand-file-name
"~/.emacs.d/el-get/python"))
(require 'python)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(setq
python-shell-interpreter "ipython2"
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-module-string-code
"';'.join(module_completion('''%s'''))\n"
python-shell-completion-string-code
"';'.join(get_ipython().Completer.all_completions('''%s'''))\n")
常用快捷键:
C-c C-z: (python-shell-switch-to-shell),切换至ipython解释器
C-c C-c: (python-shell-send-buffer &optional ARG),发送整个buffer内容到ipython解释器运行
2 Emacs补全:Pymacs和Ropemacs
语言补全一直是Vim/Emacs这类上古"IDE"的弱项,每种语言都有自己的补全插件、配置方法和版本差异,而网上资料、特别是中文资料,或是陈旧潦草,或是语焉不详,常常让初学者们不知所措。本文所载内容恐怕两年左右就会过时,诸位看官高贤注意鉴别……
Emacs下的通用补全插件大概就是auto-complete和yasnippet了,前者可以做出基于buffer分词的补全,后者可以基于特定编程语言语法结构的补全。不过基于语义的补全,Emacs+Python下用的是pymacs和ropemacs。需要安装的有
pymacs
rope
ropemacs
ropemode
以上均可通过el-get安装。如若使用过程中出现莫名问题,不要纠缠,有可能是版本问题,无妨试验下用apt-get/pacman/yum安装。我本机上的配置如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;;; pymacs, rope and ropemacs
(add-to-list 'load-path "~/.emacs.d/el-get/pymacs")
(require 'pymacs)
(setq pymacs-load-path '("~/.emacs.d/el-get/rope"
"~/.emacs.d/el-get/ropemacs"))
;; Initialize Pymacs
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
;; Initialize Rope
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)
3 virtualenv
virtualenv是Python的sandbox(沙盒)。那么什么是sandbox呢?
在日常开发中我们常常碰到这样的场景:
需要针对不同的python library做测试(兼容性、性能等)
需要多人共享一台开发机
可是:
并不是所有人都有向系统PYTHONPATH安装python library的权限
我们常常需要同时安装多个不同版本的python library
而virtualenv通过一些脚本,通过软连接和修改环境变量的方式,提供了一个轻量级的虚拟python环境,在这里面个人可以按照自己意愿任意装卸配置library,也可以针对不同版本的library创建不同的virtualenv,方便的很。
3.1 virtualenvwrapper
virtualenv默认是在当前目录下建立一个.venv目录,但是这样有一个问题,就是virtualenv本身的管理很不方便,因为需要记忆不同的.venv的存放位置、具体用途等等。virtualenvwrapper则通过一些python和shell脚本,在virtualenv的基础上建立了一层抽象,实现了对virtualenv本身的统一管理。virtualenvwrapper会默认在$HOME/.virtualenvs目录下创建所有的virtualenv。
virtualenv和virtualenvwrapper均可以通过python pip安装:
?
1
pip install virtualenv virtualenvwrapper
常用命令:
mkvirtualenv venv_name: 建立一个新的virtualenv,
workon venv_name: 切换到venv_name这个virtualenv
3.2 virtualenv.el
virtualenv.el可以配合Emacs集成virtualenv,可以通过el-get安装。virtualenv.el需要virtualenv和virtualenvwrapper。
配置:
?
1
2
3
4
;; virtualenv support
(add-to-list 'load-path (expand-file-name
"~/.emacs.d/el-get/virtualenv"))
(require 'virtualenv)
常用命令:
M-x virtualenv-workon: 切换virtualenv
4 Miscs
一些hook设置:
?
1
2
3
4
5
6
(add-hook 'python-mode-hook
(lambda ()
(ropemacs-mode)
(global-set-key (kbd "RET") 'newline-and-indent)
(auto-fill-mode 1)
(virtualenv-minor-mode 1)))
除了以上,Emacs中和Python开发有关的插件还可以有pylint、pep8、pyflakes等,参考文章:
Configuring Emacs as a Python IDE
Emacs as a powerful Python IDE
Setup Perfect Python Environment In Emacs
My Emacs Python environment
以上,抛砖引玉,希望能够对刚刚接触Linux/Python/Emacs的朋友有些许帮助。
Relative Posts
Announcing oh-my-emacs v0.3
Announcing ac-geiser v0.1
Announcing oh-my-emacs v0.1
Knight Rush——关于编程语言学习的一些思考
走进Lisp的世界——兼谈Emacs下Lisp的开发环境(上)
赋闲脱产的半年里,自己用C++/Java/Lisp胡乱写了几万行的代码,到了现在的公司,给OpenStack项目贴牛皮藓,反倒是Python用得最多。作为公司里面唯一的Emacser(没准也是 公司里JJ最长的吧,笑),我一直致力于在Emacs平台上折腾出一套顺手的Python开发环境,所幸有些小心得,付诸纸面,以飨大家。
Table of Contents
1 Python.el的选择
1.1 ipython集成
2 Emacs补全:Pymacs和Ropemacs
3 virtualenv
3.1 virtualenvwrapper
3.2 virtualenv.el
4 Miscs
1 Python.el的选择
Emacs的python-mode有两套,一个是Emacs官方提供的python.el,另外一套是Python社区提供的python-mode.el。不过python.el和python-mode.el都有各种各样的小问题,python.el似乎是无法正确处理python的docstring,而python-mode.el的menu项太过繁杂,而且很多menu无法正确工作。这里用到的python.el来自于https://github.com/fgallina/python.el,细节可以参考水木社区的讨论。
安装方法可以参考项目主页的README,我自己针对el-get做了一个recipe,这样以后更新装卸都会方便很多,recipe如下:
?
1
2
3
4
5
(:name python
:website "https://github.com/fgallina/python.el"
:description "improved python.el from Fabián Ezequiel Gallina"
:type github
:pkgname "fgallina/python.el")
不过这个patch并没有被el-get接收,限于时间精力,我没有再去细究el-get撰写recipe的规范。
1.1 ipython集成
交互式的开发是python/ruby/lisp这类动态语言的重要特性,它让程序员从“编码-编译-运行-调试“的程序开发工程链中解放出来,从老旧的批处理是开发过渡到现代的交互式开发。如果你用过slime,你就会知道,交互式的开发不仅仅是一种开发模式,slime也不仅仅是一种工具,而是一种编程的革命。Emacs集成ipython,虽然没有slime那么强大,但是对于提高开发效率还是有莫大的帮助的。幸运的是,fgalling/python.el是支持ipython的。关于fgalling/python.el的参考设置如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(add-to-list 'load-path (expand-file-name
"~/.emacs.d/el-get/python"))
(require 'python)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(setq
python-shell-interpreter "ipython2"
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-module-string-code
"';'.join(module_completion('''%s'''))\n"
python-shell-completion-string-code
"';'.join(get_ipython().Completer.all_completions('''%s'''))\n")
常用快捷键:
C-c C-z: (python-shell-switch-to-shell),切换至ipython解释器
C-c C-c: (python-shell-send-buffer &optional ARG),发送整个buffer内容到ipython解释器运行
2 Emacs补全:Pymacs和Ropemacs
语言补全一直是Vim/Emacs这类上古"IDE"的弱项,每种语言都有自己的补全插件、配置方法和版本差异,而网上资料、特别是中文资料,或是陈旧潦草,或是语焉不详,常常让初学者们不知所措。本文所载内容恐怕两年左右就会过时,诸位看官高贤注意鉴别……
Emacs下的通用补全插件大概就是auto-complete和yasnippet了,前者可以做出基于buffer分词的补全,后者可以基于特定编程语言语法结构的补全。不过基于语义的补全,Emacs+Python下用的是pymacs和ropemacs。需要安装的有
pymacs
rope
ropemacs
ropemode
以上均可通过el-get安装。如若使用过程中出现莫名问题,不要纠缠,有可能是版本问题,无妨试验下用apt-get/pacman/yum安装。我本机上的配置如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;;; pymacs, rope and ropemacs
(add-to-list 'load-path "~/.emacs.d/el-get/pymacs")
(require 'pymacs)
(setq pymacs-load-path '("~/.emacs.d/el-get/rope"
"~/.emacs.d/el-get/ropemacs"))
;; Initialize Pymacs
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
;; Initialize Rope
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)
3 virtualenv
virtualenv是Python的sandbox(沙盒)。那么什么是sandbox呢?
在日常开发中我们常常碰到这样的场景:
需要针对不同的python library做测试(兼容性、性能等)
需要多人共享一台开发机
可是:
并不是所有人都有向系统PYTHONPATH安装python library的权限
我们常常需要同时安装多个不同版本的python library
而virtualenv通过一些脚本,通过软连接和修改环境变量的方式,提供了一个轻量级的虚拟python环境,在这里面个人可以按照自己意愿任意装卸配置library,也可以针对不同版本的library创建不同的virtualenv,方便的很。
3.1 virtualenvwrapper
virtualenv默认是在当前目录下建立一个.venv目录,但是这样有一个问题,就是virtualenv本身的管理很不方便,因为需要记忆不同的.venv的存放位置、具体用途等等。virtualenvwrapper则通过一些python和shell脚本,在virtualenv的基础上建立了一层抽象,实现了对virtualenv本身的统一管理。virtualenvwrapper会默认在$HOME/.virtualenvs目录下创建所有的virtualenv。
virtualenv和virtualenvwrapper均可以通过python pip安装:
?
1
pip install virtualenv virtualenvwrapper
常用命令:
mkvirtualenv venv_name: 建立一个新的virtualenv,
workon venv_name: 切换到venv_name这个virtualenv
3.2 virtualenv.el
virtualenv.el可以配合Emacs集成virtualenv,可以通过el-get安装。virtualenv.el需要virtualenv和virtualenvwrapper。
配置:
?
1
2
3
4
;; virtualenv support
(add-to-list 'load-path (expand-file-name
"~/.emacs.d/el-get/virtualenv"))
(require 'virtualenv)
常用命令:
M-x virtualenv-workon: 切换virtualenv
4 Miscs
一些hook设置:
?
1
2
3
4
5
6
(add-hook 'python-mode-hook
(lambda ()
(ropemacs-mode)
(global-set-key (kbd "RET") 'newline-and-indent)
(auto-fill-mode 1)
(virtualenv-minor-mode 1)))
除了以上,Emacs中和Python开发有关的插件还可以有pylint、pep8、pyflakes等,参考文章:
Configuring Emacs as a Python IDE
Emacs as a powerful Python IDE
Setup Perfect Python Environment In Emacs
My Emacs Python environment
以上,抛砖引玉,希望能够对刚刚接触Linux/Python/Emacs的朋友有些许帮助。
Relative Posts
Announcing oh-my-emacs v0.3
Announcing ac-geiser v0.1
Announcing oh-my-emacs v0.1
Knight Rush——关于编程语言学习的一些思考
走进Lisp的世界——兼谈Emacs下Lisp的开发环境(上)
发表评论
-
使用emacs时候,去掉ubuntu的alt键默认功能
2014-12-11 10:35 572原文地址:http://askubuntu.com/quest ... -
学习Emacs系列教程(十):多窗口
2014-12-09 10:07 431原文地址:http://www.cnblogs.com/rob ... -
Emacs 配置文件,包括自动提示,yasnippet和PHP-mod和cscope等
2014-12-04 12:03 1160原文地址:http://outofmemory.cn/code ... -
emacs ide配置
2014-12-04 12:00 481原文地址:http://www.boyunjian.com/d ... -
emacs 常用命令与配置
2014-12-04 11:46 599原文地址:http://www.cnblogs.com/UnG ... -
一起学用Emacs(一):Emacs基本命令
2014-10-24 13:40 584原文地址:http://linux.chinaunix.net ... -
Emacs 中的查找
2014-10-24 09:30 370原文地址:http://emacser.com/ann77/E ... -
Emacs常用命令速查
2014-10-22 10:26 426原文地址:http://www.chinaunix.net/o ... -
在emacs下配置php-mode实现库函数自动补全
2014-10-22 09:56 1452原文地址:http://blog.sina.com.cn/s/ ... -
emacs 中使用etags
2014-10-21 17:28 1038原文地址:http://blog.csdn ... -
慢慢将emacs 配置成极其强大的web IDE开发环境
2014-10-20 13:59 623原文地址:http://www.douban.com/grou ... -
【转载】在emacs下配置php-mode实现库函数自动补全
2014-10-20 10:17 599原文地址:http://blog.sina.com.cn/s/ ... -
Emacs中打造强大的Python IDE
2014-10-20 10:07 810原文地址:http://www.cnblogs.com/cod ... -
emacs插件以及配置 转
2014-10-11 09:55 1374原文地址:http://blog.csdn.net/liang ... -
在 emacs 中使用 bing translate api 实现高效翻译
2014-10-10 11:06 891原文地址:http://emacser.c ... -
使用.emacs.d目录管理Emacs配置文件
2014-10-09 17:39 1547原文地址:http://blog.csdn.net/aka_x ... -
emacs 生存指南
2014-10-09 17:30 587原文地址:http://blog.csdn.net/aka_x ... -
Emacs下配置Java开发环境
2014-10-09 14:35 623原文地址:http://longgue.iteye.com/b ...
相关推荐
Pymacs aims to employ Python as an extension language for Emacs rather than the other way around, and this asymmetry is reflected in some design choices. Within Emacs Lisp code, one may load and use ...
lpy:适用于GNU Emacs的最小Python IDE
为python开发坏境而配置的emacs,下载后直接解压,将原电脑中的.emacs.d备份,用这个文件夹覆盖原有的
emacs-python-environment, 用于 Emacs Lisp的python virtualenv API 用于 Emacs Lisp的 python-virtualenv API链接:存储库( 位于 GitHub )问题跟踪程序( 位于 GitHub )Travis CI MELPA MELPA稳定 Emacs与使
pycoverage.el, emacs对 highighting python 覆盖结果的支持 pycoverage.el一个emacs次要模式,用于报告 python 覆盖率统计 依赖项python覆盖> =4.0安装把像这样的东西放到你(require 'linum)(require 'py
emacs搭建python开发环境(包括一个VIM的perl支持)。
emacs-python工具及配置
Windows下配置Emacs来开发Python 去年在网上偶然的一个机会知道了Emacs的存在,在周围前辈们都在夸赞Sublime好用的时候,喜欢跟大众唱反调的我,突然觉得如果能用Emacs来编代码,也许是个很牛的技能。 但是在看了一...
emacs python 扩展包
emacs配置IDE相关资料,包括代码补全等等。
emacs python-moemacs python-mode 及使用方法de 及使用方法
python emacs ide 相关包,操作方法等等。
elpy, Emacs python 开发环境 Elpy,Emacs Lisp python-环境Elpy是一个Emacs软件包,可以为Emacs带来强大的python 编辑功能。 它组合并配置了一些它的他软件包,这两个软件包都是用,以及 python 编写的。 文档El
关于c c++ java python开发的emacs配置文件
NULL 博文链接:https://goinglw.iteye.com/blog/451434
emacs-jedi, python的自动完成 Jedi.el-- Emacs的python 自动完成链接:文档( 开发) ( 发布版本)屏幕截图配置文件命令常见问题解答故障排除完整概述变更日志文件中的A & ( 带有 emacs-jedi 标记)
minimal-emacs-configuration, python的最小emacs配置 python的最小emacs配置为了让一切正常安装 emacs,git和 python 。pip install jedi epc pylintgit clone 这里存储库使用 emacs -Q ( 。 load装入你的em
Jedi.el-Emacs的Python自动完成 链接: (已) (带有emacs-jedi标签) (在GitHub上) (在GitHub上) 它是什么? Jedi.el是Emacs的Python自动完成包。 它旨在以无损方式帮助您的Python编码。 它还可以帮助您...