編輯器和IDE之間的爭論變得陳舊而無聊,因為這是壹個零和遊戲(或零和遊戲),這意味著所有參與者的利益之和為零或為常數,即壹方受益,另壹方將損失。)
我用Emacs已經15年了。我用它來閱讀電子郵件、瀏覽網頁和煮咖啡(難道我們不能做所有的事情嗎?然而,今天我發現通過在工作中使用正確的工具,我可以變得更有效率。
Emacs和Vim等強大的編輯器非常棒。我發現令人困惑的是,壹些編輯器或ide在執行基本操作(如搜索和替換)時非常麻煩,而Vim和Emacs的操作卻恰到好處。
然而,該搜索註入了“作為Python IDE的Vim”或“作為Python的Emacs”
IDE將返回數千個鏈接,這表明人們想要這樣的功能,例如智能完成、代碼導航和項目支持。給妳壹些數據,我最受歡迎的帖子之壹是如何將Emacs配置為Python。
IDE,即使到今天已經三年了。
PyCharm是最受歡迎的Python。
IDE之壹,因為它具有強大的功能。在本文中,我將向您展示如何開始使用PyCharm並快速擁有壹個高效的Python開發環境。我在Mac上使用專業版的PyCharm3.0.2(他們也有壹個開源版本)。我使用的鍵盤映射對默認鍵進行了大量更改(還有Emacs和Vim鍵盤映射)。建議妳參考官方Mac和Windows/
Linux的默認快捷鍵。
初次使用
當妳第壹次啟動PyCharm時,他會問妳想要使用的鍵盤布局和主題。我不喜歡它的Emacs鍵盤映射,所以我使用了默認的Mac OS X鍵盤映射,並定制了我想要的快捷鍵:
如果這是您第壹次使用PyCharm,則沒有什麽可導入的。您可能希望在歡迎屏幕中單擊“配置”來設置壹些基本配置:
我喜歡顯示行程號和方法分隔符(編輯器→外觀→顯示方法分隔符,顯示行號):
此外,我喜歡日曬主題。我按照說明安裝了它,並選擇它作為編輯器的默認主題→顏色和字體。日曬的輕型版本
IntelliJ有壹些奇怪的顏色選擇(例如,它使用灰色作為默認文本,而不是更清晰的黑色),因此我在編輯器中修改了它→顏色&;
字體→常規。我的建議是不要害怕根據自己的喜好改變顏色。如果需要重新安裝PyCharm,您可以導出您的配置。
與其他ide相比,我認為PyCharm在視覺效果上非常幹凈。如果您想要更簡潔的用戶界面,可以隱藏工具欄、工具按鈕、導航欄和狀態欄(在“視圖”菜單上):
Virtualenv和Python解釋器
您可以新建項目文件→文件→新建項目或打開現有項目。
使用文件→打開目錄。
PyCharm支持多種類型的Python項目,如Django、Flask等。在這裏,我將創建壹個簡單的項目來測試pyquery庫(我將選擇“空”
項目)。
您需要告訴PyCharm您想要使用哪個Python解釋器,因為它可以為不同的項目使用不同的解釋器。它將使用這些信息來索引所有可用的庫。壹個好的做法是為每個項目創建壹個虛擬環境。您可以使用現有的virtualenv或從PyCharm創建新的virtual env(設置→項目)。
解釋器→Python解釋器)。
對於這個項目,我將創建壹個新的virtualenv並將其用於所有項目:
您可以從PyCharm快速搜索、閱讀說明和安裝包。在終端上沒有什麽是您不能做的,但是它可以使您在不離開IDE的情況下更容易地搜索軟件包。
有些軟件包可能需要安裝壹段時間,尤其是需要編譯時。PyCharm在後臺運行安裝過程,您可以通過單擊狀態欄來查看安裝過程:
如我們所見,它不僅安裝了pyquery報紙,還安裝了相關包,如lxml(如我們所料):
快捷鍵
PyCharm沒有Vim,但妳只需通過鍵盤就可以做很多事情。您可以在“設置”→“鍵位圖”中設置數十個(如果不是數百個)快捷鍵。我修改了相當多的默認鍵盤映射,因為我喜歡像Control-a這樣的鍵盤映射,
控制-e、控制-k和
默認情況下,大多數情況下在文本框中使用的Control-y快捷鍵不會被設定為“Mac OS”
x“鍵盤映射。您還可以定義鼠標快捷鍵。例如,我使用按住Option鍵點按來更改快速文稿。如果妳是Vim用戶,妳可以試試IdeaVim,它是Vim模擬器的壹個插件。我聽說過這個好東西,但我還沒有機會嘗試它。
我用的是德沃夏克鍵盤布局,但煩人的是壹旦我用錯了快捷鍵,就會出現bug。有人反映過這個問題,法加德布局也反映過。這意味著我必須重新綁定許多快捷方式來避免這個問題。
PyCharm使用功能鍵,例如F1和F2。您可能知道,在Mac上,頂部按鈕大多用作默認的“多媒體”按鈕,它通過按下Fn鍵生效。我們可以在系統偏好設置→鍵盤中交換這種方法。
我希望我可以在不使用Fn鍵的情況下控制音量和更改亮度,但我也喜歡使用功能鍵而不觸摸遠處的Fn鍵(我很懶,我能說什麽呢?)。我使用Palua在“多媒體”和功能鍵之間切換。您可以使用全局鍵進行切換,也可以將Palua配置為在使用特定應用程序時自動切換。我對所有應用程序使用多媒體鍵(默認),並配置Palua對Xcode和PyCharm使用功能鍵。
外部編輯器
PyCharm可以啟動任何外部工具,因此我將其配置為使用Emacs打開當前文件。當妳想用妳喜歡的編輯器(Emacs、Vim、TextMate等)進行壹些快速編輯時,這非常有用。).
進入設置→外部工具,確保沒有選擇“打開控制臺”,然後將路徑插入程序、參數(在這種情況下,我們可以使用FilePath獲取完整的文件名)和工作目錄(Project filedir/filereativedir/)。
您可以將其分配給快捷方式:
現在可以從菜單欄中找到它。
運行代碼和REPL
PyCharm有很多方法可以讓我們運行代碼。我們可以使用舊的打印函數(或聲明語句,取決於您的Python版本),在REPL中導入代碼,將代碼發送到控制臺,使用調試器或在終端上使用IPython。
印出
使用打印來顯示值是壹種有用且廣泛使用的技術,但如果使用不當,可能會導致代碼混亂。
如果已經選擇了要運行的文件,我們可以通過單擊“播放”按鈕或control-r開始運行。
如果沒有選擇要運行的文件,將從上下文菜單中選擇壹個文件,並使用Control-Option-R或右鍵單擊來運行該文件。PyCharm會記住您的選擇,您下次可以繼續使用Control-R。聽起來很復雜,但實際上很簡單。查看手冊了解更多信息。
控制臺和REPL
我最喜歡的方法是在REPL運行代碼。您可以在PyCharm的工具欄中打開Python控制臺,工具→運行Python。
控制臺(我被分配到Control-C)。它將使用IPython(如果可用)(我建議您在virtualenv中安裝IPython)並將當前文件的路徑添加到Python的路徑中。在控制臺上,您可以導入想要照常執行的功能。
控制臺中的完成功能仍然可用:
我們可以像往常壹樣正常使用導入的函數,我們可以使用它嗎?–4輕松切換控制臺的可見性。
在控制臺執行選定的代碼。
如果我想在不編寫正式單元測試的情況下再運行幾行代碼(例如,也許我正在處理數據),我可以將其保存在壹個臨時文件中。我們可以選擇我們想要運行的代碼(通常我只需要使用?-A選擇整個文件)並從上下文菜單中選擇執行
控制臺中的選擇”(或者更好的是,使用鍵盤快捷鍵)。【為了使文章更短,我省略了菜單項中的壹些截圖。
在下面的示例中,title變量在控制臺中可用,因為我們在控制臺中選擇了整個臨時文件來執行:
宏偉的
如果我們能在壹次操作中將整個文件發送到控制臺,那就太好了。幸運的是,我們可以錄制壹個宏。選擇選擇
編輯→宏→開始宏記錄,並按如下方式執行操作
之前(選擇整個文件,將其發送到控制臺,並切換到控制臺)。如您所見,我的宏只有四個操作(我按下向下箭頭鍵取消選擇它):
當您錄制的宏已經在宏菜單中時,您可以為其分配壹個快捷鍵(我使用的是Control-CCControl-E,但由於某些原因,PyCharm只顯示了兩個快捷鍵的壹半)。
試運行測試/調試
許多人喜歡使用調試器來檢查數據。盡管我喜歡使用REPL,但有時調試程序更有效,尤其是在檢查復雜對象時。
PyCharm不允許在空行上設置斷點,因此在這個簡短的示例中,我必須額外添加壹行(我使用print函數,但我本可以使用pass),因為我想在設置headlines變量後停止調試。在實際代碼中,這很少是必要的。
伊維頓
最後,使用IPython運行外部終端並使用壹些功能(如% run和自動過載)沒有任何問題。
搜索命令
由於訂單太多,很容易被淹沒。如果您在Mac上使用PyCharm,您可以像往常壹樣使用幫助→搜索,也可以在任何平臺上使用幫助→查找。
行動。它允許您搜索任何PyCharm命令,包括菜單中沒有的命令。
(Emacs的用戶會註意到這有點類似於Emacs的M-X)。這是壹個非常有用和強大的功能,我壹直在使用它。
代碼完成
代碼完成在PyCharm上是壹流的。默認情況下,當您鍵入以下內容時,PyCharm會給出建議:
由於此功能可能會消耗壹些電能,您可以通過選擇文件→省電模式將其禁用。您仍然可以通過Control-Space顯式使用該功能。
鍵入時,您可以通過鍵入子字符串來縮小建議列表的範圍:
或者,您可以鍵入CammelCaseClasses或function _ names _ with _下劃線的第壹個字母:
如果您鍵入Ctrl-Space壹次,PyCharm將嘗試列出最相關的項目:
如果您再次鍵入Control-Space,它將列出它知道的每個名稱。這可能令人不知所措,但請註意,它在尚未導入的bar.py文件中列出了函數name_of_mother。
但通常您只想在開放緩沖區中完成局部變量的名稱。這個功能很早之前就可以在Emacs和Vim上實現,現在在PyCharm上也可以實現。手冊稱之為嬉皮士。
完成,但實際的命令名稱(即您將在查找操作中找到的名稱)是“循環展開”。
在我的測試中,它甚至適用於文檔字符串。
代碼完成在某些情況下可能不起作用,例如當庫沒有類型提示時。這個StackOverflow頁面建議在PDB中設置斷點,並用dir列出所有可能的屬性。類似的解決方案是在PyCharm中創建壹個斷點並執行壹個表達式——通過單擊調試工具欄中的最後壹個圖標(或使用適當的鍵盤快捷鍵)。在這種情況下,我計算的表達式是“dir(r)”。
訪問文檔
PyCharm有三種訪問文檔的方式:快速定義、快速文檔、外部文檔和參數信息。您可以從“視圖”菜單或各自的快捷方式訪問它們。
快速定義將顯示符號(類、方法、函數等)。)的整個定義(廢話!),當然也包括證件。如果妳只是想快速瀏覽壹下的定義,直接跳到它是非常有用的。
快速文檔將顯示符號的文檔和簽名。
最後,外部文檔和參數信息非常簡單。第壹個在默認瀏覽器中打開文檔,第二個給出函數或方法的參數信息(例如,快速查詢關鍵字參數的名稱很有用)。
外部文檔適用於Python(當然)、PyQt4、PySide、GTK、WX、numpy、SciPy和kivy,您可以在設置→ Python外部文檔中設置外部文檔的路徑。
代碼質量
當您鍵入時,PyCharm將檢查您的代碼是否符合PEP8。它會讓妳知道妳是否有太多的空格或空行等。如果您願意,可以將PyCharm配置為作為外部工具運行pylint。
在源代碼中找到自己的方法
當妳掌握了它的導航命令後,PyCharm開始變得強大。它可以跳轉到類、函數等等。妳能在Mac上使用它嗎?-B還是?-Click跳轉到類、方法、函數和變量的定義,在Windows和Linux上也使用Ctrl-B或Ctrl-Click。
導航到類、文件或符號的機制幾乎是相同的。當您輸入字符串時,您將看到壹個對話框,其中包括對當前項目以外的項目進行匹配篩選的結果。轉到導航菜單或使用相應的鍵盤快捷鍵:
這是壹個典型的類別定義對話框:
您可以輸入名稱的壹部分,包括文件擴展名。例如,如果妳想打開Django項目的壹個JavaScript文件,但妳不記得它的名稱,妳可以搜索“。js”。
這些函數使我們能夠非常快速地瀏覽源代碼。假設我們正在研究Django的源代碼,我們希望看到的是功能實現的過程。我們不知道它的定義,所以我們去導航→Symbo(?-?-O),輸入“render”並選擇第壹個選項(我們可以看到它是在django.shortcuts中定義的)。如果我們隱藏導航欄,我們可以使用導航→跳轉到導航欄(?-write),快速顯示並查看文件位置(django→django→shortcuts.py):
有時,在刪除您不感興趣的部分後完成代碼會更有效率。在下面的例子中,我刪除了相關的JavaScript結果,得到了壹個更簡潔的列表:
PyCharm允許您折疊塊,如類、方法和函數,但您可以創建自己的可折疊區域。在對事物(類、方法、函數等)進行分組時,它很有用。).如果這些模塊可以折疊,它們將使我們能夠專註於代碼的特定區域。您可以導航→自定義。
區域或使用相應的鍵盤快捷鍵來顯示列表文件中的所有區域。不幸的是,沒有辦法列出壹個項目中的所有領域。
單元測試
在運行測試文件之前,我們需要添加壹個新的運行/調試配置。讓我們轉到運行→編輯配置,然後單擊左上角的加號按鈕。然後,我們選擇“Python測試”並開始測試。在這個例子中,我將使用單元測試:
最後,我們需要為這些測試添加文件夾並選擇正確的Python解釋器:
現在,就像我們運行代碼壹樣,我們可以運行我們的測試:通過單擊工具欄上的或選擇運行→運行(Control-?-R)。這將打開壹個對話框,您可以在其中選擇要運行的代碼(您可以運行其他代碼)。您可以進行所有測試或只測試光標。
當您運行測試時,PyCharm會記住您最後的選擇,以便您可以使用Control-R來重復測試。如果您解決了壹個特定的測試情況,並希望多次運行它而不運行其他測試,這將非常有用。您不需要找到您想要運行的測試文件;您可以從任何文件運行測試。您可以通過選擇導航→測試(或相應的熱鍵)來完成代碼測試。
處理多個文件
如您所見,PyCharm為每個文件使用壹個標簽。
要切換到選項卡,我們可以使用命令選擇下壹個選項卡或上壹個選項卡。默認快捷鍵是Control-→和Control-←,但是OS X使用這些鍵,所以讓我將它們重新綁定到Control-?同-EN
和Control- -P(我使用相同的快捷鍵在終端切換標簽)。
選擇標簽更直接的方法是使用導航→文件或查看→最近使用的文件(?-E)並查看→最近
改變的
文件(?-?-E)。最後兩個命令將顯示文件,您可以通過輸入子字符串來縮小選擇範圍。在下面的例子中,我只需要鍵入“?-E“、“s“和“ENTER“鍵輸入scratch.py文件的標簽:
多窗口
PyCharm支持多窗口,雖然不如Emacs,但也足夠了。
默認情況下,沒有分配快捷鍵來處理拆分窗口,因此您必須自己操作。這些是我使用的快捷鍵:
垂直分段,控制
水平分段,控制-H
非分區,控制-cc控制-u
非分割所有權,控制-cc控制-a
轉到下壹個分隔符Control -C Control -N n。
轉到上壹個分隔符,控制-C控制-P p。
移到對面組,控制-C控制-M m。
當有兩個窗格時,拖動標簽更方便。
摘要
PyCharm可以為我們做很多事情。我們已經看到了如何使用virtualenv、定義快捷鍵、使用外部編輯器、運行代碼、定義宏和查找搜索操作命令,它們可以高效地完成代碼、訪問文檔、瀏覽源代碼、運行單元測試以及處理多個文件和分割窗口。
而這些只是表面文章。我們還沒有談到編輯、版本控制、插件、調試(本地和遠程)、模板、使用捆綁的TextMate、網絡開發等等。
我建議您查看PyCharm的官方文檔,包括快速入門指南和在線幫助。此外,Andrew Brookins從Vim用戶的角度寫了壹篇很好的PyCharm評論。我推薦妳閱讀它,即使妳不使用Vim。