應用於python的vim配置點滴
python是我最喜歡的程式語言,而vim也是我最常用的編輯器,所以更好的配置vim來編輯python源程式是很有必要的。下面談談偶學來的一點配置技巧。(by gashero)以下的大部分配置都是通過修改_vimrc檔案來實現的,在windows下它存在於vim的安裝目錄。
1、快捷呼叫使用的環境變數
我習慣於把vim的可執行檔案路徑新增到path環境變數,這樣平時再控制台下程式設計的時候可以很方便的啟動vim。另外,vim使用的檔名還是略微長了一點。所以我一般將gvim.exe複製後改名為gi.exe。將vim.exe複製後改名為vi.exe。(by gashero)這樣直接在控制台下執行gi和vi就可以分別啟動vim的gui版本和console版本了。
2、在當前路徑啟動控制台
很多時候需要在控制台下除錯程式需要在當前路徑啟動乙個cmd視窗,而有些路徑相當的深或者含有大量中文字元的路徑讓我們很惱火。所以可以寫如下乙個簡單的批處理檔案來在當前資料夾下啟動cmd視窗。
@echo off
cmd .
儲存為cmdhere.bat。這樣將cmdhere.bat複製到想要的資料夾,直接雙擊這個批處理檔案就可以開啟想要的cmd視窗了,而且當前路徑也是所在資料夾的路徑,非常的方便。
3、關閉備份
安裝後的vim自動是具備備份功能的,一旦乙個檔案被修改就會生成~filename的備份檔案。儘管對發生錯誤修改時的恢復有用,但是偶還是很不爽。所以關掉它才比較符合偶的習慣。
在_vimrc檔案末尾新增
set nobackup
即可。
4、自動開啟行號
對程式設計的人來說行號實在是太重要的,因為很多時候除錯中的錯誤定位就是需要行號的。在vim下直接輸入:set nu可以開啟行號功能,但是對於習慣於每次都開啟行號功能的人來說,還是自動一些為好。編輯_vimrc檔案,在末尾新增
set nu
即可。
5、執行python指令碼的鍵盤對映
可以在vim下按下乙個快捷鍵來直接執行當前的python指令碼。如下的設定是使用f12鍵,且環境變數中已經新增了python.exe的情況。具體習慣和路徑可以自己修改。這一行新增到_vimrc檔案中。
map :!python.exe %
這樣就可以編輯python指令碼時,隨時按下f12,再按下回車鍵來執行當前指令碼。這裡的執行時還有乙個很貼心的功能,就是對於控制台指令碼,執行後並不是直接退出,而是請求按下任意鍵後才退出。
6、使用ctags功能
:!ctags -r
這樣可以在當前路徑下建立乙個tags檔案,然後就可以在vim中使用跳轉功能了。其中的-r選項是遞迴搜尋子目錄下的相關符號。所謂跳轉就是可以隨時轉到自己想要的函式、型別、結構體、類等等的定義處。比如游標處於任意位置時可以普通模式下輸入
:ta func_name
就可以直接將游標定位到func_name函式處。當然,其他的命名也可以使用這種方法進行快速定位。另外就是可以在游標指向乙個函式名時按下ctrl+],馬上跳轉到這個函式的定義。在跳轉到定義位置之後,可以按下ctrl+o快速返回原來的編輯位置。
需要明確以下ctags和tags的區別。ctags是乙個程式用於生成tags檔案。tags檔案是當前目錄下所有原始檔的標籤鏈結檔案。在乙個沒有ctags的vim中只是無法生成新的tags檔案,但是已有的tags檔案仍然可以使用。
如果tags檔案不再當前目錄下則用
:set tags=filename
來指定。
7、開啟**摺疊
8、開啟taglist功能
:tlist
另外至今還沒有找到預設開啟taglist的方法,哪位知道麻煩指教一下。
python應用於網路 python應用於網路通訊
專案需要用到採用python實現維護測試工具,測試物件是linux裝置,需要在pc端採用python獲取linux裝置相關資訊 一 採用udp獲取普通資訊 udpserver socket af inet,sock dgram udpserver.bind ip,port data,client a...
要將PYTHON應用於工作啦
import time import sysimport optparse 操作 和同事名對應的檔案 opfile op name.txt 定義問題總數 list count sum 0 evaluation 十分滿意 limit time 120name dict name list limit ...
bitmap應用於排序
這種方法只適合 資料不重複,已知資料範圍 的情況來自於 程式設計珠璣 所謂的bit map就是用乙個bit位來標記某個元素對應的value,而key即是該元素。由於採用了bit為單位來儲存資料,因此在 儲存空間方面,可以大大節省。如果說了這麼多還沒明白什麼是bit map,那麼我們來看乙個具體的例子...