【進(jìn)擊的Vimmer】vim配置與vimrc文件詳解

都知道vim具有高度的可配置性,雖然有大神說(shuō)過(guò)原生的vim可以做插件提供的90%的功能,但是那也是需要一定的境界只酥,不說(shuō)別的褥实,就vim那出廠界面就會(huì)嚇走一批強(qiáng)迫癥患者了。所以入手vim的話裂允,第一步肯定是要將她配置成我們心中那美好的形態(tài)损离,不然真的下不來(lái)手。

首先是下載合適的vim版本绝编,linux下都是可以實(shí)現(xiàn)一鍵安裝僻澎,倒是windows下可能會(huì)下載錯(cuò),你下載的可能是32位的版本十饥,32位的不支持64位的python窟勃,所以建議下載64位的vim

以下是本人vim配置的效果圖绷跑,說(shuō)不上多么高大上拳恋,至少是適合自己的,需要注意的是這個(gè)版本需要有python的支持砸捏,如果沒(méi)有python的話谬运,某些插件可能無(wú)法正常使用。

配置完成的vim

是不是迫不及待自己也想擁有一個(gè)呢垦藏,我們都是堅(jiān)定的“拿來(lái)主義”者梆暖,半小時(shí)內(nèi)就可以搞定,只需要以下2個(gè)步驟:

1掂骏、相關(guān)依賴

linux/mac:

sudo apt-get install curl vim exuberant-ctags git ack-grep


sudo pip install pep8 flake8 pyflakes isort yapf

windows:

下載Git?和?Curl轰驳,下載安裝python3.6

2、復(fù)制配置文件

配置文件在Zhu-Jun/.vimrc弟灼,如果是linux/mac用戶级解,那么將里面的.vimrc拷貝到~/目錄下,如果是windows用戶田绑,將_vimrc拷貝到%USERPROFILE%目錄下勤哗,一般是C:\Users\XXX\(XXX是用戶名)。

以上兩步之后掩驱,打開(kāi)vim芒划,它會(huì)自動(dòng)加載需要的內(nèi)容,大概10-5分鐘欧穴,至此民逼,vim已經(jīng)配置完成,windows下如果報(bào)缺少lua53.dll涮帘,需要下載一個(gè)放到vim的安裝目錄下拼苍。

下面介紹一下vimrc文件的一些比較重要的內(nèi)容。

基本設(shè)置

set nocompatible? ? ? ? ? ? ? ? ? ? ? ? " 不兼容vi模式

set langmenu=en_US? ? ? ? ? ? ? ? ? ? ? " 菜單語(yǔ)言 中文為 zh_CN

set fileencodings=utf-8,chinese,latin-1

set fileencoding=utf-8? ? ? ? ? ? ? ? ? " 中文不亂碼了调缨,世界都好了

set number? ? ? ? ? ? ? ? ? ? ? ? ? ? ? " 窗口左側(cè)顯示行號(hào)

set relativenumber? ? ? ? ? ? ? ? ? ? ? " 配合number疮鲫,更高效的行間跳轉(zhuǎn)

au GUIEnter * simalt ~x? ? ? ? ? ? ? ? " vim 以最大化打開(kāi)

set ignorecase? ? ? ? ? ? ? ? ? ? ? ? ? " 查找時(shí)忽略大小寫

set smartcase? ? ? ? ? ? ? ? ? ? ? ? ? " 當(dāng)輸入中含有大寫的時(shí)候會(huì)強(qiáng)制區(qū)分大小寫

set incsearch? ? ? ? ? ? ? ? ? ? ? ? ? " 輸入進(jìn)行中實(shí)時(shí)匹配查找到的字符串

set autoindent? ? ? ? ? ? ? ? ? ? ? ? ? " 用來(lái)自動(dòng)縮進(jìn)

set smartindent? ? ? ? ? ? ? ? ? ? ? ? " 自動(dòng)判斷縮進(jìn)長(zhǎng)度苟鸯,一般適用于類C語(yǔ)言

set expandtab? ? ? ? ? ? ? ? ? ? ? ? ? " 用一定的空格來(lái)代替tab

set tabstop=4? ? ? ? ? ? ? ? ? ? ? ? ? " tab占4個(gè)空格

set softtabstop=4? ? ? ? ? ? ? ? ? ? ? " 設(shè)置expandtab的情況下,輸入backspace刪除的空格

set shiftwidth=4? ? ? ? ? ? ? ? ? ? ? ? "一般情況下tabstop=softtabstop=shiftwidth棚点,這樣不會(huì)亂

上面比較容易搞亂的應(yīng)該tab相關(guān)的內(nèi)容了早处,如果你還是很亂,可以看看這里:Tabs and Spaces

key-notation(鍵位標(biāo)識(shí))

key跟標(biāo)識(shí)的對(duì)應(yīng)關(guān)系瘫析,詳情可見(jiàn):help key-notation


map

map可以理解成鍵位的映射砌梆,如:

nmap G Gzz?

上面指令的作用是在normal模式下將G(表示移動(dòng)的最后一行)映射 Gzz(移動(dòng)到最后一行+居中,zz表示居中)贬循,也就是命令生效之后咸包,G就跟Gzz有相同的作用。

其中n表示在normal模式下起作用杖虾,同理烂瘫,vmap表示在visual模式下,具體對(duì)應(yīng)規(guī)則見(jiàn)下圖:

map與mode的對(duì)應(yīng)關(guān)系

值得注意的是nmap一般寫成nnoremap比較好奇适,中間的nore表示no recursion坟比,不遞歸,比如

nmap w ww


nmap ww www

上面兩句話導(dǎo)致的結(jié)果是按完一次w之后嚷往,光標(biāo)會(huì)不斷地向后移動(dòng)葛账,因?yàn)閣觸發(fā)ww,而ww又會(huì)觸發(fā)w皮仁,如此遞歸下去籍琳,如果改成nnoremap w ww之后就不會(huì)再出現(xiàn)這個(gè)問(wèn)題。

如果map的第二個(gè)參數(shù)是以:開(kāi)頭贷祈,那么表示映射的內(nèi)容在命令行中生效趋急,如

map tn :tabn<CR>

上面指令的意思是,輸入tn势誊,相當(dāng)于①輸入:(進(jìn)入命令行模式)②輸入tabn(跳到另一個(gè)tab頁(yè)面)③輸入回車

mapleader

這是vim中一個(gè)很重要的概念呜达,leader的存在可以非常靈活地自定義快捷方式,很大地提高編輯的效率键科。

let mapleader=","

nmap <leader>h ^

默認(rèn)的leader鍵是\闻丑,這還是有點(diǎn)反人類的漩怎,所以上面的第一句的意思是將leader鍵設(shè)置成逗號(hào)“勋颖,”,你也可以根據(jù)自己的喜好設(shè)置成空格(let mapleader = "\<space>")等勋锤,第二句話的意思表示當(dāng)你再normal模式下輸入,l(逗號(hào)+h)饭玲,那么光標(biāo)會(huì)移動(dòng)到行首,是不是比按<Shift>+6方便不少叁执?

Vundle

vim的擴(kuò)展性很大程度上來(lái)自于各種插件的存在茄厘,一般情況下你可能會(huì)用到非常多的插件矮冬,如上面的配置文件中就有30多個(gè)插件,這么多的插件管理起來(lái)還是很麻煩的次哈,增啥改查都很頭疼胎署,有了vundle就再也不怕了,如果你用了上面提供的配置文件的話窑滞,其實(shí)你已經(jīng)見(jiàn)識(shí)到了它的強(qiáng)大琼牧,因?yàn)樗呀?jīng)默默幫你裝了30多個(gè)插件。

set rtp+=~/vimfiles/bundle/Vundle.vim? "表示vundle的位置在Vundle.vim下

call vundle#begin('~/vimfiles/bundle/') ?"表示插件存放的位置在bundle下

如果想添加什么插件只需要call vundle#begin和call vundle#end之間添加github上的插件位置哀卫,然后執(zhí)行PluginInstall巨坊。刪除更簡(jiǎn)單了,只需要將Plugin那一行去掉或者注釋掉此改,然后執(zhí)行PluginClean趾撵,接著輸入Y就OK了,插件升級(jí)執(zhí)行PluginUpdate一鍵搞定共啃。需要注意的是PluginInstall和PluginClean之間可能需要先保存然后重啟占调。

如果你修改了vimrc文件后想立即生效,但是又不想重啟移剪,有什么解決的辦法嗎妈候?當(dāng)然有,只需要so? ~/.vimrc(so ~/_vimrc)挂滓,其中so表示source苦银。 如果你當(dāng)前編輯的文件就是vimrc文件的話,那么so %就夠了赶站,其中%是一個(gè)特殊的寄存器幔虏,表示當(dāng)前文件的名稱,具體可以:help registers贝椿。

插件非常多想括,Vim Awesome上提供了非常詳細(xì)的插件列表,總有幾個(gè)是你的菜烙博,在此我只推薦一個(gè)插件:

Plugin 'ianva/vim-youdao-translater'

有很多插件的官方文檔缺少中文說(shuō)明瑟蜈,說(shuō)多都是淚,如果你的英語(yǔ)足夠好渣窜,那就沒(méi)必要了铺根。這個(gè)插件其實(shí)就是有道翻譯,用法很簡(jiǎn)單乔宿,Ctrl-t會(huì)翻譯光標(biāo)下對(duì)應(yīng)的單詞位迂,<leader>yd 可以讓你輸入想翻譯的單詞。

Abbreviate

在idea intellij中有大量代碼可以通過(guò)Ctrl-j完成,比如sout然后ctrl-j就可以快速生成System.out.println()掂林。vim也不落后臣缀,只不過(guò)需要你自己去思考要配置哪些適合自己的縮寫,一般用來(lái)縮寫的都是使用頻率不高的詞泻帮,不然反而會(huì)降低效率精置,比較常見(jiàn)的有:

iabbrev teh the 或者 iab teh the

當(dāng)你把the輸錯(cuò)成teh時(shí),會(huì)自動(dòng)幫你更正為the锣杂。跟map類似氯窍,iab中的i表示作用在insert模式下,cabbrev(cab)僅作用于命令行模式蹲堂,abbrev ?(ab )作用于所有模式下狼讨,觸發(fā)縮寫替換的快捷鍵是CTRL-]


配置里面其它的很多內(nèi)容都牽涉到vimscript柒竞,相信有一定編程基礎(chǔ)的話讀起來(lái)還是不費(fèi)勁的政供,留著以后慢慢摸索也不遲。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末朽基,一起剝皮案震驚了整個(gè)濱河市布隔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稼虎,老刑警劉巖衅檀,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異霎俩,居然都是意外死亡哀军,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門打却,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)杉适,“玉大人,你說(shuō)我怎么就攤上這事柳击≡惩疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵捌肴,是天一觀的道長(zhǎng)蹬叭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)状知,這世上最難降的妖魔是什么秽五? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮试幽,結(jié)果婚禮上筝蚕,老公的妹妹穿的比我還像新娘。我一直安慰自己铺坞,他們只是感情好起宽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著济榨,像睡著了一般坯沪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上擒滑,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼隧魄。 笑死茫孔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的库车。 我是一名探鬼主播巨柒,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼柠衍!你這毒婦竟也來(lái)了洋满?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤珍坊,失蹤者是張志新(化名)和其女友劉穎牺勾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體阵漏,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驻民,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了履怯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片川无。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖虑乖,靈堂內(nèi)的尸體忽然破棺而出懦趋,到底是詐尸還是另有隱情,我是刑警寧澤疹味,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布仅叫,位于F島的核電站,受9級(jí)特大地震影響糙捺,放射性物質(zhì)發(fā)生泄漏诫咱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一洪灯、第九天 我趴在偏房一處隱蔽的房頂上張望坎缭。 院中可真熱鬧,春花似錦、人聲如沸掏呼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)憎夷。三九已至莽鸿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拾给,已是汗流浹背祥得。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蒋得,地道東北人级及。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像额衙,于是被迫代替她去往敵國(guó)和親创千。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 安裝依賴庫(kù)(支持Python 3入偷、Lua追驴、Ruby) sudo apt-get install libncurse...
    Cyfeng閱讀 2,099評(píng)論 0 2
  • 真實(shí)有效的Vim配置記錄(macOS) 以前在Ubuntu里配置了兩次Vim,macOS中配置了一次疏之,都沒(méi)有配置成...
    染微言閱讀 11,443評(píng)論 0 8
  • 網(wǎng)上已經(jīng)有很多很好的vim使用和配置教程殿雪。但每個(gè)人都有自己的習(xí)慣,因此教程僅作參考锋爪,只有在使用過(guò)程中才能體會(huì)到具體...
    yiekue閱讀 96,764評(píng)論 51 199
  • .vimrc內(nèi)容如下 "=============================================...
    Morb1d閱讀 1,020評(píng)論 0 0
  • 雨后天剛放晴丙曙,在圖書(shū)館倚窗而坐,貪婪地呼吸著窗外飄進(jìn)來(lái)夾雜著淡淡花香的新鮮空氣其骄,偶爾的小憩放松身心亏镰,緩解因長(zhǎng)時(shí)間注...
    風(fēng)信子亦晴閱讀 578評(píng)論 1 2