emacs python debug_将Emacs打造成强大的Python代码编辑工具

(setq auto-mode-alist

(cons '("//.py$" . python-mode) auto-mode-alist))

(setq interpreter-mode-alist

(cons '("python" . python-mode)

interpreter-mode-alist))

(autoload 'python-mode "python-mode" "Python editing mode." t)

;;; add these lines if you like color-based syntax highlighting

(global-font-lock-mode t)

(setq font-lock-maximum-decoration t)

(set-language-environment 'Chinese-GB)

(set-keyboard-coding-system 'euc-cn)

(set-clipboard-coding-system 'euc-cn)

(set-terminal-coding-system 'euc-cn)

(set-buffer-file-coding-system 'euc-cn)

(set-selection-coding-system 'euc-cn)

(modify-coding-system-alist 'process "*" 'euc-cn)

(setq default-process-coding-system

'(euc-cn . euc-cn))

(setq-default pathname-coding-system 'euc-cn)

3.操作 1).执行:C-c C-c,这样会在新的窗口及缓冲区执行脚本;

2).C-j:以相同的缩进插入新的一行;

3).C-M-a:跳至函数或类首;

4).C-M-e:跳至函数或类尾;

5).C-c C-w:运行PyChecker进行代码检测;

大体的使用方式就是这样的了,另外,还有许多类或函数的模板可以通过快捷键进行,在今后常用的时候会加强了解的。感谢你能看到这里!

安装扩展在Emacs中,通过各种扩展,打造强大的Python IDE环境,包括Snippet工具,智能提示,自动补全,重构工具,调试以及GAE的调试,等等。以下各工具的安装前提是你对Emacs的配置文件有一定的了解,所有相关的el文件都必须放在load_path能够加载的地方。

1. YASnippetsnippet工具,可自定义一些模板,必不可少的好东西!看了下面这个很酷的演示动画就明白了:

http://yasnippet.googlecode.com/files/yasnippet.avi

安装方法:

(require 'yasnippet)

(yas/initialize)

(yas/load-directory "~/.emacs.d/plugins/yasnippet-0.6.1c/snippets")

2. AutoComplete自动完成工具,会像VS里一样,弹出一个列表框让你去选择。

安装方法:

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->(require 'auto-complete)

(require 'auto-complete-config)

(global-auto-complete-mode t)

(setq-default ac-sources '(ac-source-words-in-same-mode-buffers))

(add-hook 'emacs-lisp-mode-hook (lambda () (add-to-list 'ac-sources 'ac-source-symbols)))

(add-hook 'auto-complete-mode-hook (lambda () (add-to-list 'ac-sources 'ac-source-filename)))

(set-face-background 'ac-candidate-face "lightgray")

(set-face-underline 'ac-candidate-face "darkgray")

(set-face-background 'ac-selection-face "steelblue") ;;; 设置比上面截图中更好看的背景颜色

(define-key ac-completing-map "\M-n" 'ac-next) ;;; 列表中通过按M-n来向下移动

(define-key ac-completing-map "\M-p" 'ac-previous)

(setq ac-auto-start 2)

(setq ac-dwim t)

(define-key ac-mode-map (kbd "M-TAB") 'auto-complete)

3. Rope and Ropemacs非常棒的重构工具,比如rename,move,extract method等等。还有非常好用的goto difinition(跳到定义),show documents(显示文档)等等。安装Ropemacs前,必须先安装rope和pymacs 。

rope的安装方法:

python setup.py install

pymacs的安装方法:

python setup.py install

.emacs中:

(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)

Ropmacs的安装方法:

python setup.py install

.emacs中:

(pymacs-load "ropemacs" "rope-")

(setq ropemacs-enable-autoimport t)

4. pycomplete一个更加强大的智能提示工具,比如,输入time.cl 然后按TAB键,会列出time模块所有cl开头的函数名。在调用函数时,还会在mini buffer中提示函数的参数类型。这个东西需要先安装pymacs。

安装方法:

1. 拷贝 python-mode.el and pycomplete.el 到Emacs的load_path中。

2. 拷贝 pycomplete.py 到PYTHONPATH (比如: c:/python25/Lib/site-packages)

3. .emacs中添加:

(require 'pycomplete)

(setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))

(autoload 'python-mode "python-mode" "Python editing mode." t)

(setq interpreter-mode-alist(cons '("python" . python-mode)

interpreter-mode-alist))

5. pdb调试在Emacs中,通过M-x pdb可调出pdb对python代码进行调试。但是发现在Windows系统中,总进入不了调试模式。主要原因有:

(1). windows中,找不到pdb.py位置。需自己制定pdb的路径。可以通过下面的方法设置pdb的路径:

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->;; pdb setup, note the python version

(setq pdb-path 'c:/python25/Lib/pdb.py

gud-pdb-command-name (symbol-name pdb-path))

(defadvice pdb (before gud-query-cmdline activate)

"Provide a better default command line when called interactively."

(interactive

(list (gud-query-cmdline pdb-path

(file-name-nondirectory buffer-file-name)))))

(2). windows中,调用pdb时,未使用python -i 参数。

针对上面两个问题,我的解决办法是,不设置pdb具体路径,M-x pdb 回车后,出现下面命令:

Run pdb (like this): pdb

然后手动修改一下:

Run pdb (like this): python -i -m pdb test.py

这样就搞定了。

6. 如何调试GAE程序GAE是一个Web应用,需要跨线程进行调试,而pdb本身对线程调试支持不好。使用pdb进行线程调试时,只有在需要调试的地方插入下面代码:

import pdb

pdb.set_trace()

然后直接运行被调试代码,而不是通过python pdb来执行,就可以多线程代码进行调试了。

但是Google App Engine这样的Web应用,使用这个方法还是不能调试,和stdin和stdout有关,最后找到一个很好的解决方法:

def set_trace():

import pdb, sys

debugger = pdb.Pdb(stdin=sys.__stdin__,

stdout=sys.__stdout__)

debugger.set_trace(sys._getframe().f_back)

在任何需要调试的地方,调用上面的set_trace()函数。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

相关文章

相关视频

网友评论

文明上网理性发言,请遵守 新闻评论服务协议我要评论

立即提交

专题推荐独孤九贱-php全栈开发教程

全栈 100W+

主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

玉女心经-web前端开发教程

入门 50W+

主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

天龙八部-实战开发教程

实战 80W+

主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

php中文网:公益在线php培训,帮助PHP学习者快速成长!

Copyright 2014-2020 https://www.php.cn/ All Rights Reserved | 苏ICP备2020058653号-1

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值