最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

你可能不知道的Vim使用小技巧

 更新時間:2016年11月21日 09:37:34   投稿:daisy  
這篇文章的目標(biāo)是提供一些vim的使用技巧,利用這些技巧可以提高vim的操作效率。本文的閱讀對象是了解了vim的基本操作,而希望高效地利用vim進(jìn)行工作的人。熟練使用vim的人自然不必細(xì)讀,如果能留下您的寶貴意見那就更好了,下面有需要的朋友們來一起學(xué)習(xí)學(xué)習(xí)吧。

一、用拷貝的內(nèi)容替換

當(dāng)發(fā)生拼寫錯誤或者想要重命名標(biāo)識符時,就需要用拷貝的內(nèi)容來替換當(dāng)前的名字。比如調(diào)用函數(shù)時寫錯了:

void letus_fuckit_with_vim(){
 cout<<"great!";
}
let_fuckat_with_vom();

只需要先復(fù)制上面的函數(shù)名,再把光標(biāo)切換到拼錯的詞首。然后按下viwp,就替換過來了:

void letus_fuckit_with_vim(){
 cout<<"great!";
}
letus_fuckit_with_vim();

v進(jìn)入可視模式,然后iw來選擇光標(biāo)所在單詞,最后按下p來粘貼。iw表示inner word,有用的搭配還有yiw, ciw等。

二、拷貝整個文件

當(dāng)我們剛開始使用Vim時,大神會告訴我們?nèi)绾慰截愓麄€文件:ggvGy, NB一點的大神會告訴我們:ggyG。現(xiàn)在告訴大家:

:%y

三、暫時離開插入模式

當(dāng)我們處在insert模式時,有時會希望在normal模式下執(zhí)行某個命令再馬上回到insert模式。 可能需要先按下<Esc>,執(zhí)行命令,再按下i。

Vim為此提供了方便:

當(dāng)我們需要暫時離開insert模式并執(zhí)行一個命令時,可以按下<c-o>執(zhí)行完后續(xù)命令后Vim自動回到insert模式。

例如:

:map <F5> :! g++ % && ./a.out <CR>
:imap <F5> <c-o><F5>

四、字符查找

Vim光標(biāo)跳轉(zhuǎn)雖然有數(shù)十種快捷鍵,但你有沒有發(fā)現(xiàn)當(dāng)我們碰到長單詞時會很無力,比如我想把下面的description替換為keywords:

tmystr_meta_description

是不是要不斷地敲l(或者敲幾次{num}l),其實可以用單詞查找功能。只需要輸入fd便可以查找當(dāng)前行的下一個字母d。大寫的F可以反向查找。

五、搜索當(dāng)前詞

按下*即可搜索當(dāng)前光標(biāo)所在的詞(word),再次按下搜索下一個。 按下#搜索上一個。

*只匹配出現(xiàn)的單詞,對于中文沒有斷字。如果查找當(dāng)前詞的所有字串,可以使用g*。

六、命令模式粘貼

如果希望全局查找替換當(dāng)前光標(biāo)所在的單詞,我們可能需要手動地在命令模式下敲出來: %s/foo/bar/g 。 但如果當(dāng)前光標(biāo)就在那個單詞上的話,可以在敲完%s/之后將它粘貼到命令里:

<Ctrl+R>
<Ctrl+W>

這是命令模式的<Ctrl+R>工具,用法還包括粘貼當(dāng)前文件路徑: <Ctrl+R>% 。 更多用法請查看幫助: :help c_CTRL-R

七、段落跳轉(zhuǎn)

這個對中文用戶幾乎無用,但我們在編輯代碼文件時會很有用。()可以調(diào)到句首句尾,{}可以調(diào)到段首段尾。

八、選區(qū)頭尾跳轉(zhuǎn)

Emmet插件可以進(jìn)行HTML的標(biāo)簽匹配,你按下<c-y>d當(dāng)前標(biāo)簽首尾之間被選中。你想調(diào)到選中區(qū)域的尾部怎么辦? 按下o即可切換收尾,再次按下v就能回到Normal模式。

有木有特別想在匹配的括號間跳轉(zhuǎn)!按下%!

九、原生自動補全

如果你沒有使用任何Vim插件,Vim的自動補全是默認(rèn)關(guān)閉的。在不引入插件的情況下Vim也可以啟用強大的自動補全,只需要設(shè)置:

filetype plugin on
set omnifunc=syntaxcomplete#Complete

在任何時候,按下<c-x><c-o>將會觸發(fā)自動補全。

參考: http://vim.wikia.com/wiki/Omni_completion

十、用搜索來選區(qū)

當(dāng)你需要選擇一大段文字時,不妨先進(jìn)入visual模式,再進(jìn)行正則搜索。例如在markdown中,選擇某個##的內(nèi)容可以這樣操作: 移動光標(biāo)到要選中的##上,按下v進(jìn)入visual模式,輸入/^## 匹配下一個二級標(biāo)題,按下k回到上一行。

十一、拷貝當(dāng)前文件名

使用:let @"=expand("%")可以拷貝當(dāng)前文件名,我們可以給這個命令設(shè)一個快捷鍵:

nnoremap yf :let @f=expand("%:t")<CR>
nnoremap yp :let @p=expand("%:p")<CR>

其中yf拷貝當(dāng)前文件名到寄存器f,yp拷貝完整文件路徑到寄存器p。然后分別按下"fp和"pp即可粘貼。

十二、大小寫不敏感搜索

可以在模式的任何位置加入\c來進(jìn)行大小寫不敏感搜索,在任何位置加入\C來進(jìn)行大小寫敏感搜索。 可以設(shè)置set ignorecase來默認(rèn)進(jìn)行大小寫不敏感搜索,同時可以設(shè)置set smartcase: 當(dāng)模式包含大寫字母時忽略ignorecase設(shè)置。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的這些小技巧能夠為大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

最新評論

古浪县| 海城市| 江津市| 六枝特区| 屯昌县| 遂溪县| 登封市| 蒙城县| 行唐县| 新宁县| 久治县| 宜黄县| 于田县| 嘉荫县| 重庆市| 葵青区| 塔河县| 肥城市| 苍溪县| 汉沽区| 辽源市| 会昌县| 永川市| 洪湖市| 黎平县| 石嘴山市| 三门县| 永定县| 西平县| 来宾市| 瑞丽市| 工布江达县| 凤冈县| 日土县| 陆良县| 田东县| 大城县| 同心县| 临夏市| 江安县| 濮阳县|