給Python加上自動補全功能
- 2020 年 1 月 8 日
- 筆記
最近在學習deeplearning, 把理論看了一遍後,準備開始用TensorFlow做開發。當然了,我們現在需要用到Python了。習慣了自動補全功能,還是想在Python下可以自動補全的,看了很多的帖子,http://blog.csdn.net/robertsong2004/article/details/48165557,確實可以自動補全了。
但是發現了每次運行完Python後,exit()退出Python環境後,發現就進不去Python了,呵呵了,仔細看一下發現,history的命令也要加入到startup文件中,這不是很蛋疼,不能每次都要清理裡面的exit()歷史記錄,所以進入裡面發現,historyfile = os.path.join(os.environ['HOME'],'.pythonstartup') ,這句話把history的命令添加到該文件末尾,問題就出在這裡了,所以,把這個文件改了就OK了,history文件單獨建立一個history文件,在~下vim .pythonhistory, 然後把原來的語句改為:
history_file = os.path.join(os.environ["HOME"],".pythonhistory") ,其他都不變,這樣可以了。最後原來的帖子變為:
- # python startup file
- import readline
- import rlcompleter
- import atexit
- import os
- #tab completion
- readline.parse_and_bind('tab: complete')
- #history file
- historyfile = os.path.join(os.environ['HOME'],'.pythonhistory')
- try:
- readline.read_history_file(historyfile)
- except:
- pass
- atexit.register(readline.write_history_file,historyfile)
- del os,historyfile,readline,rlcompleter
下面記錄一下詳細過程:
1. cd ~
2. vim .pythonstartup
複製上面的程式碼到該文件中,保存退出(:wq)
3. vim .pythonhistory
新建history文件: 繼續保存退出(:wq)
4. vim .bashrc
在其末尾加上:export PYTHONSTARTUP="/home/xxxx/.pythonstartup" (最好絕對路徑,xxxx對應你的用戶名)
5. source .bashrc
source一下.bashrc文件就OK了

自動補全效果還是可以的,不過還是有些不完美的地方。
比如想要自動補全tensorflow,這個功能還是不可以實現的。用ipython就非常方便,
另外,我們經常會ftp到伺服器上開發,在shell下編輯Python文件的話,還是少不了vim編輯文件,這時候,我們也要在編輯文件的時候需要自動補全,這時候就需要一個字典了,可以參考http://www.jb51.net/article/58009.htm這個,我測試過可以應用,不過字典中沒有tensorflow的東西,需要自己添加,後面我會慢慢解決這個問題。

工欲善其事必先利其器,環境這一塊先到這裡了,後面再慢慢記錄。當然了,希望尋找一些志同道合的一起學習tensorflow。
2017-5-2 續:
vim下安裝TensorFlow支援
其實只需要一個命令:
python pydiction.py tensorflow
不過一定要注意,要把當前文件夾定位到pydiction.py文件所在的位置:~/.vim/pydiction
然後你會發現生成了新的字典文件,查找一下TensorFlow,就發現加入了好多

另外一個要注意的地方.vimrc裡面的字典路徑是在tools文件夾下,這裡只需要把新生成的字典文件copy到tools文件夾下覆蓋完成即可了。(cp命令,自行查找如何應用)
測試一下效果:

是不是感覺棒棒噠
這裡面有個小技巧,你在import as之後,由於字典中沒有tf關鍵詞,我這裡把所有的TensorFlow的命令全部複製添加到了文件尾,然後用tf批量替換tensorflow即可。注意不要全局替換,用CTRL+v的模式替換
更新2017-11-15
vim配置:https://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html,這是一個非常好用的配置文件,但是帶來一個問題就是python沒有辦法補全了,解決方法非常簡單:
"Pydiction let g:pydiction_location =『xxxxxxxx』
這裡還是上面配置好的字典位置,這樣看一下程式碼如何
有沒有非常炫酷的樣子
2019年9-3日更新
現在有個非常好用的vim配置文件,可以一鍵完成自動補全、語法高亮、文件管理、blabla等的功能,推薦用vimplus這個,現在用了半年了,非常好用,地址直通車:https://github.com/chxuan/vimplus
一切按照git說明來做,親測有效。
如果要在伺服器端進行配置,會出現沒有root許可權的問題,需要自己手動安裝ctag這個軟體,expert執行文件到PATH,伺服器端也可以完美運行。如有什麼問題,可以評論交流。