Win10系統(tǒng)下安裝編輯器之神(The?God?of?Editor)Vim并且構(gòu)建Python生態(tài)開發(fā)環(huán)境過程(2020年最新攻略)
眾神殿內(nèi),依次坐著Editplus、Atom、Sublime、Vscode、JetBrains家族、Comodo等等一眾編輯器界的大佬們,偌大的殿堂內(nèi)幾無立錐之地,然而在殿內(nèi)的金漆雕龍寶座上,端坐著一位睥睨眾生的王者,那就是被稱之為編輯器之神的Vim,作為一個有著30余年歷史的老牌神器,沒有任何編輯器可以和它媲美,其時江湖有云:神編Vim不會玩,縱稱大神也枉然。Vim在 1976 年發(fā)布,奉行 Unix 傳統(tǒng)的“Do one thing and do it well”哲學(xué),每個程序只做一件事但求做到最好,通過程序之間的配合得到強大的功能,其兩種模式(Normal/Insert) 的玄妙變換,幻化出各種組合的炫酷用法,不知傾倒了多少開發(fā)者的心。本次我們在Win10平臺構(gòu)建一套以Vim為核心的Python開發(fā)環(huán)境。
首先,安裝python3,并且配置好環(huán)境變量,這在之前的視頻攻略中有過完整的介紹:
win10系統(tǒng)下配置python3開發(fā)環(huán)境
隨后下載gvim8,注意根據(jù)系統(tǒng)類型選擇32或者64位,這里我們選擇64位的,下載地址是:https://tuxproject.de/projects/vim/x64/
然后,將下載好的壓縮包解壓,并且將文件放到C:/vim目錄下
順便配置好環(huán)境變量,這樣就可以在系統(tǒng)任意位置啟動vim
之后在當前的用戶目錄,建立一個_vimrc文件,這是vim的配置文件,所有的設(shè)置都在這里編寫
將以下內(nèi)容添加到_vimrc文件中
" An example for a vimrc file. " " Maintainer: Bram Moolenaar <Bram@vim.org> " Last change: 2019 Dec 17 " " To use it, copy it to " for Unix: ~/.vimrc " for Amiga: s:.vimrc " for MS-Windows: $VIM_vimrc " for Haiku: ~/config/settings/vim/vimrc " for OpenVMS: sys$login:.vimrc " When started as "evim", evim.vim will already have done these settings, bail " out. if v:progname =~? "evim" finish endif " Get the defaults that most users want. source $VIMRUNTIME/defaults.vim if has("vms") set nobackup " do not keep a backup file, use versions instead else set backup " keep a backup file (restore to previous version) if has('persistent_undo') set undofile " keep an undo file (undo changes after closing) endif endif if &t_Co > 2 || has("gui_running") " Switch on highlighting the last used search pattern. set hlsearch endif " Put these in an autocmd group, so that we can delete them easily. augroup vimrcEx au! " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78 augroup END " Add optional packages. " " The matchit plugin makes the % command work better, but it is not backwards " compatible. " The ! means the package won't be loaded right away but when plugins are " loaded during initialization. if has('syntax') && has('eval') packadd! matchit endif set encoding=utf-8 set fileencodings=utf-8,chinese,latin-1 if has("win32") set fileencoding=chinese else set fileencoding=utf-8 endif set autoindent set nu! set shiftwidth=4 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim language messages zh_CN.utf-8 colo koehler set guifont=monaco:h11:cANSI set ts=4 set expandtab map <F5> :! python.exe %
這些都是一些最基本的配置,比如設(shè)置編碼解決中文亂碼問題、自動縮進以及縮進寬度、菜單欄中文字體問題、主題和字體、以及四個空格代替制表符等等,注意一點這個配置里我將運行python腳本的快捷鍵設(shè)置成了f5。
這時進入windows命令行,輸入gvim啟動編輯器,然后鍵入命令:version,看到版本號就沒有問題了
雖然現(xiàn)在Vim已經(jīng)可以正常使用了,但是沒有插件的加成,開發(fā)效率就不是那么高,所以我們現(xiàn)在來安裝一些常用的插件。
安裝pathogen.vim插件(一個vim插件管理器)
地址是:https://github.com/tpope/vim-pathogen 直接Clone或者下載壓縮包
將Clone或者解壓后的pathogen.vim文件放到C:/vim/autoload目錄下
修改用戶目錄下的_vimrc配置文件,將下面的配置加進去
execute pathogen#infect()
這樣就可以安裝其他所有的插件了
緊接著我們安裝一個項目管理插件(project),它可以幫助我們把項目整體導(dǎo)入vim編輯器內(nèi),通過點擊文件進行修改,這樣就不用每次編輯都要在命令行輸入命令才能編輯了,大體上,這個插件可以幫我們快速修改整個項目。
同樣的,先進行下載,地址是:https://www.vim.org/scripts/script.php?script_id=69
將解壓后的doc目錄中的project文件拷貝到vim安裝目錄的doc目錄下
將plugin目錄下的project.vim拷貝到vim安裝目錄的plugin目錄下
在命令行輸入gvim啟動編輯器
輸入:Project
隨后輸入\C (是反斜杠和大寫C,因為是輸入命令,所以不會在編輯內(nèi)顯示,但是執(zhí)行成功后會彈出窗口)
Enter the Name of the Entry: 輸入項目名
Enter the Absolute Directory to Load: 輸入項目的文件目錄路徑(項目目錄需要事先存在)
Enter the CD parameter: 這個和項目目錄路徑一樣即可
Enter the File Filter: 設(shè)置管理的文件類型,.py,.txt等等,可以設(shè)置多個,不設(shè)置(直接回車)默認為所有類型
再次使用:打開vim后輸入:Project
使用回車打開或關(guān)閉標簽。
添加或者修改文件后可以使用\R刷新。
這樣我們就可以在vim里管理我們的項目了。
每次導(dǎo)入項目后,你都可以在用戶目錄的.vimprojects文件中進行修改或者刪除項目,非常靈活
好了,項目導(dǎo)入后就可以愉快的開發(fā)了,但是我們發(fā)現(xiàn)vim默認沒有代碼補全,怎么辦呢,聰明如你一定已經(jīng)猜到可以用插件搞定,使用pydiction,下載地址:https://github.com/rkulla/pydiction
Clone或者下載壓縮包之后,發(fā)現(xiàn)里面有after文件夾、complete-dict、pydiction.py
將after里面的python_pydiction.vim文件拷貝到 vim安裝目錄下的ftpplugin里面,將complete-dict、pydiction.py 拷貝到ftpplugin目錄下
隨后在_vimrc里面添加
filetype plugin on let g:pydiction_location='C:vimftplugincomplete-dict' let g:pydiction_menu_height = 3
這就搞定了,使用方法是,敲入兩個字母之后使用tab鍵進行補全,效果是下面這樣:
還不錯吧,有的時候,你甚至想用vim來編輯前端的頁面,沒有任何問題,使用autocomplpop插件,下載地址:https://vim.sourceforge.io/scripts/script.php?script_id=1879
解壓后,將plugin下的腳本文件(.vim)、doc下的幫助文件(.txt)和autoload下的(.vim)文件分別拷貝至vim的 plugin、doc和autoload目錄
這個插件甚至不需要配置,只需要在輸入/insert模式下即可自動根據(jù)當前文檔內(nèi)的內(nèi)容進行自動補全
是不是感覺還不錯?有了那么一點黑客的趕腳了。
Vim 有兩種模式——Normal 模式和 Insert 模,所有命令都是在 Normal 模式下執(zhí)行。啟動 Vim 后,默認進入 Normal 模式,可以按 i 鍵進入 Insert 模式,或者 s 刪除當前字符并進入 Insert 模式,退出 Insert 模式進入 Normal 按 ESC 。
基本用法:
i insert 輸入 v 行選中 ctrl+v 列選中 G 至文末 gg 至文首 :q 未修改退出 :q! 強制不保存退出 :x / :wq 保存并退出 J 合并多行 d 刪除當前所選 dd 刪除多行并存在剪貼板中(剪切) y 復(fù)制當前所選 yy 復(fù)制整行 p 粘貼 u 撤銷操作 w 光標移動到下一個單詞處 b 光標移動到上一個單詞處 ^ 光標移動到行首 $ 光標移動到行尾 kjhl 或者上下左右鍵移動光標 shift+上下鍵 翻頁 shift+左右 光標乙至上/下一個單詞(以空格/標點區(qū)分單詞)詞首 u 撤銷上一步操作 zo/zn/zc 折疊/展開代碼塊 :vsp 新建工作區(qū) ctrl+w 松手后再按 方向鍵 切換工作區(qū) :MR 選擇最近打開的文件(需安裝插件) F12 運行當前文件 # 搜索光標處短語 :set paste 進入粘貼模式 :%s/target/something/g 替換全部 target 字段 :s/target/something/g 替換選中區(qū)域 target 字段
參考命令圖解
結(jié)語:遙想當年,Windows平臺用戶對軟件的可擴展性完全沒有概念,他們只能對他們使用的軟件進行非常有限的定制(普通版/家庭版/專業(yè)版)。擴展軟件的權(quán)利也保留在開發(fā)者手中。軟件的使用者如果想要新的功能和特性,只能等待軟件的升級或者花錢買。有能力的用戶不想被束縛,為了添加自己想要的功能,自己寫新的功能。就這樣,新的功能意味著新的軟件,Windows平臺的軟件前赴后繼,迅速地更新?lián)Q代。因此,Windows平臺就如鐵打的營盤,而那些軟件就像流水的兵,循環(huán)往復(fù)。
現(xiàn)而今,Mac os和開源軟件漸漸流行起來,此時的人們才發(fā)現(xiàn):可擴展性才是軟件的核心競爭力。在JetBrains橫行的今天,Vscode為什么被評為最好的IDE?就是因為它在IDE中最具可擴展性。同理,將近30多年的歷史浪潮中Vim沒有被時代淘汰,反而愈發(fā)健壯,擁躉遍布全世界,也正是因為在數(shù)不清的編輯器中,Vim具有無可匹敵的可擴展性,當然了,這個世界除了編輯器之神,還有另外一種信仰:Emacs,它的教徒絲毫不少于Vim,它的影響力已經(jīng)是超越編輯器的存在,有機會再分享關(guān)于Emacs的傳說。
相關(guān)文章
pytorch中forwod函數(shù)在父類中的調(diào)用方式解讀
這篇文章主要介紹了pytorch中forwod函數(shù)在父類中的調(diào)用方式解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Transformer導(dǎo)論之Bert預(yù)訓(xùn)練語言解析
這篇文章主要為大家介紹了Transformer導(dǎo)論之Bert預(yù)訓(xùn)練語言解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03Python+Django實現(xiàn)簡單HelloWord網(wǎng)頁的示例代碼
本文主要介紹了Python+Django實現(xiàn)簡單HelloWord網(wǎng)頁的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04Python logging設(shè)置和logger解析
這篇文章主要介紹了Python logging設(shè)置和logger解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08python如何為被裝飾的函數(shù)保留元數(shù)據(jù)
這篇文章主要為大家詳細介紹了python如何為被裝飾的函數(shù)保留元數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Python中查看變量的類型內(nèi)存地址所占字節(jié)的大小
這篇文章主要介紹了Python中查看變量的類型,內(nèi)存地址,所占字節(jié)的大小,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06