跟我讀vim文檔:006_搜尋钳幅、跳轉(zhuǎn)物蝙、標記

在上一章中的第九部分,我們介紹了全文定位跳轉(zhuǎn)敢艰。
只不過只定位了開頭和結(jié)尾而已诬乞。
快捷鍵分別是:

gg
G

之后我們又介紹了定位跳轉(zhuǎn)任意行的方法,例如:

77G
1000G

接下來钠导,我們來更進一步震嫉,介紹任意詞的定位與跳轉(zhuǎn)。


一牡属、搜尋

1票堵、查找

說到任意詞的定位,估計大家就已經(jīng)想到了逮栅,其實就是最最常見的搜索功能悴势。
比如我們要在vim中搜索:galipy

/galipy

在普通模式中,按下正斜杠(/)措伐,然后輸入要搜索的內(nèi)容回車就可以了特纤。
之后按下字母n,就可以查看其他匹配的項了侥加。

這是正向匹配捧存,也就是說,它只會從光標處往下尋找。
但若是想從光標處向上匹配昔穴,應(yīng)該如何操作镰官?
答:

?galipy

用問號(?)就是反向匹配傻咖。
你會發(fā)現(xiàn)朋魔,正斜杠問號其實是在同一個鍵位上。
有沒有熟悉的感覺卿操?
以前我們進行單詞間移動警检,用字母小w;而反向移動害淤,用字母大W扇雕,同樣是相同鍵位~

那么,思考下窥摄,當我們正向匹配galipy镶奉,按n向下查找,如果我們想向回查找應(yīng)該怎么辦崭放?

2哨苛、精準匹配

我們用上面的方法匹配并不精準。
比如我輸入:

/galipy

我想匹配galipy币砂,但是建峭,匹配的結(jié)果只要包含galipy就都會顯示出來。
比如决摧,可能有:

galipy
galipython
thegalipy
thegalipython

那么如何精準匹配呢亿蒸?

這里用到了兩個特殊記號:

\<       #表示:首匹配
\>       #表示:尾匹配

這兩個是什么意思呢?
其實很好理解掌桩。
一個表示匹配結(jié)果開頭完全相同边锁,一個表示匹配結(jié)果結(jié)尾完全相同。

以上面提到的匹配結(jié)果為例:

1波岛、如果輸入:

/\<galipy

則會得到:
galipy
galipython

2茅坛、如果輸入:

/galipy\>

則會得到:
galipy
thegalipy

3、如果輸入:

/\<galipy\>

猜猜看會得到什么結(jié)果则拷?
(注:這是最精確匹配)

答案:你只會得到galipy

3灰蛙、魔法匹配

這個名字是我瞎起的,只是因為這個匹配方法比較好用隔躲,所以就起了一個這樣的名字摩梧。

我們每次想精確匹配時,都要輸入一堆字符才能完成操作宣旱,有沒有相對簡單一點的精確匹配呢仅父?
答案是:有!

不過他有一個前提條件:那就是,你的光標必須停留在相同字符串上笙纤。
其實就是查找有沒有其他相同單詞的功能耗溜。

操作很簡單,在普通模式下省容,把光標移動到相應(yīng)單詞上抖拴,然后輸入:

*

是的,就只輸入一個星號腥椒,他就能查找相同項目了阿宅。
例如,你把光標停留在galipy上(任意字母上即可)笼蛛,然后按下星號洒放,
他其實是執(zhí)行了如下操作:

/\<galipy\>

明白了嗎?

星號是從光標處開始向下查詢滨砍,那么向上查詢呢往湿?
你可能會說,按住shift惋戏。
這次不同之前了领追。因為你輸入星號時本身就按著shift啊响逢!所以只好換一個鍵位了蔓腐。
即:

#

4、模糊匹配

模糊匹配其實涉及到正則表達式了龄句。所以我們不講太多。以后再單獨講解正則表達式散罕。

我們在搜索時分歇,并不是每次都100%確定自己要找的是什么。比如欧漱,我們想搜索galipy职抡,但是我們不記得中間的字母是 i 還是 e 了。
怎么辦误甚?此時就需要用到模糊匹配了缚甩,也就是正則表達式的技巧。

注意看下面的搜索操作和之前有什么不同:

/gal.py

我們把不確定的地方用小數(shù)點(.)代替了窑邦。
明白了嗎擅威?
雖然匹配的結(jié)果可能有很多,比如:
galipy
galepy
galapy
但總比你瞎寫強冈钦。
所以以后有不清楚的地方郊丛,就用小數(shù)點(.)代替就好了。

那么如果我想查找小數(shù)點(.)怎么辦?
如果有編程語言基礎(chǔ)的同學(xué)厉熟,應(yīng)該很容易想到吧~
這里就當思考題了~

5导盅、拓展:行尾行首匹配

這是個特殊的匹配,大家只要知道就好揍瑟。

/^galipy        #字符^,表示:行首匹配白翻,也就是說必須開頭是galipy才能匹配到,有空格都不行绢片。
/galipy$        #字符$,表示:行尾匹配滤馍,必須是galipy結(jié)尾,有空格都不行。
/^galipy$       #完全匹配杉畜,這一行只有g(shù)alipy這幾個字符才可以纪蜒,有空格都不行。

不多講此叠,可以自行實驗:p


二纯续、跳轉(zhuǎn)

說完了搜索,我們來說說跳轉(zhuǎn)灭袁。

我們首先要明白跳轉(zhuǎn)光標移動是兩個概念猬错。
最開始我們接觸的kjhl都只是單純的移動光標,一般都發(fā)生在一行內(nèi)茸歧;
但是跳轉(zhuǎn)不同倦炒,跳轉(zhuǎn)多是跨越多行的行為。
比如上面說到的搜索操作软瞎,我們很少說用搜索操作去匹配第二行的相同內(nèi)容逢唤。一般都是一下不知道跳轉(zhuǎn)到哪里去了對不對?
仔細體會這二者的區(qū)別~

三涤浇、標記

m表示mark鳖藕,即標記的意思。
我們常用m操作標記一些重要段落只锭,并用a~z加以區(qū)分著恩。
比如我們在vim文檔開頭按下ms表示mark start;中間按下mm表示mark middle蜻展;結(jié)尾按下me表示mark end喉誊。具體用哪個字母表示什么意思完全看心情~

之后,我們就可以通過 ' 單引號操作任意跳轉(zhuǎn)了纵顾。

's         #跳轉(zhuǎn)到s標記處
'm         #跳轉(zhuǎn)到m標記處
'e         #跳轉(zhuǎn)到e標記處

并且系統(tǒng)還為我們默認了一處標記伍茄,叫做上一處標記,區(qū)分符號是 ' 施逾,沒錯幻林,就是單引號本身贞盯。。

''          #跳回上一處
''          #再跳回去
''          #再跳回去

如果你想查看自己都進行了哪些標記沪饺,可以在普通模式下輸入如下操作:

:marks

大家可以試試看躏敢,你會發(fā)現(xiàn),系統(tǒng)默認標記還有其他幾個整葡,自己研究研究件余,看看他們都是什么~


四、拓展
除了通過單引號索引標記跳轉(zhuǎn)外遭居,還有一種索引跳轉(zhuǎn)方法:
歷史記錄跳轉(zhuǎn)法

主要通過兩個快捷鍵跳轉(zhuǎn):

ctrl + o      #字母o是old的縮寫啼器,看到單詞應(yīng)該就知道什么意思了吧。
ctrl + i       #字母i并不是什么的縮寫俱萍,據(jù)說只是因為它在字母o的旁邊端壳。。枪蘑。

可以自己實驗一下损谦。
我截取文檔相關(guān)部分來幫助大家理解:
首先是執(zhí)行幾次跳轉(zhuǎn),之后嘗試快捷鍵回跳岳颇。

         |  example text   ^             |
    33G  |  example text   |  CTRL-O     | CTRL-I
         |  example text   |             |
         V  line 33 text   ^             V
         |  example text   |             |
   /^The |  example text   |  CTRL-O     | CTRL-I
         V  There you are  |             V
            example text

如果想查看自己進行了那些跳轉(zhuǎn)命令照捡,可以輸入:

:jumps

多多練習(xí)喲~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市话侧,隨后出現(xiàn)的幾起案子栗精,更是在濱河造成了極大的恐慌,老刑警劉巖瞻鹏,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悲立,死亡現(xiàn)場離奇詭異,居然都是意外死亡新博,警方通過查閱死者的電腦和手機薪夕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叭披,“玉大人,你說我怎么就攤上這事玩讳∩” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵熏纯,是天一觀的道長同诫。 經(jīng)常有香客問我,道長樟澜,這世上最難降的妖魔是什么误窖? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任叮盘,我火速辦了婚禮,結(jié)果婚禮上霹俺,老公的妹妹穿的比我還像新娘柔吼。我一直安慰自己,他們只是感情好丙唧,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布愈魏。 她就那樣靜靜地躺著,像睡著了一般想际。 火紅的嫁衣襯著肌膚如雪培漏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天胡本,我揣著相機與錄音牌柄,去河邊找鬼。 笑死侧甫,一個胖子當著我的面吹牛珊佣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闺骚,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼彩扔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了僻爽?” 一聲冷哼從身側(cè)響起虫碉,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胸梆,沒想到半個月后敦捧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡碰镜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年兢卵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绪颖。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡秽荤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柠横,到底是詐尸還是另有隱情窃款,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布牍氛,位于F島的核電站晨继,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搬俊。R本人自食惡果不足惜紊扬,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一蜒茄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧餐屎,春花似錦檀葛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至庆聘,卻和暖如春胜臊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伙判。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工象对, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宴抚。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓勒魔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親菇曲。 傳聞我的和親對象是個殘疾皇子冠绢,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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

  • Ubuntu的發(fā)音 Ubuntu喊式,源于非洲祖魯人和科薩人的語言孵户,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,156評論 9 467
  • 待整理~ 1岔留、vim ~/.vimrc 進入配置文件 如果不知道vimrc文件在哪夏哭,可使用 :scriptname...
    spfanlost閱讀 1,708評論 0 0
  • vim 選擇文本,刪除献联,復(fù)制竖配,粘貼 文本的選擇,對于編輯器來說里逆,是很基本的東西进胯,也經(jīng)常被用到,總結(jié)如下: v 從...
    壹首簡單的歌閱讀 880評論 0 7
  • 自我總結(jié)篇: 對文件的操作技巧: vim文件一個有三種狀態(tài):命令(瀏覽/輸入命令轉(zhuǎn)變末行模式)运悲,文本(添加/編輯/...
    小知大知閱讀 789評論 0 0
  • 今天 的主題是算計與珍惜班眯,感恩。老師說算計可以參考孫子兵法謀略篇,我就抄了下來巢寡,“未戰(zhàn)而廟算勝者饺著,得算多也;未...
    自由的心yjt閱讀 220評論 0 1