最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

將Emacs打造成強大的Python代碼編輯工具

 更新時間:2015年11月20日 14:23:35   作者:CoderZh  
這篇文章主要介紹了將Emacs打造成強大的Python代碼編輯工具的方法,人們常說Vim是編輯器之神而Emacs是神的編輯器:)需要的朋友可以參考下

基本配置

Emacs本身提供了python-mode,輸入M-x python-mode,就可以進入python模式。相應地,會在菜單欄出現(xiàn)Python菜單。當然,一般來講,如果是.py文件打開的話,也會自動進入該模式。
        不過,默認的python模式功能上面用起來還是有點弱,而且許多地方做的并不好,最好下載第三方的python模式。python-mode是一個開源項目,可以在https://launchpad.net/python-mode進行下載。
1.安裝
        1).安裝prog-modes: 

aptitude install prolog-el

        2).下載python-mode.el文件在項目主頁上面。
        3).編譯:

C-x C-f /path/to/python-mode.el RET
        M-x byte-compile-file RET

        4).在.emacs中加入python-mode.el路徑:

    (setq load-path (cons "/dir/of/python-mode/" load-path))

        檢測擴展是否加載路徑,測試方法:M-x locate-library RET python-mode RET
2.配置.emacs文件

(setq auto-mode-alist

 (cons '("http://.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).執(zhí)行:C-c C-c,這樣會在新的窗口及緩沖區(qū)執(zhí)行腳本;
      2).C-j:以相同的縮進插入新的一行;
      3).C-M-a:跳至函數(shù)或類首;
      4).C-M-e:跳至函數(shù)或類尾;
      5).C-c C-w:運行PyChecker進行代碼檢測;
大體的使用方式就是這樣的了,另外,還有許多類或函數(shù)的模板可以通過快捷鍵進行,在今后常用的時候會加強了解的。感謝你能看到這里!

安裝擴展
在Emacs中,通過各種擴展,打造強大的Python IDE環(huán)境,包括Snippet工具,智能提示,自動補全,重構(gòu)工具,調(diào)試以及GAE的調(diào)試,等等。以下各工具的安裝前提是你對Emacs的配置文件有一定的了解,所有相關的el文件都必須放在load_path能夠加載的地方。

1. YASnippet
snippet工具,可自定義一些模板,必不可少的好東西!看了下面這個很酷的演示動畫就明白了:
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里一樣,彈出一個列表框讓你去選擇。

20151120142324649.png (414×309)

安裝方法:

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
非常棒的重構(gòu)工具,比如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開頭的函數(shù)名。在調(diào)用函數(shù)時,還會在mini buffer中提示函數(shù)的參數(shù)類型。這個東西需要先安裝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調(diào)試
在Emacs中,通過M-x pdb可調(diào)出pdb對python代碼進行調(diào)試。但是發(fā)現(xiàn)在Windows系統(tǒng)中,總進入不了調(diào)試模式。主要原因有:

(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中,調(diào)用pdb時,未使用python -i 參數(shù)。

針對上面兩個問題,我的解決辦法是,不設置pdb具體路徑,M-x pdb 回車后,出現(xiàn)下面命令:

Run pdb (like this): pdb 

然后手動修改一下:

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

這樣就搞定了。

6. 如何調(diào)試GAE程序
GAE是一個Web應用,需要跨線程進行調(diào)試,而pdb本身對線程調(diào)試支持不好。使用pdb進行線程調(diào)試時,只有在需要調(diào)試的地方插入下面代碼:

import pdb
pdb.set_trace()

然后直接運行被調(diào)試代碼,而不是通過python pdb來執(zhí)行,就可以多線程代碼進行調(diào)試了。

但是Google App Engine這樣的Web應用,使用這個方法還是不能調(diào)試,和stdin和stdout有關,最后找到一個很好的解決方法:

def set_trace():
  import pdb, sys
  debugger = pdb.Pdb(stdin=sys.__stdin__,
    stdout=sys.__stdout__)
  debugger.set_trace(sys._getframe().f_back)

在任何需要調(diào)試的地方,調(diào)用上面的set_trace()函數(shù)。

相關文章

  • 利用Python第三方庫實現(xiàn)預測NBA比賽結(jié)果

    利用Python第三方庫實現(xiàn)預測NBA比賽結(jié)果

    今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著利用Python實現(xiàn)預測NBA比賽結(jié)果展開,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • pycharm 配置遠程解釋器的方法

    pycharm 配置遠程解釋器的方法

    今天小編就為大家分享一篇pycharm 配置遠程解釋器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python2.x與3​​.x版本有哪些區(qū)別

    Python2.x與3​​.x版本有哪些區(qū)別

    這篇文章主要介紹了Python2.x與3​​.x版本有哪些區(qū)別,文中講解非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Django記錄操作日志與LogEntry的使用詳解

    Django記錄操作日志與LogEntry的使用詳解

    我們既知道如何記錄變更日志,也知道如何獲取變更日志,那么如何才能夠在admin后臺方便地查看操作日志呢?這篇文章主要給大家介紹了關于Django記錄操作日志與LogEntry使用的相關資料,需要的朋友可以參考下
    2022-01-01
  • Python使用Pandas庫實現(xiàn)MySQL數(shù)據(jù)庫的讀寫

    Python使用Pandas庫實現(xiàn)MySQL數(shù)據(jù)庫的讀寫

    這篇文章主要介紹了Python使用Pandas庫實現(xiàn)MySQL數(shù)據(jù)庫的讀寫 ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 詳解Python3.6安裝psutil模塊和功能簡介

    詳解Python3.6安裝psutil模塊和功能簡介

    這篇文章主要介紹了詳解Python3.6安裝psutil模塊和功能簡介,詳細的介紹了安裝psutil模塊和該模塊的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Python繪制3D曲面圖的示例代碼

    Python繪制3D曲面圖的示例代碼

    Python提供了多種庫和工具,使得創(chuàng)建和定制3D曲面圖變得簡單,本文將介紹如何使用Matplotlib和mpl_toolkits.mplot3d庫繪制3D曲面圖,感興趣的可以了解下
    2024-04-04
  • python 測試實現(xiàn)方法

    python 測試實現(xiàn)方法

    使用python進行測試也足夠簡明了
    2008-12-12
  • Python Web框架Tornado運行和部署

    Python Web框架Tornado運行和部署

    這篇文章主要為大家詳細介紹了Python Web框架Tornado運行和部署的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • python中uuid模塊實例淺析

    python中uuid模塊實例淺析

    在本篇文章里小編給大家整理了一篇關于python中uuid模塊實例淺析內(nèi)容,有需要的朋友們可以學習下。
    2020-12-12

最新評論

永城市| 阳新县| 建平县| 光山县| 长乐市| 四会市| 裕民县| 绥化市| 张掖市| 普兰店市| 高邑县| 平邑县| 巴塘县| 名山县| 甘泉县| 博客| 枣阳市| 阳西县| 大足县| 宜州市| 柘城县| 赤城县| 宝应县| 游戏| 铜川市| 舞阳县| 七台河市| 堆龙德庆县| 漳浦县| 临汾市| 河源市| 留坝县| 大同市| 湘乡市| 策勒县| 舞阳县| 舞钢市| 通州区| 禹城市| 隆尧县| 永定县|