摘要:插件鍵位映射技巧性的配置等等都是錦上添花,它們有助于你進一步提高效率以及個性化你的工作環境,但是對于哲學的理解幫助甚少。為你開啟語法高亮。你可以自定義各種語言的語法高亮,無非就是根據這些規
兩種副本如果沒有挑戰,人生將多么無趣!
在我的硬盤上總是保留著(至少)兩份 Vim 的配置文件。其中一份是所謂“完全正式版”,它的文件名是 .vimrc,到本系列結束的時候,我們將了解其中絕大部分的內容,并且它的內容也是會隨時更新的(根據使用者的偏好和需要)。而另外一份則是被我稱之為“基礎練習版”,它的文件名是 .vimrc.basic,其內容就是本文將要一一介紹的內容。
不過在開始介紹具體內容之前我有必要解釋一下我為什么保留兩份配置文件,以及我如何使用它們。
我認為,只有在不依賴插件以及自己不了解的配置的前提下還能夠毫無障礙的使用 Vim,并且在任何時候都能以多種方式高效率的操作,才算是真的會用 Vim。插件、鍵位映射、技巧性的配置等等都是錦上添花,它們有助于你進一步提高效率以及個性化你的工作環境,但是對于 Vim 哲學的理解幫助甚少。
還有一個原因是,我經常不得不面對很多沒有配置的基礎環境,比如新安裝的服務器等。此時沒有我慣用的環境和配置幫助我,我不想讓自己感覺到束手束腳,我希望我可以不需要依賴插件和高級配置就能流暢高效的工作。
.vimrc.basic 的存在就是出于以上的原因,它只有很少的一些配置項,并且不會更改 Vim 的一切默認操作行為;它打開了一些基礎的交互反饋,關閉了缺省存在的一些惱人的設置,使得 Vim 的行為更加友好。這些設置的基礎來自 Vim Golf,它的口號很有意思:
Real Vim ninjas count every keystroke - do you?
“真的 Vim 忍者計算每一次敲鍵-你呢?”
Vim Golf 是這么玩的:每一個用戶可以提交自己的挑戰,挑戰的內容就是要求參賽者使用 Vim 完成指定的操作,操作所使用的敲鍵次數越少,排名就越高。當然為了保證公平,每一位參賽者都需要使用一份一模一樣的配置文件,于是Vim Golf 為大家提供了這樣一份文件。此時此刻我并不是要讓你去參加 Vim Golf 的挑戰,只是這些挑戰的內容和參與條件都體現著我想要表達的 Vim 的哲學,即“保持簡單”,我認為 Vim Golf 提供的這個基礎配置非常有助于每一位 Vim 用戶真正的掌握 Vim 操作的精髓。不過,我在本文里介紹的配置并非和和 Vim Golf 提供的配置一模一樣,因為我使用它們的目標不是為了參賽,而是為了鍛煉自己。實際上,我還有一份專門用來參加 Vim Golf 挑戰的配置文件,叫做 .vimrc.golf。
在日常的工作當中,我經常切換到這個配置環境下,離開所有的插件、鍵位映射、宏等輔助手段,只使用 Vim 自身提供的操作來干活。這是一種挑戰,我樂在其中,并且在這個過程我受益匪淺。我喜歡把這兩套配置看做是兩種難度的副本,普通副本只是為了我完成日常任務,所以它要盡可能簡化、高效,降低我的操作難度。而精英副本則是為了鍛煉我的操作,所以它拋棄一切輔助手段,提高“戰斗”的難度,當然收獲的經驗值也是杠杠的。插件或其他輔助手段可以幫助你簡化很多事情,但是沒了它們之后你是否還有辦法準確高效的完成它們呢?只有在這樣的環境下,你才會意識到這些情況,從而迫使你去學習和練習,去尋找答案,不斷地強化你自身的能力,逐步達到高手的境界。
你不必照搬我的方法來鍛煉自己,不過無論怎樣你至少也得有一份 .vimrc 吧?所以無論你是否喜歡我這樣的鍛煉方法,這份基礎文件都應該成為你的 .vimrc 配置文件的基石。許多人拼拼湊湊出各種各樣的 .vimrc,但他們中的絕大多數都不會從無到有自己寫出一份漂亮的配置文件來。原因在于 Vim 的配置多如牛毛,罕有人樂意把它們一一吃透,所以集眾家之所長炮制一份大雜燴也不失為一個辦法,不過你真的不希望能完全掌控自己的環境配置嗎?
Now, Let"s Go.
基礎環境配置接下來我將帶你一行行完成一個最基礎的環境配置,此后我們的旅程也將會以此為起點。隨著時間的推移,你了解的越來越多,這份配置文件也將會越來越豐富,最終你會得到一個接近完美的環境配置(符合你的需求),并且你可以隨時做出相應得調整,因為你對它們已經了如指掌了。
在跟隨本章內容的時候,你不必非得使用 Vim 不可,因為我們還沒有介紹更多的操作指令。你可以使用任何一種你熟悉的編輯器來編輯和保存這些基礎配置,到最后再打開 Vim 來驗證它是否生效即可。
如何獲取幫助?在學習的過程中,我沒有辦法做到面面俱到,滴水不漏。有時候你需要進一步的幫助,這就需要你學會查看 Vim 的幫助文檔。
Vim 內置有一套完整全面的用戶手冊和幫助文檔,我必須要說這是我見過的最棒的文檔!使用這套文檔也很簡單,只要在常規模式下輸入 :help 即可。: 將會帶你進入命令模式,這是我們講到的第三種模式,以后我們還會進一步了解它;help 是打開幫助文檔的命令。
為了進一步幫助你方便的閱讀幫助文檔,我先簡單介紹幾條操作指令。如果你不熟悉它們不要緊,閱讀幫助文檔正好是幫助你去掌握它們的好機會。
操作指令 | 功能描述 | 附注 |
---|---|---|
h | 光標左移 | |
j | 光標下移 | |
k | 光標上移 | |
l | 光標右移 | 可以用數字作為前綴實現多次移動。比如 3j 可以向下移動三次 |
CTRL-U | 向上翻半頁 | u = upwards |
CTRL-D | 向下翻半頁 | d = downwards |
CTRL-B | 向上翻半頁 | b = backwards = upwards |
CTRL-F | 向下翻半頁 | f = forwards = downwards |
有這些指令打基礎,閱讀幫助文檔應該不在話下了,并且這些指令在今后的日常操作中還會經常使用,請借助閱讀幫助的機會多多練習,讓它們成為你的下意識反應。另外,你會在幫助文檔中看到一些高亮的詞組,它們是可以跳轉到對應的章節去的,就好像網頁上的鏈接一樣。跳轉的方法是將光標移動到高亮處然后按下 CTRL-],之后你還可以按 CTRL-O 返回之前的頁面(可以連續返回多級),或者用 CTRL-I 前進至剛才返回過的頁面,就好像瀏覽器上的“后退”和“前進”按鈕(對應的按鍵還有一對:CTRL-T 和
你是否注意到 :ju[mps] 這個古怪的寫法?它的意思是 jumps 是一個命令的全稱,但是在輸入命令時可以使用其簡寫部分,也就是在 [] 之外的部分。因此在這個例子里,輸入 :jumps 和 輸入 :ju 是等價的。你應該了解這個細節,因為在幫助文檔里會不斷地出現,記住那些常用的簡寫會幫助你在平時提高效率。
另外,考慮到很多人閱讀英文有困難,以下是一些中文版 Vim 手冊的信息:
中文文檔在線閱讀版
中文文檔下載安裝版 下載安裝可以讓你 Vim 里直接查看中文文檔,但是安裝和設置對新手略有難度(安裝說明),在線版內容是一樣的。
Github Fork 如果你使用插件管理器,比如 Vundle,這個會更方便。
接下來每一個小標題的后面都有對應的幫助命令,你可以使用上述途徑獲取更多相關知識。
compatible :help "compatible"Vim 是 Vi 的改進版本,它在 Vi 的基礎上做出了許多改進和增強,其中一些變化徹底改變了 Vi 的特性。為了向后兼容適應一些老 Vi 用戶的習慣,Vim 在默認情況下沒有開啟這類變化,換句話說 Vim 默認運行在“兼容模式”(Compatible)下。然而對于現代的絕大多數用戶來說,這些改進的變化更符合人們的期望,因此我們需要讓 Vim 運行在完全模式下,開啟那些覆蓋了 Vi 的功能改進。你可以在幫助文檔里看到對于這類改進的具體描述。
另外,很多設置和插件依賴于 Vim 的這些改進,所以我們需要在配置的最開始關閉兼容模式,因此我們在配置文件的頂部寫下我們的第一行:
set nocompatible
compatible 是布爾型的選項。VimScript(Vim 內置的腳本語言)在選項的前面加上 no 來代表關閉狀態(falsy),此外在后面附加 ! 代表切換狀態,即:如果當前狀態是開啟,那就關閉它,反之則開啟它。關于 VimScript,今后我們會進一步介紹,你也可以自行閱讀一部非常好的在線教材:Learn Vimscript the Hard Way (by Steve Losh)。
t_RV :help "t_RV"這個選項在現今絕大多數的系統及 Vim 版本下都沒有設置的必要,實際上它是一個遺留問題(Legacy Issue),對于它引起的問題及原因的解釋將會是非常冗長及乏味的,而它之所以出現在 Vim Golf 的默認設置里也是因為參與的人實在太廣泛了,難免會有人碰到這個問題,所以你可以無視它,不過即使加上也不會對你有什么損失。
如果你真的好奇,那么請看這里:http://bugs.debian.org/608242
set t_RV=runtimepath :help "runtimepath"
set runtimepath=$VIMRUNTIME 會關閉用戶自定義的腳本,這也是為了給你一個純粹的、干凈的 Vim 環境。
你會發現在我給出的配置文件中,這一句被我注釋掉了,這是因為我是用 Vundle 來管理所有的第三方插件和腳本,因此我不需要這一句。但是如果你是手動管理的,那么你最好加上這一句。
syntax :help syntaxsyntax on 為你開啟語法高亮。或許稱為“詞法高亮”更加貼切,因為 Vim 并不去分析文件的語法,為了保證快速的解析,Vim 使用特定的語法來匹配詞法規則并為它們著色。你可以自定義各種語言的語法高亮,無非就是根據這些規則來指定顏色罷了。
filetype :help "filetype"filetype on 為你開啟文件類型檢測,這個功能太重要了,所有的語法檢測、高亮、縮進規則都依賴文件類型的識別。Vim 通常使用后綴名來識別文件的類型,但是你也可以重新指定或者通過在文件內容中添加特定標記來覆蓋默認的檢測結果。
filetype indent :help "filetype-indent"filetype indent on 開啟縮進規則,在文件類型檢測生效后,可用的縮進規則將會被使用。實際上還有一個重要的 filetype plugin on,顧名思義,這是開啟對應插件的。但是還記得開始我說的話么?這套基礎配置就是要擺脫對插件的依賴從而保持簡單,因此我們只開啟縮進規則就夠了。
backup :help "backup"backup 用來控制我們是否為當前正在編輯的文件建立備份,在基礎配置里我們將備份功能關閉了。實際上我自己是打開的,因為有備而無患嘛。但是我真實的設置遠不止這么簡單,因為 Vim 關于文件備份的設置其實非常復雜(當然也非常靈活),簡單的開啟 backup 并不一定會如你期望的那樣進行備份,并且在很多情況下還會讓新手感到無所適從。我不想讓你被這些問題嚇跑,鑒于你在練習階段也不會用 Vim 來做一些非常重要的編輯工作,所以請你關了它。
set nobackupvisualbell & t_vb :help "visualbell" :help "t_vb"
可視化響鈴是為聽覺障礙人士提供可視化提示的功能,如果你不屬于這類人群,你可以關掉它。但是即使如此,大多數人也不想看到屏幕閃爍的提示(一般在終端下發生操作錯誤的時候,會有屏幕閃爍的提示),所以你會看到下面這個看起來互相矛盾的兩條設置,不過請你相信我,我沒寫錯。
set novisualbell set visualbell t_vb=ruler :help "ruler"
在屏幕下方顯示標尺,默認情況下它會在右邊顯示光標所在位置的行號和列號。標尺的作用非常大,多數 Vimer 都喜歡自定義標尺的信息顯示來滿足自己的要求,不過這是一個很大的話題,我們留著以后講。目前為止,默認的標尺就已經夠用了。
set rulernumber :help "number"
number 打開屏幕左側的行號顯示,這個對程序員比較重要。
relativenumber :help "relativenumber"relativenumber 可以將行號變成相對于當前行的方式來顯示,當前行為 0,上方是從 1 開始的正整數,下方是從 -1 開始的負整數。這有什么用呢?它可以幫你快速的精確定位距離當前行的偏移數。見下圖就明白了:
看,當前行是第 27 行,如果我想去 set ruler,我就敲 14k;如果我想去 colorscheme grb256,我就敲 8j,方便吧?
“等一下!你說當前行是 0 啊,為什么上圖會顯示絕對行數呢?”
哦,那是因為我同時開啟了 number 和 relativenumber,這兩個布爾型選項兩兩組合可以產生總計四種行號設置:
set nonu nornu:不顯示行號
set nu nornu:顯示絕對行號
set nonu rnu:顯示相對行號(當前行為 0)
set nu rnu:顯示相對行號(當前行為絕對行號)
猜猜看,我平時喜歡哪種組合?
showcmd :help "showcmd"在屏幕右下角顯示未完成的指令輸入。有時候我們輸入的命令不是立即生效的,它會稍作等待,等候你是否輸入某種組合指令。比如說你想向下移動 7 行,當你按下 7 的時候,你會看到屏幕右下角顯示 7,此時 Vim 并不清楚你最終要做什么,所以它在這里提示你之前的指令然后等待你的下一步操作。
不是所有人都會注意到這里顯示的不僅僅是常規模式下的指令輸入,它還會顯示可視模式下你的選擇情況,比如當前選擇了多少字符,多少行,或者區塊可視模式下的行數x列數。
set showcmdshowmode :help "showmode"
在左下角顯示當前的模式名稱,沒有顯示則代表現在是常規模式。
set showmodescrolloff :help "scrolloff"
這個選項可以讓你設定在上下移動光標時,光標的上方或下方至少會保留顯示的行數。比如說我們設置它的值為 5,那么你向上或向下移動到屏幕接近邊緣還剩 5 行的時候屏幕就會開始滾動。也就是說當你滾動屏幕時,你的光標距離屏幕上下兩邊將保留至少 5 行的高度,這個設定相當有用,多多嘗試找到一個讓自己最舒服的值。
set scrolloff=3backspace :help "backspace"
這個選項的推薦設置是這樣的:
set backspace=indent,eol,start
indent,eol,start 代表的意思是“縮進位置”,“行結束符”,“段首”。這樣設置可以使得 backspace 鍵在這三個特殊的位置也能進行回刪動作。這比較符合我們的期望,很奇怪 Vim 默認竟然不允許在這些地方使用 backspace 吧?
showmatch :help "showmatch"打開此選項使得你在輸入成對的括號時,Vim 會幫助你跳轉并高亮一下匹配的括號(然后回到你正在輸入的位置。這個效果很人性化,你只要親自試一下就能體會到了。
set showmatchmatchtime :help "matchtime"
雖然 showmatch 選項非常人性化,但是 Vim 默認的效果時間太長了,500ms!像我這種把行云流水的輸入看得異常重要的人來說簡直是一種折磨。要小心的是,這個選項接受的值不是 ms 而是奇葩的 1/10 秒,比如說我想要 100ms,那么就是:
set matchtime=1
設置為 0 可以禁止跳轉(高亮還在)。
hlsearch :help "hlsearch"打開搜索高亮模式,若搜索找到匹配項就高亮顯示所有匹配項。
set hlsearchincsearch :help "incsearch"
打開增量搜索模式,Vim 會即時匹配你當前輸入的內容,這樣會給你更好的搜索反饋,不過你還是要在最后輸入
set incsearchignorecase :help "ignorecase"
搜索時忽略大小寫。不過你可以用 C 標識臨時開啟大小寫敏感模式,這個涉及到 Vim 的正則用法,我們以后再講。
set ignorecasesmartcase :help "smartcase"
此選項的開啟會讓搜索模式更加聰明。如果搜索時輸入了任何大寫字母,那么 Vim 會進行嚴格地大小寫匹配;如果搜索時只輸入小寫并開啟了 ignorecase,那么 Vim 就忽略大小寫匹配(所以有大寫也會找到)。
set smartcaseexpandtab :help "expandtab"
將
set expandtabsmarttab :help "smarttab"
smarttab 要和后面的 shiftwidth 配合來用,它只作用于行首位置。當 smarttab 開啟時,在行首鍵入
所以,如果開啟 smarttab,然后 shiftwidth 和 tabstop 設定不一樣的數值,比如一個是 8 一個是 4,那么在行首鍵入
set smarttabautoindent :help "autoindent"
打開自動縮進,我想這個沒有人會不開的吧?不過要注意的是縮進的效果會受 smartindent 的影響。
set autoindentsmartindent :help "smartindent"
為縮進行為采用類似 C 語言的風格,主要適用于擁有塊級作用于的編程語言,不過這也不是絕對的,比如現在的 Javascript 不帶塊級作用域(ES6 就有了),但是它用大括號,所以自動縮進也表現的很好。此外還會對注釋行/塊應用恰當的縮進格式。
然而,Vim 的自動縮進其實是相當復雜但也相當靈活的。smartindent 雖說適用于類似于 C 語言風格的編程語言,但是對于 C 本身,Vim 還有內置一套更靈活的縮進方案。如果你經常編寫 C 程序,你應該仔細看一下::help "cindent"。
此外,為了更好的適應各種語言的特性,Vim 也允許用戶自定義縮進表達式,詳情請見::help "indent"。
set smartindentshiftwidth :help "shiftwidth"
shiftwidth 實際上定義了每一次縮進對應的空格數,當你使用自動格式化(比如 gq),或者手動縮進(<< 和 >>)時,Vim 使用的數值就是這個。
然而讓人糾結的是,如果你還想要 Continueation Indent(見上面的 smarttab),你不得不把 shiftwidth 設定為你不想要的數字(因為 CI 通常比常規的縮進要大),可偏偏縮進步長又依賴這個,所以很難完美的實現所有的自動縮進格式設置。
不要被我的描述搞怕怕了,實際上現在很少有人在乎 CI 了,多數語言的風格標準也不在 CI 的設置上做出約定,所以你盡管把 shiftwidth 設定成和 tabstop 一樣的數值好了。
set shiftwidth=2tabstop :help "tabstop"
tabstop 就是
set tabstop=2softtabstop :help "softtabstop"
softtabstop 會影響
但是對于使用
set softtabstop=2list & listchars :help "list" :help "listchars"
list 開啟對于制表符(tab)、行尾空格符(trail)、行結束符(eol)等等特殊符號的回顯,有助于你觀察這些特殊符號的狀態,精確地控制文本的編輯。
這對于程序員,特別是精(吹)益(毛)求(求)精(疵)的程序員來說至關重要,如果你是,你懂的!
listchars 能讓你進一步控制想要用什么字符來顯示這些特殊符號,如果你設定了 encoding 為 UTF-8,那么你可以使用很多很好看的字符。順便一提,我沒有設置 encoding 是因為 Vim 可以自動檢測系統的 locale,這一點對于 Windows 用戶可能是廢的(或者應該說 Windows 是廢的……),所以請自行設置它。
set list listchars=eol:?,tab:? ,trail:.,
我給出的設置效果如下圖所示:
你可以清楚的看到在 17,18,19 這三行故意輸入的
我秉持著保持簡單的精神為你總結出這些最基礎也是最有用的設置,真心希望能幫助你開一個好頭。但是保持簡單可不是為了讓你簡單的照抄了事呀,就這么短短二十來個設置選項,我足足花了一下午把它們整理并解釋出來,而看一遍文檔也不過就是二十分鐘的功夫。所以我希望你在應用它們之前還是看一下文檔里的說明吧,畢竟這些設置是要一直陪著你的。
然而,另外一個顧慮是擔心你迫不及待的把看到的設置統統都加上,我的建議是慢慢來。因為很多設置都有副作用,盡管這些副作用實際上都在文檔里有說明,但查找文檔是辛苦活兒,這一點我心知肚明。當一次性應用很多設置的時候,你總會有摸不著頭腦的時候,到了那時再去一個一個排查更是吃力不討好的苦差事。
我開始認真學習 Vim 并計劃寫出一個完整的屬于我自己的配置文件的時候,就沒打算盡一日之力而克盡其功。前前后后大約花費了 8 周的時間,幾乎每天騰出 10 分鐘左右來吃透一些操作和選項,設置它們,然后利用一天里剩余的時間盡可能的聯系它們,看看是否有奇怪的地方。然后把它們提交到版本庫進行追蹤。這其實沒有多辛苦,但是保持一個穩定的節奏,每一次都保持簡單,最終獲得的成效是喜人了。比之過去用了一年半窮盡折騰最終卻一事無成,孰優孰劣我想這個結論都能很輕易的得出吧?
最后,我把完成的基礎配置代碼附在文后……并且由于 SegmentFault 蛋疼的語法高亮不認識 Vimscript,所以我又另外附上 Gist 的地址——別復制粘貼,這是練習 Vim 的好機會,我相信你!至于最后幾行我沒有講到的設置,它們都是用來設置配色主題的,我簡要說明一下:
設置選項 | 功能描述 | 附注 |
---|---|---|
background | 配色主題的色系 | 注意,這不是什么背景色!dark 是暗色系,light 是亮色系。 |
colorscheme | 配色主題的名稱 | grb256 是我偏愛的配色主題,但不是 Vim 自帶的,所以你照抄的話一定報錯。默認自帶的主題也不多,你可以在輸入 :colo[rscheme] 然后敲 |
highlight | 自定義主題高亮顏色 | 如果選擇主題有個別地方不盡如人意(常有的事兒),你可以自己改寫或添加更多細節。詳情請見::help syntax |
記得這些設置是無關緊要的,你搞不定也沒有關系,反正以后還會講的……
還要記得即使你發現配置選項有簡寫,也不要在配置文件里用簡寫,否則你回頭查看時總有你想不起來的時候,到時候別怪我沒有提醒你噢!(其實這是教訓T_T)
噢!我好像忘了告訴你如何保存和使用 打開、保存和退出.vimrc 文件放置在當前用戶的根路徑下,Unix & Linux 系的系統都可以用 cd ~ 進入這個路徑。之后輸入 vim .vimrc 即可打開(如果沒有會幫你創建一個)。
在編輯的過程中,鍵入 :w[rite] 然后回車就保存了,如果你已經建立起了初步的節奏,你不會遇到什么問題;但是如果你總是在屏幕上看見 :w...,兄弟,你又忘記返回常規模式了吧?
如果你直接打開了 Vim,忘記了跟文件名,那么你可以 :w[rite] .vimrc 來創建并保存。
退出也很簡單,鍵入命令::q[uit] 即可,另外你還可以鍵入 :wq 連保存帶退出,后者有一個對應的快捷鍵:ZZ,記住它,這是效率幫手。如果你不想保存只想退出,鍵入命令::q!,對應快捷鍵:我不告訴你,自己去查~(這不是我傲嬌,而是因為我覺得習慣這個快捷鍵不好,容易丟失修改,q! 命令雖然稍微麻煩些,但也因此給你更多反悔的時間)
我該如何使用多個 Vim 的配置文件如果你喜歡我的雙副本練習法,那么你將會遇到的一個問題是:Vim 總是很聰明的在打開時加載你的 ~/.vimrc 文件,該如何告知它加載另外一份配置文件呢?答案很簡單:
$ vim -u ~/.vimrc.basic
你可以把這條命令做一個 Alias,這樣會更加快捷。另外在打開 Vim 的時候可以附加一些選項,使用 vim -h 可以看到這些選項的說明。
還有一個值得知道的技巧,在 Vim 中鍵入 CTRL-Z 會將 Vim 臨時掛起并返回其父進程(多數情況下就是 Terminal Shell),之后在終端里輸入 fg 回車之后會回到 Vim。這個技巧有助于你快捷的往返于 Vim 和 終端之間。如果你不方便按 CTRL-Z(比如 Windows……),可以用命令 :st[op] 或 :sus[pend] 代替。
https://gist.github.com/nightire/9815652
set nocompatible " use vim defaults set t_RV= " http://bugs.debian.org/608242 " set runtimepath=$VIMRUNTIME " turn off user scripts, https://github.com/igrigorik/vimgolf/issues/129 syntax on " turn syntax highlighting on by default filetype on " detect type of file filetype indent on " load indent file for specific file type set nobackup " do not keep a backup file set novisualbell " turn off visual bell set visualbell t_vb= " turn off error beep/flash set ruler " show the current row and column set number " show line numbers set showcmd " display incomplete commands set showmode " display current modes set scrolloff=3 " keep 3 lines when scrolling set backspace=indent,eol,start " make that backspace key work the way it should set showmatch " jump to matches when entering parentheses set matchtime=1 " tenths of a second to show the matching parenthesis set hlsearch " highlight searches set incsearch " do incremental searching set ignorecase " ignore case when searching set smartcase " no ignorecase if Uppercase char present " Default indenting options set expandtab smarttab set autoindent smartindent shiftround set shiftwidth=2 softtabstop=2 tabstop=2 " Identify invisible characters and don"t show them by default set list listchars=eol:?,tab:? ,trail:., set background=dark colorscheme grb256 " can not live without this two lines " Make comments and special characters look better highlight Comment ctermfg=245 guifg=#8a8a8a highlight NonText ctermfg=240 guifg=#585858 highlight SpecialKey ctermfg=240 guifg=#585858
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24763.html
摘要:本文將以此為起點,介紹一些替換小技巧。實話實說,使用命令來替換有違于大多數程序員的習慣。接下更進一步,教多幾個小技巧。這么一來,替換將僅在當前大括號內生效。在替換局部變量時,比起全局替換,這樣的替換方式無疑會更高效。 想必用過Vim的人都知道,在Vim里面,以下命令可以替換當前文件的內容: :[range]s/{要被替換的模式}/{替換的內容}/[flags] 其中range指定替換命...
摘要:之所以能卓爾不群靠地就是一種自成一派且精悍有效的編輯器哲學當然也是,就好像網游千千萬卻唯有一覽眾山小,那靠地不是技巧與外在,而是與眾不同的世界觀。征服其實是一種領悟,我融入了的哲學而已。這也是好東西,它比上一個更貼近的哲學。 就在幾個小時以前,我回答了一個關于推薦開發工具的問題,很多朋友表示喜歡和鼓勵,非常感謝!我也很想多寫一些細節,于是便起意開一個系列來聊聊我多次提到的 Vim。 ...
摘要:為什么要有模式呢以上其實已經講述了一些原因,但真正的價值還在于接下來要講到的哲學。鼠標與快捷鍵的操作治標不治本,它們沒能從根本上解決這個問題。 學會用不同的角度去看待和理解這個世界,你收獲的永遠會比你想象的更多。 上回我分享了如何掌握基礎移動的心得體會,而對于很重要的模式卻只是一帶而過,這其實是有原因的。過去我有過幾次教新手 Vim 的經歷,按照慣常的方式先告訴他們模式切換,...
摘要:的哲學第四篇姍姍來遲,狗血的原因我就不多說了,好消息是我將為這個系列帶來一些動態演示。所以目前為止你學會上述四個動作指令就足夠了。以詞為單位使得我們可以更精確也是更具語義化的移動光標,并且要比逐個字符的移動要快得多。 Vim 的哲學第四篇姍姍來遲,狗血的原因我就不多說了,好消息是我將為這個系列帶來一些動態演示。原本我打算錄視頻的,但是文章都寫了那么些篇了,現在再錄視頻似乎晚了些,所以我...
摘要:原文鏈接適合自己的,才是最好的被稱為編輯器之神,是我用過之后才體會到的,用之前實在不敢對它做出什么評價。最初的不適,換來的是效率的飛升。感悟在學習使用的過程中,我最大的感悟就是適合自己的,才是最好的。 原文鏈接:Vim - 適合自己的,才是最好的 Vim 被稱為編輯器之神,是我用過之后才體會到的,用之前實在不敢對它做出什么評價。在大學時代,Vim 的大名就已如雷貫耳,但由于它陡峭的學...
閱讀 2716·2021-11-11 16:54
閱讀 2334·2021-10-09 09:44
閱讀 2560·2019-08-30 15:54
閱讀 1944·2019-08-30 11:24
閱讀 1182·2019-08-29 17:03
閱讀 2113·2019-08-29 16:22
閱讀 2092·2019-08-29 13:11
閱讀 1055·2019-08-29 12:14