當前位置:首頁 » 編程語言 » vimforpython3

vimforpython3

發布時間: 2023-05-18 13:21:30

㈠ 如何啟用vim自帶python自動補全功能

Python omni complete, 安裝啟用之後,是這個樣子的:
1. 如何安裝 'Python omni complete' plugin.
如果是VIM7.3,不需要再下載 pythoncomplete.vim 這個插件,因為安裝時自帶了。
但是, 必須保證編譯安裝 VIM 的時候啟用了 Python 特性, 即
./configure --with-features=huge --enable-pythoninterp=yes
因為,pythoncomplete.vim 是用 python 寫的。
我們可以在vim autoload 目錄下看到
ls -la /usr/local/share/vim/vim73/autoload/
drwxr-xr-x 3 root root 4096 2011-02-16 16:29 .
drwxr-xr-x 17 root root 4096 2011-02-16 16:29 ..
-rw-r--r-- 1 root root 3669 2011-02-16 16:29 adacomplete.vim
-rw-r--r-- 1 root root 22439 2011-02-16 16:29 ada.vim
-rw-r--r-- 1 root root 16938 2011-02-16 16:29 ccomplete.vim
-rw-r--r-- 1 root root 15922 2011-02-16 16:29 csscomplete.vim
-rw-r--r-- 1 root root 2998 2011-02-16 16:29 decada.vim
-rw-r--r-- 1 root root 23804 2011-02-16 16:29 getscript.vim
-rw-r--r-- 1 root root 5331 2011-02-16 16:29 gnat.vim
-rw-r--r-- 1 root root 6093 2011-02-16 16:29 gzip.vim
-rw-r--r-- 1 root root 24253 2011-02-16 16:29 htmlcomplete.vim
-rw-r--r-- 1 root root 27028 2011-02-16 16:29 javascriptcomplete.vim
-rw-r--r-- 1 root root 10130 2011-02-16 16:29 netrwFileHandlers.vim
-rw-r--r-- 1 root root 8684 2011-02-16 16:29 netrwSettings.vim
-rw-r--r-- 1 root root 338720 2011-02-16 16:29 netrw.vim
-rw-r--r-- 1 root root 1232 2011-02-16 16:29 paste.vim
-rw-r--r-- 1 root root 293714 2011-02-16 16:29 phpcomplete.vim
-rw-r--r-- 1 root root 21507 2011-02-16 16:29 python3complete.vim
-rw-r--r-- 1 root root 22019 2011-02-16 16:29 pythoncomplete.vim
-rw-r--r-- 1 root root 773 2011-02-16 16:29 README.txt
-rw-r--r-- 1 root root 23443 2011-02-16 16:29 rubycomplete.vim
-rw-r--r-- 1 root root 6184 2011-02-16 16:29 spellfile.vim
-rw-r--r-- 1 root root 30201 2011-02-16 16:29 sqlcomplete.vim
-rw-r--r-- 1 root root 16839 2011-02-16 16:29 syntaxcomplete.vim
-rw-r--r-- 1 root root 21145 2011-02-16 16:29 tar.vim
-rw-r--r-- 1 root root 12646 2011-02-16 16:29 tohtml.vim
-rw-r--r-- 1 root root 23031 2011-02-16 16:29 vimball.vim
drwxr-xr-x 2 root root 4096 2011-02-16 16:29 xml
-rw-r--r-- 1 root root 14933 2011-02-16 16:29 xmlcomplete.vim
-rw-r--r-- 1 root root 11906 2011-02-16 16:29 zip.vim
如果沒有,則下載 pythoncomplete.vim, 並復制到 ~/.vim/autoload/ 目錄下。
2. 如何啟用自動補全
在 ~/.vimrc 中添加這樣兩行
[plain] view plain
filetype plugin on
autocmd FileType python set omnifunc=pythoncomplete#Complete
此時,我們就完成了安裝及配置工作。
3. 如何使用自動補全
例如我們輸入
[python] view plain 在CODE上查看代碼片派生到我的代碼片
import sys
print sys.
此時, 按下 Ctrl+x, Ctrl+o, 就能看到提示列表框,以及對應的 docstring.
Ctrl+n, Ctrl+p 來上下選擇
ESC 來取消提示框。
4. 不足之處
a. 屬性沒有 docstring, 只有函數有。
:( 這個似乎不好搞,因為屬性似乎沒有 docstring 這個概念。
b. 在沒有下拉框的情況下,沒有 docstring.
好在, pythoncomplete.vim 是 python 寫的,有空大家可以自己完善一下。

㈡ 如何在VIM中指定Python解釋器版本

你可能不想(或至少不應該) code> python3 作為vim的默認python解釋器,因為你的插件的一些(大部分)將變得不兼容,例如 YouCompleteMe 和 clang_complete 本身,因為他們沒有 python3 支持。通常,支持 python3 的插件可以讓您決定是否要通過添加到 .vimrc

let g:syntastic_python_python_exec ='python3'

解決方案: :echo has('python')顯示 0 實際上告訴你vim可能不是用 python2 編譯的。所以首先檢查 vim --version 的輸出,你應該能夠看到你的編譯器構建vim的共享庫列表。你看到以下? (例如對於python 2.7):

-L / usr / lib / python2.7 / config-x86_64-linux-gnu - lpython2.7

如果沒有(或者如果你看到 -lpython2.x 和 -lpython3.x 我建議你從源代碼編譯vim,具體鏈接到 -lpython2.x

sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common

clone vim mercurial

hg clone htvim/
cd vim

,然後使用以下標志運行 ./ configure :

./configure --with-features = huge \
--enable-cscope \
--enable-pythoninterp \
--enable-largefile \
--with-python-config-dir = / usr / lib / python2.7 / config

您還可能想要鏈接 ruby 和 lua 如果需要,然後最後運行

make build
make install

這里是shell腳本,將自動執行整個過程為你。這可能有點過分,但我認為這是你應該如何處理這不與運行與您的未來包的兼容性問題。

㈢ vim不支持python,是不是缺少什麼東西

問題可能來自兩方面: vim 沒有把 python 支持特性編譯進來;或者編譯支持的 python 與本地安裝的版本不兼容。

1. 只有編譯的時候帶了 python 支持的 vim 才能使用相關的功能。要想知道 vim 是否帶了編譯時的支持,使用:

:version

看有沒有 +python 之類的字樣。如果是 + 號,表示支持,如果是 - 號就是不支持(像我截圖中標出的 postscript 就是 -)。python 代表 python 2,python3 表示 python 3 的支持情況。

pythonthreedll=python35.dll

這樣你的電腦里必需要安裝 python 3.5 才可以配合 vim 使用。注意一定要是標准版的才行,定製版(比如 Anaconda)是不行的。

vim 和 python 有相當深入的交互。除了簡單的交互執行 python 語句和返回結果外,vim 的內部的數據結構(比如緩沖區、窗口之類的)和 vim-script 腳本的執行介面也全對 python 開放。因此對 python 各版本支持的靈活性就要差一些,需要在編譯階段就確定。

如果想兼容你電腦上已有的 python,需要在你的電腦上重新編譯 vim,這通常比較困難。在你的電腦上配置兩套 python 環境要相對容易很多。或者如果你對 python 的要求並不高的話,就用 vim 支持的那版也行。

以上的回答假定您已經對 python 有一定的了解,並且可以自己正確的安裝和配置 python 的環境。如果拋開 vim,python 都不能正確執行,那麼需要先解決 python 的安裝和配置問題。

㈣ vim 怎樣新建python包及方法

1.先創建一個正常普通的文件夾a
2.然後進入文件夾,在裡面用vim創建名字為__init__.py的空文件,文件裡面什麼都不用寫
3.你再在a文件夾下,創建和編寫你要執行代碼的py文件b.py就可以了
4.此時a就可看做python的一個包了,如果你要執行代碼文件就進入a目錄,然後再a目錄下運行python b.py就行
5.如果你要外部調用a,那麼你要確保從你執行python命令的目錄起,一直到a這個目錄那裡,每一個層級下都要有一個__init__.py文件,創建方法同2

㈤ 打算用vim寫Python 各位指點下

保存在當前文件夾下,
那你就cd到桌面那個文件夾下再vim。

㈥ 如何使vim下開發python調試更方便

首先得確認操作系統,如果是Linux的話,vim編譯的時候會打開python特性,Windows的話需要自己重新編譯。

其次確保系統已經有Python環境。

最後可以在cmdline下使用
python2:py print "Hello"
python3:py print("Hello")
來查看是否配置成功。

之後就可以使用omni補全import導入的關鍵詞等等。另外可以安裝個自動補全插件來自動補全。

㈦ 如何安裝Python 3中,並設置本地編程環境在CentOS 7

介紹

Python是一種多功能編程語言,可以用於許多不同的編程項目。開發團隊於1991年首先發表了一個名叫靈感來源於英國喜劇組織Monty Python的名字,他希望Python能夠成為一種有趣的語言。對於初學者和經驗豐富的開發人員來說,Python易於設置,並且以相對直接的方式編寫,並提供對錯誤的即時反饋。Python 3是該語言的最新版本,被認為是Python的未來。

本教程將指導您在本地CentOS 7機器上安裝Python 3,並通過命令行設置編程環境。

先決條件

您將需要一台連接到互聯網的非root超級用戶帳戶的CentOS 7計算機。

第1步 - 准備系統

我們將通過命令行來完成這個安裝。如果您的CentOS 7計算機啟動了圖形用戶界面(GUI)桌面,則可以通過菜單訪問命令行界面,方法是導航到應用程序,然後導航到實用程序,然後單擊終端。如果您需要更多關於終端的指導,請務必閱讀文章「Linux終端簡介」。

在開始安裝之前,讓我們確保更新默認的系統應用程序以獲得最新版本。

我們將使用開源包管理工具yum,代表Yellowdog Updater Modified。這是一個常用的工具,用於在基於Red Hat的Linux系統(如CentOS)上處理軟體包。它可以讓你輕松地安裝和更新,以及刪除您的計算機上的軟體包。

我們首先通過運行這個命令來確保yum是最新的:(更新系統是可選執行)

  • sudo yum -y update

  • 該-y標志用於警告系統,我們知道我們正在進行更改,防止終端提示我們確認。

    接下來,我們將安裝yum-utils,這是一個擴展和補充yum的實用程序和插件的集合:(也可以不安裝)


  • sudo yum -y install yum-utils

  • 最後,我們將安裝CentOS開發工具,這些工具用於允許您從源代碼構建和編譯軟體:(也可以不安裝)


  • sudo yum -y groupinstall development

  • 一旦安裝好了,我們的安裝就緒了,我們可以繼續安裝Python 3。

    第2步 - 安裝和設置Python 3

    CentOS源自RHEL(紅帽企業Linux),其穩定性是其主要焦點。正因為如此,經過測試和穩定版本的應用程序是最常見的系統和可下載的軟體包,所以在CentOS上,你只能找到Python 2。

    因為我們想要安裝Python 3的最新上游穩定版本,我們需要安裝IUS,代表Inline with Upstream Stable。作為一個社區項目,IUS為選擇軟體的一些更新版本提供了紅帽軟體包管理器(RPM)軟體包。

    要安裝IUS,先要安裝epel-release7包 我們來安裝它yum:

    sudo yum -y install epel-release-7-11.noarch.rpm


  • sudo yum -y install ius-release.rpm

  • 一旦IUS完成安裝,我們可以安裝最新版本的Python:


  • sudo yum -y install python36u

  • 當Python的安裝過程完成後,我們可以通過以下python3.6命令檢查其安裝是否成功:


  • python3.6 -V

  • 使用成功安裝的Python 3.6版本,我們將收到以下輸出:


    Output

  • Python3.6.1
  • 接下來我們將安裝pip,它將管理Python的軟體包:


  • sudo yum -y install python36u-pip

  • 一個用於Python的工具,我們將使用pip來安裝和管理我們可能想在我們的開發項目中使用的編程包。你可以通過鍵入以下命令來安裝Python包


  • sudo pip3.6 install package_name

  • 在這里,package_name可以參考任何Python包或者庫,比如用於Web開發的Django或者用於科學計算的NumPy。所以如果你想安裝NumPy,你可以使用命令來完成pip3.6 install numpy。

    最後,我們將需要安裝IUS軟體包python36u-devel,它為我們提供了Python 3開發所需的庫和頭文件:


  • sudo yum -y install python36u-devel

  • 該VENV模塊將用於建立一個虛擬的環境,為我們下一步的發展項目。

    第3步 - 建立一個虛擬環境

    現在,我們已經安裝了Python,並且已經安裝好了系統,我們可以繼續使用venv創建我們的編程環境。

    虛擬環境使您能夠在計算機上為Python項目設置一個獨立的空間,確保您的每個項目都擁有自己的一組依賴項,不會中斷任何其他項目。

    建立一個編程環境使我們能夠更好地控制我們的Python項目以及如何處理不同版本的包。使用第三方軟體包時,這一點尤為重要。

    您可以根據需要設置盡可能多的Python編程環境。每個環境基本上都是您的計算機中的一個目錄或文件夾,其中包含一些腳本以使其充當環境。

    選擇你想把你的Python編程環境放入哪個目錄,或者創建一個新目錄mkdir,如下所示:


  • mkdir environments

  • cd environments

  • 一旦進入了你想要環境所在的目錄,就可以通過運行以下命令來創建一個環境:


  • python3.6 -m venv my_env

  • 本質上,這個命令會創建一個新的目錄(在本例中稱為my_env),其中包含一些我們可以通過ls命令看到的項目:

  • bin include lib lib64 pyvenv.cfg

  • 這些文件一起工作,以確保您的項目與本地計算機的更廣泛的上下文隔離,以便系統文件和項目文件不會混合。這是版本控制的好習慣,並確保您的每個項目都可以訪問它所需的特定軟體包。

    要使用這個環境,你需要激活它,你可以通過輸入以下命令來調用目錄中的激活腳本bin:


  • source my_env/bin/activate

  • 您的提示現在將以您的環境的名稱作為前綴,在這種情況下,它被稱為my_env:


  • 這個前綴讓我們知道my_env環境當前是活動的,這意味著當我們在這里創建程序時,他們將只使用這個特定環境的設置和包。

    注意:在虛擬環境中,您可以使用命令python而不是python3.6,而pip不是pip3.6如果您願意的話。如果您在環境外使用Python 3,則需要專門使用python3.6和pip3.6命令。

    遵循這些步驟之後,即可使用您的虛擬環境。

    第4步 - 創建一個簡單的程序

    現在我們已經建立了虛擬環境,我們來創建一個簡單的「Hello,World!」程序。這將確保我們的環境正在工作,並且使我們有機會更熟悉Python,如果我們還沒有。

    為此,我們將打開一個名為vim的命令行文本編輯器,並創建一個新文件:


  • vi hello.py

  • 一旦文本文件在我們的終端窗口打開,我們將不得不鍵入i進入插入模式,然後我們可以寫我們的第一個程序:

  • print("Hello, World!")

  • 現在按下ESC退出插入模式。接下來,輸入:x然後ENTER保存並退出文件。

    我們現在准備好運行我們的程序:


  • python hello.py

  • 剛剛創建的hello.py程序應該使終端產生以下輸出:


    Output

  • Hello, World!
  • 要離開環境,只需鍵入命令,deactivate然後返回到原始目錄。

    結論

    恭喜!此時,您已經在本地CentOS 7機器上安裝了Python 3編程環境,並且可以開始一個編碼項目!

㈧ 為啥vim和gvim對python的支持不一樣

有人在realpython.com宣揚Sublime Text 3。作為公司的資深開發人員(呃,也就是老古董),我覺得有義務介紹一個真正的Python開發環境給大家——我要推薦的當然就是Vim了。不錯,Vim編輯器無處不在,速度快,從來不會崩潰。並且,它能做任何事情!
不過,不利之處也有,就是Vim配置起來很讓人頭疼。但是,別擔心,本文將告訴你如何配置一個強大的Vim環境,專門用於天天搗鼓Python開發。
下面是最終效果預覽。
如果想充分地利用好本文,你應該對如何使用Vim和它的命令模式至少有一個基本的了解。如果你是初學者,你可以通過vim-adventure或者openvim網站學習。在繼續閱讀本文之前,請花點時間瀏覽那兩個網站的內容。
安裝
因為許多Unix衍生系統已經預裝了Vim,我們首先要確認編輯器是否成功安裝:
vim --version
如果已經安裝了,你應該看到類似下面的文字:
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov 5 2014 21:00:28)
Compiled by [email protected]
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype
+path_extra -perl +persistent_undo +postscript +printer -profile +python/dyn
-python3 +quickfix +reltime -rightleft +ruby/dyn +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
-xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses
在這一步,你要確保已經滿足以下兩點要求:
Vim編輯版本應該大於7.3。
支持Python語言。在所選編輯器的功能中,確保你看到了+python。
如果滿足上述要求,接下來可以安裝Vim擴展了。如果不滿足,則需要安裝/升級。
Unix衍生系統
Debian或Ubuntu系統,可以使用下面的代碼:
sudo apt-get remove vim-tiny
apt-get update
apt-get install vim
如果是其他版本的Linux系統,請查閱相應版本包管理器的文檔。不清楚的話,可以先閱讀這篇文章:安裝Vim
驗證安裝
確保你已經安裝了7.3版本以上、支持Python的Vim編輯器。你可以再次運行vim --version進行確認。如果你想知道Vim中使用的Python版本,你可以在編輯器中運行:python import sys; print(sys.version)。
2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
這行命令會輸出你的編輯器當前的Python版本。如果報錯,那麼你的編輯器就不支持Python語言,需要重裝或重新編譯。
Vim編輯器安裝完成後,我們來看看如何將其設置為Python開發的強大環境。
Vim擴展
Vim本身能夠滿足開發人員的很多需求,但是它的可擴展性也極強,並且已經有一些殺手級的擴展,可以讓Vim擁有「現代」集成開發環境的特性。所以,你所需要的第一件東西就是一個好用的擴展管理器。
Vim的擴展通常也被成為bundle或插件。
Vundle
Vim有多個擴展管理器,但是我們強烈推薦Vundle。你可以把它想像成Vim的pip。有了Vundle,安裝和更新包這種事情不費吹灰之力。
我們現在來安裝Vundle:
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
該命令將下載Vundle插件管理器,並將它放置在你的Vim編輯器bundles文件夾中。現在,你可以通過.vimrc配置文件來管理所有擴展了。
將配置文件添加到你的用戶的home文件夾中:
touch ~/.vimrc
接下來,把下來的Vundle配置添加到配置文件的頂部:
set nocompatible " required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
" Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
這樣,你就完成了使用Vundle前的設置。之後,你就可以在配置文件中添加希望安裝的插件,然後打開Vim編輯器,運行下面的命令:
:PluginInstall
這個命令告訴Vundle施展它的魔法——自動下載所有的插件,並為你進行安裝和更新。
開始打造IDE吧
本文不可能列舉Vim的全部功能,只能快速介紹一些Vim自帶的強大功能,它們對於Python開發來說是非常有用的。
扔掉滑鼠
或許,Vim編輯器最重要的功能就是它不要求使用滑鼠(除了GUI版本外)。一開始,你可能會覺得這是個非常糟糕的做法,但是只要你投入時間——是的,這很花時間——學習快捷組合鍵,就可以大幅提升工作流的速度。
分割布局(Split Layouts)
使用:sv <filename>命令打開一個文件,你可以縱向分割布局(新文件會在當前文件下方界面打開),使用相反的命令:vs <filename>, 你可以得到橫向分割布局(新文件會在當前文件右側界面打開)。
你還可以嵌套分割布局,所以你可以在分割布局內容再進行分割,縱向或橫向都可以,直到你滿意為止。眾所周知,我們開發時經常需要同時查看多個文件。
專業貼士:記得在輸入完:sv後,利用tab補全功能,快速查找文件。
專業貼士:你還可以指定屏幕上可以進行分割布局的區域,只要在.vimrc文件中添加下面的代碼即可:
set splitbelow
set splitright
專業貼士:想要不使用滑鼠就切換分割布局嗎?只要將下面的代碼添加到.vimrc文件中,你就可以通過快捷組合鍵進行切換。
"split navigations
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
組合快捷鍵:
Ctrl-j 切換到下方的分割窗口
Ctrl-k 切換到上方的分割窗口
Ctrl-l 切換到右側的分割窗口
Ctrl-h 切換到左側的分割窗口
換句話說, 按Ctrl+Vim的標准移動鍵,就可以切換到指定窗口。
等等,nnoremap是什麼意思?——簡單來說,nnoremap將一個組合快捷鍵映射為另一個快捷鍵。一開始的n,指的是在Vim的正常模式(Normal Mode)下,而不是可視模式下重新映射。基本上,nnoremap <C-J> <C-W><C-j>就是說,當我在正常模式按下<C-J>時,進行<C-W><C-j>操作。更多信息請看這里。
緩沖區(Buffers)
雖然Vim支持tab操作,仍有很多人更喜歡緩沖區和分割布局。你可以把緩沖區想像成最近打開的一個文件。Vim提供了方便訪問近期緩沖區的方式,只需要輸入:b <buffer name or number>,就可以切換到一個已經開啟的緩沖區(此處也可使用自動補全功能)。你還可以通過ls命令查看所有的緩沖區。
專業貼士: 在:ls命令輸出的最後,Vim會提示「敲擊Enter繼續查看」,這時你可以直接輸入:b <buffer name>,立即選擇緩沖區。這樣可以省掉一個按鍵操作,也不必去記憶緩沖區的名字。
代碼折疊(Code Folding)
大多數「現代」集成開發環境(IDE)都提供對方法(methods)或類(classes)進行折疊的手段,只顯示類或方法的定義部分,而不是全部的代碼。
你可以在.vimrc中添加下面的代碼開啟該功能:
" Enable folding
set foldmethod=indent
set foldlevel=99
這樣就可以實現,但是你必須手動輸入za來折疊(和取消折疊)。使用空格鍵會是更好的選擇。所以在你的配置文件中加上這一行命令吧:
" Enable folding with the spacebar
nnoremap <space> za
現在你可以輕松地隱藏掉那些當前工作時不需要關注的代碼了。
第一個命令,set foldmethod=ident會根據每行的縮進開啟折疊。但是這樣做會出現超過你所希望的折疊數目。但是別怕,有幾個擴展就是專門解決這個問題的。在這里,我們推薦SimplyFold。在.vimrc中加入下面這行代碼,通過Vundle進行安裝:
Plugin 'tmhedberg/SimpylFold'
不要忘記執行安裝命令::PluginInstall
專業貼士: 希望看到折疊代碼的文檔字元串?
let g:SimpylFold_docstring_preview=1
Python代碼縮進
當然,想要代碼折疊功能根據縮進情況正常工作,那麼你就會希望自己的縮進是正確的。這里,Vim的自帶功能無法滿足,因為它實現不了定義函數之後的自動縮進。我們希望Vim中的縮進能做到以下兩點:
首先,縮進要符合PEP8標准。
其次,更好地處理自動縮進。
PEP8
要支持PEP8風格的縮進,請在.vimrc文件中添加下面的代碼:
au BufNewFile,BufRead *.py
\ set tabstop=4
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79
\ set expandtab
\ set autoindent
\ set fileformat=unix
這些設置將讓Vim中的Tab鍵就相當於4個標準的空格符,確保每行代碼長度不超過80個字元,並且會以unix格式儲存文件,避免在推送到Github或分享給其他用戶時出現文件轉換問題。
另外,對於全棧開發,你可以設置針對每種文件類型設置au命令:
au BufNewFile,BufRead *.js, *.html, *.css
\ set tabstop=2
\ set softtabstop=2
\ set shiftwidth=2
自動縮進
自動縮進有用,但是在某些情況下(比如函數定義有多行的時候),並不總是會達到你想要的效果,尤其是在符合PEP8標准方面。我們可以利用indentpython.vim插件,來解決這個問題:
Plugin 'vim-scripts/indentpython.vim'
標示不必要的空白字元
我們希望避免出現多餘的空白字元。可以讓Vim幫我們標示出來,使其很容易發現並刪除。
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
這會將多餘的空白字元標示出來,很可能會將它們變成紅色突出。
支持UTF-8編碼
大部分情況下,進行Python開發時你應該使用UTF-8編碼,尤其是使用Python 3的時候。確保Vim設置文件中有下面的命令:
set encoding=utf-8
自動補全
支持Python自動補全的最好插件是YouCompleteMe。我們再次使用Vundle安裝:
Bundle 'Valloric/YouCompleteMe'
YouCompleteMe插件其實底層使用了一些不同的自動補全組件(包括針對Python開發的Jedi),另外要安裝一些C庫才能正常工作。插件官方文檔提供了很好的安裝指南,我就不在這里重復了。切記跟隨文檔的步驟進行安裝。
安裝完成後,插件自帶的設置效果就很好,但是我們還可以進行一些小的調整:
let g:ycm_autoclose_preview_window_after_completion=1
map <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
上面的第一行確保了在你完成操作之後,自動補全窗口不會消失,第二行則定義了「轉到定義」的快捷方式。
支持Virtualenv虛擬環境
上面「轉到定義」功能的一個問題,就是默認情況下Vim不知道virtualenv虛擬環境的情況,所以你必須在配置文件中添加下面的代碼,使得Vim和YouCompleteMe能夠發現你的虛擬環境:
"python with virtualenv support
py << EOF
import os
import sys
if 'VIRTUAL_ENV' in os.environ:
project_base_dir = os.environ['VIRTUAL_ENV']
activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
EOF
這段代碼會判斷你目前是否在虛擬環境中編輯,然後切換到相應的虛擬環境,並設置好你的系統路徑,確保YouCompleteMe能夠找到相應的site packages文件夾。
語法檢查/高亮
通過安裝syntastic插件,每次保存文件時Vim都會檢查代碼的語法:
Plugin 'scrooloose/syntastic'
還可以通過這個小巧的插件,添加PEP8代碼風格檢查:
Plugin 'nvie/vim-flake8'
最後,讓你的代碼變得更漂亮:
let python_highlight_all=1
syntax on
配色方案
配色方案可以和你正在使用的基礎配色共同使用。GUI模式可以嘗試solarized方案, 終端模式可以嘗試Zenburn方案:
Plugin 'jnurmine/Zenburn'
Plugin 'altercation/vim-colors-solarized'
接下來,只需要添加一點邏輯判斷,確定什麼模式下使用何種方案就可以了:
if has('gui_running')
set background=dark
colorscheme solarized
else
colorscheme Zenburn
endif
Solarized方案同時提供了暗色調和輕色調兩種主題。要支持切換主題功能(按F5)也非常簡單,只需添加:
call togglebg#map("<F5>")
文件瀏覽
如果你想要一個不錯的文件樹形結構,那麼NERDTree是不二之選。
Plugin 'scrooloose/nerdtree'
如果你想用tab鍵,可以利用vim-nerdtree-tabs插件實現:
Plugin 'jistr/vim-nerdtree-tabs'
還想隱藏.pyc文件?那麼再添加下面這行代碼吧:
let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree
超級搜索
想要在Vim中搜索任何文件?試試ctrlP插件吧:
Plugin 'kien/ctrlp.vim'
正如插件名,按Ctrl+P就可以進行搜索。如果你的檢索詞與想要查找的文件相匹配的話,這個插件就會幫你找到它。哦,對了——它不僅僅可以搜索文件,還能檢索標簽!更多信息,可以觀看這個Youtube視頻.
顯示行號
開啟顯示行號:
set nu
Git集成
想要在Vim中執行基本的Git命令?vim-fugitive插件則是不二之選。
Plugin 'tpope/vim-fugitive'
請看Vimcasts的這部視頻,了解更多情況。
Powerline狀態欄
Powerline是一個狀態欄插件,可以顯示當前的虛擬環境、Git分支、正在編輯的文件等信息。
這個插件是用Python編寫的,支持諸如zsh、bash、tmux和IPython等多種環境。
Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
請查閱插件的官方文檔,了解配置選項。
系統剪貼板
通常Vim會忽視系統剪貼板,而使用自帶的剪貼板。但是有時候你想從Vim之外的程序中剪切、復制、粘貼文本。在OS X平台上,你可以通過這行代碼訪問你的系統剪貼板:
set clipboard=unnamed
Shell開啟Vim編輯模式
最後,當你熟練掌握了Vim和它的鍵盤快捷方式之後,你會發現自己經常因為shell中缺乏相同的快捷鍵而懊惱。沒關系,大部分的shell程序都有Vi模式。在當前shell中開啟Vi模式,你只需要在~/.inputrc文件中添加這行代碼:
set editing-mode vi
現在,你不僅可以在shell中使用Vim組合快捷鍵,還可以在Python解釋器以及任何利用GNU Readline程序的工具(例如,大多數的資料庫shell)中使用。現在,你在什麼地方都可以使用Vim啦!
結語
Vim的設置到這里就差不多了(至少對於Python開發來說是這樣的)。當然,開源世界裡還有大量你可以使用的其他擴展,以及本文中所提到插件的替代品。你最喜愛的擴展是什麼?你又是如何將Vim設置符合你喜好的?
這是我本人的Vim配置文件鏈接。你有沒有自己的設置代碼?請與我們分享!
謝謝!
資源
Vim Tutor是Vim自帶的程序,安裝結束之後,只要在命令行輸入vimtutor即可,程序將會用Vim編輯器教你如何使用Vim。
Vimcasts是一系列的高階視頻教程,內容涉及許多Vim的功能。
Vim官方文檔
Open Vim
笨辦法學Vimscript是學習vimscript的極好材料。

熱點內容
雲伺服器的ip固定的嗎 發布:2025-07-15 19:26:12 瀏覽:934
怎麼建立電腦配置文件 發布:2025-07-15 19:23:57 瀏覽:672
手機導航源碼下載 發布:2025-07-15 19:18:29 瀏覽:499
什麼是原生態安卓機 發布:2025-07-15 19:16:52 瀏覽:686
linux的安裝目錄在哪 發布:2025-07-15 19:10:04 瀏覽:724
2008編程入門經典 發布:2025-07-15 18:58:44 瀏覽:603
艾派密碼是什麼 發布:2025-07-15 18:47:40 瀏覽:588
密碼鎖如何在裡面開門 發布:2025-07-15 18:35:00 瀏覽:521
額溫演算法 發布:2025-07-15 18:18:14 瀏覽:728
ie客戶端事件腳本執行異常 發布:2025-07-15 18:10:13 瀏覽:26