Win10系統(tǒng)下安裝編輯器之神(The?God?of?Editor)Vim并且構(gòu)建Python生態(tài)開(kāi)發(fā)環(huán)境過(guò)程(2020年最新攻略)
眾神殿內(nèi),依次坐著Editplus、Atom、Sublime、Vscode、JetBrains家族、Comodo等等一眾編輯器界的大佬們,偌大的殿堂內(nèi)幾無(wú)立錐之地,然而在殿內(nèi)的金漆雕龍寶座上,端坐著一位睥睨眾生的王者,那就是被稱之為編輯器之神的Vim,作為一個(gè)有著30余年歷史的老牌神器,沒(méi)有任何編輯器可以和它媲美,其時(shí)江湖有云:神編Vim不會(huì)玩,縱稱大神也枉然。Vim在 1976 年發(fā)布,奉行 Unix 傳統(tǒng)的“Do one thing and do it well”哲學(xué),每個(gè)程序只做一件事但求做到最好,通過(guò)程序之間的配合得到強(qiáng)大的功能,其兩種模式(Normal/Insert) 的玄妙變換,幻化出各種組合的炫酷用法,不知傾倒了多少開(kāi)發(fā)者的心。本次我們?cè)赪in10平臺(tái)構(gòu)建一套以Vim為核心的Python開(kāi)發(fā)環(huán)境。
首先,安裝python3,并且配置好環(huán)境變量,這在之前的視頻攻略中有過(guò)完整的介紹:
win10系統(tǒng)下配置python3開(kāi)發(fā)環(huán)境
隨后下載gvim8,注意根據(jù)系統(tǒng)類型選擇32或者64位,這里我們選擇64位的,下載地址是:https://tuxproject.de/projects/vim/x64/
然后,將下載好的壓縮包解壓,并且將文件放到C:/vim目錄下
順便配置好環(huán)境變量,這樣就可以在系統(tǒng)任意位置啟動(dòng)vim
之后在當(dāng)前的用戶目錄,建立一個(gè)_vimrc文件,這是vim的配置文件,所有的設(shè)置都在這里編寫(xiě)
將以下內(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è)置編碼解決中文亂碼問(wèn)題、自動(dòng)縮進(jìn)以及縮進(jìn)寬度、菜單欄中文字體問(wèn)題、主題和字體、以及四個(gè)空格代替制表符等等,注意一點(diǎn)這個(gè)配置里我將運(yùn)行python腳本的快捷鍵設(shè)置成了f5。
這時(shí)進(jìn)入windows命令行,輸入gvim啟動(dòng)編輯器,然后鍵入命令:version,看到版本號(hào)就沒(méi)有問(wèn)題了
雖然現(xiàn)在Vim已經(jīng)可以正常使用了,但是沒(méi)有插件的加成,開(kāi)發(fā)效率就不是那么高,所以我們現(xiàn)在來(lái)安裝一些常用的插件。
安裝pathogen.vim插件(一個(gè)vim插件管理器)
地址是:https://github.com/tpope/vim-pathogen 直接Clone或者下載壓縮包
將Clone或者解壓后的pathogen.vim文件放到C:/vim/autoload目錄下
修改用戶目錄下的_vimrc配置文件,將下面的配置加進(jìn)去
execute pathogen#infect()
這樣就可以安裝其他所有的插件了
緊接著我們安裝一個(gè)項(xiàng)目管理插件(project),它可以幫助我們把項(xiàng)目整體導(dǎo)入vim編輯器內(nèi),通過(guò)點(diǎn)擊文件進(jìn)行修改,這樣就不用每次編輯都要在命令行輸入命令才能編輯了,大體上,這個(gè)插件可以幫我們快速修改整個(gè)項(xiàng)目。
同樣的,先進(jìn)行下載,地址是:https://www.vim.org/scripts/script.php?script_id=69
將解壓后的doc目錄中的project文件拷貝到vim安裝目錄的doc目錄下
將plugin目錄下的project.vim拷貝到vim安裝目錄的plugin目錄下
在命令行輸入gvim啟動(dòng)編輯器
輸入:Project
隨后輸入\C (是反斜杠和大寫(xiě)C,因?yàn)槭禽斎朊?,所以不?huì)在編輯內(nèi)顯示,但是執(zhí)行成功后會(huì)彈出窗口)
Enter the Name of the Entry: 輸入項(xiàng)目名
Enter the Absolute Directory to Load: 輸入項(xiàng)目的文件目錄路徑(項(xiàng)目目錄需要事先存在)
Enter the CD parameter: 這個(gè)和項(xiàng)目目錄路徑一樣即可
Enter the File Filter: 設(shè)置管理的文件類型,.py,.txt等等,可以設(shè)置多個(gè),不設(shè)置(直接回車)默認(rèn)為所有類型
再次使用:打開(kāi)vim后輸入:Project
使用回車打開(kāi)或關(guān)閉標(biāo)簽。
添加或者修改文件后可以使用\R刷新。
這樣我們就可以在vim里管理我們的項(xiàng)目了。
每次導(dǎo)入項(xiàng)目后,你都可以在用戶目錄的.vimprojects文件中進(jìn)行修改或者刪除項(xiàng)目,非常靈活
好了,項(xiàng)目導(dǎo)入后就可以愉快的開(kāi)發(fā)了,但是我們發(fā)現(xiàn)vim默認(rèn)沒(méi)有代碼補(bǔ)全,怎么辦呢,聰明如你一定已經(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
這就搞定了,使用方法是,敲入兩個(gè)字母之后使用tab鍵進(jìn)行補(bǔ)全,效果是下面這樣:
還不錯(cuò)吧,有的時(shí)候,你甚至想用vim來(lái)編輯前端的頁(yè)面,沒(méi)有任何問(wèn)題,使用autocomplpop插件,下載地址:https://vim.sourceforge.io/scripts/script.php?script_id=1879
解壓后,將plugin下的腳本文件(.vim)、doc下的幫助文件(.txt)和autoload下的(.vim)文件分別拷貝至vim的 plugin、doc和autoload目錄
這個(gè)插件甚至不需要配置,只需要在輸入/insert模式下即可自動(dòng)根據(jù)當(dāng)前文檔內(nèi)的內(nèi)容進(jìn)行自動(dòng)補(bǔ)全
是不是感覺(jué)還不錯(cuò)?有了那么一點(diǎn)黑客的趕腳了。
Vim 有兩種模式——Normal 模式和 Insert 模,所有命令都是在 Normal 模式下執(zhí)行。啟動(dòng) Vim 后,默認(rèn)進(jìn)入 Normal 模式,可以按 i 鍵進(jìn)入 Insert 模式,或者 s 刪除當(dāng)前字符并進(jìn)入 Insert 模式,退出 Insert 模式進(jìn)入 Normal 按 ESC 。
基本用法:
i insert 輸入 v 行選中 ctrl+v 列選中 G 至文末 gg 至文首 :q 未修改退出 :q! 強(qiáng)制不保存退出 :x / :wq 保存并退出 J 合并多行 d 刪除當(dāng)前所選 dd 刪除多行并存在剪貼板中(剪切) y 復(fù)制當(dāng)前所選 yy 復(fù)制整行 p 粘貼 u 撤銷操作 w 光標(biāo)移動(dòng)到下一個(gè)單詞處 b 光標(biāo)移動(dòng)到上一個(gè)單詞處 ^ 光標(biāo)移動(dòng)到行首 $ 光標(biāo)移動(dòng)到行尾 kjhl 或者上下左右鍵移動(dòng)光標(biāo) shift+上下鍵 翻頁(yè) shift+左右 光標(biāo)乙至上/下一個(gè)單詞(以空格/標(biāo)點(diǎn)區(qū)分單詞)詞首 u 撤銷上一步操作 zo/zn/zc 折疊/展開(kāi)代碼塊 :vsp 新建工作區(qū) ctrl+w 松手后再按 方向鍵 切換工作區(qū) :MR 選擇最近打開(kāi)的文件(需安裝插件) F12 運(yùn)行當(dāng)前文件 # 搜索光標(biāo)處短語(yǔ) :set paste 進(jìn)入粘貼模式 :%s/target/something/g 替換全部 target 字段 :s/target/something/g 替換選中區(qū)域 target 字段
參考命令圖解
結(jié)語(yǔ):遙想當(dāng)年,Windows平臺(tái)用戶對(duì)軟件的可擴(kuò)展性完全沒(méi)有概念,他們只能對(duì)他們使用的軟件進(jìn)行非常有限的定制(普通版/家庭版/專業(yè)版)。擴(kuò)展軟件的權(quán)利也保留在開(kāi)發(fā)者手中。軟件的使用者如果想要新的功能和特性,只能等待軟件的升級(jí)或者花錢買。有能力的用戶不想被束縛,為了添加自己想要的功能,自己寫(xiě)新的功能。就這樣,新的功能意味著新的軟件,Windows平臺(tái)的軟件前赴后繼,迅速地更新?lián)Q代。因此,Windows平臺(tái)就如鐵打的營(yíng)盤(pán),而那些軟件就像流水的兵,循環(huán)往復(fù)。
現(xiàn)而今,Mac os和開(kāi)源軟件漸漸流行起來(lái),此時(shí)的人們才發(fā)現(xiàn):可擴(kuò)展性才是軟件的核心競(jìng)爭(zhēng)力。在JetBrains橫行的今天,Vscode為什么被評(píng)為最好的IDE?就是因?yàn)樗贗DE中最具可擴(kuò)展性。同理,將近30多年的歷史浪潮中Vim沒(méi)有被時(shí)代淘汰,反而愈發(fā)健壯,擁躉遍布全世界,也正是因?yàn)樵跀?shù)不清的編輯器中,Vim具有無(wú)可匹敵的可擴(kuò)展性,當(dāng)然了,這個(gè)世界除了編輯器之神,還有另外一種信仰:Emacs,它的教徒絲毫不少于Vim,它的影響力已經(jīng)是超越編輯器的存在,有機(jī)會(huì)再分享關(guān)于Emacs的傳說(shuō)。
相關(guān)文章
pytorch中forwod函數(shù)在父類中的調(diào)用方式解讀
這篇文章主要介紹了pytorch中forwod函數(shù)在父類中的調(diào)用方式解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Transformer導(dǎo)論之Bert預(yù)訓(xùn)練語(yǔ)言解析
這篇文章主要為大家介紹了Transformer導(dǎo)論之Bert預(yù)訓(xùn)練語(yǔ)言解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Python+Django實(shí)現(xiàn)簡(jiǎn)單HelloWord網(wǎng)頁(yè)的示例代碼
本文主要介紹了Python+Django實(shí)現(xiàn)簡(jiǎn)單HelloWord網(wǎng)頁(yè)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Python logging設(shè)置和logger解析
這篇文章主要介紹了Python logging設(shè)置和logger解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08使用pandas對(duì)兩個(gè)dataframe進(jìn)行join的實(shí)例
今天小編就為大家分享一篇使用pandas對(duì)兩個(gè)dataframe進(jìn)行join的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06python如何為被裝飾的函數(shù)保留元數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了python如何為被裝飾的函數(shù)保留元數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Python中查看變量的類型內(nèi)存地址所占字節(jié)的大小
這篇文章主要介紹了Python中查看變量的類型,內(nèi)存地址,所占字節(jié)的大小,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06