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

來源:互聯網
上載者:User

一、用拷貝的內容替換

當發生拼字錯誤或者想要重新命名標識符時,就需要用拷貝的內容來替換當前的名字。比如調用函數時寫錯了:

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

只需要先複製上面的函數名,再把游標切換到拼錯的詞首。然後按下viwp,就替換過來了:

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

v進入可視模式,然後iw來選擇游標所在單詞,最後按下p來粘貼。iw表示inner word,有用的搭配還有yiw, ciw等。

二、拷貝整個檔案

當我們剛開始使用Vim時,大神會告訴我們如何拷貝整個檔案:ggvGy, NB一點的大神會告訴我們:ggyG。現在告訴大家:

:%y

三、暫時離開插入模式

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

Vim為此提供了方便:

當我們需要暫時離開insert模式並執行一個命令時,可以按下<c-o>執行完後續命令後Vim自動回到insert模式。

例如:

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

四、字元尋找

Vim游標跳轉雖然有數十種快速鍵,但你有沒有發現當我們碰到長單詞時會很無力,比如我想把下面的description替換為keywords:

tmystr_meta_description

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

五、搜尋當前詞

按下*即可搜尋當前游標所在的詞(word),再次按下搜尋下一個。 按下#搜尋上一個。

*只匹配出現的單詞,對於中文沒有斷字。如果尋找當前詞的所有字串,可以使用g*。

六、命令模式粘貼

如果希望全域尋找替換當前游標所在的單詞,我們可能需要手動地在命令模式下敲出來: %s/foo/bar/g 。 但如果當前游標就在那個單詞上的話,可以在敲完%s/之後將它粘貼到命令裡:

<Ctrl+R><Ctrl+W>

這是命令模式的<Ctrl+R>工具,用法還包括粘貼當前檔案路徑: <Ctrl+R>% 。 更多用法請查看協助: :help c_CTRL-R

七、段落跳轉

這個對中文使用者幾乎無用,但我們在編輯代碼檔案時會很有用。()可以調到句首句尾,{}可以調到段首段尾。

八、選區頭尾跳轉

Emmet外掛程式可以進行HTML的標籤匹配,你按下<c-y>d當前標籤首尾之間被選中。你想調到選中地區的尾部怎麼辦? 按下o即可切換收尾,再次按下v就能回到Normal模式。

有木有特別想在匹配的括弧間跳轉!按下%!

九、原生自動補全

如果你沒有使用任何Vim外掛程式,Vim的自動補全是預設關閉的。在不引入外掛程式的情況下Vim也可以啟用強大的自動補全,只需要設定:

filetype plugin onset omnifunc=syntaxcomplete#Complete

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

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

十、用搜尋來選區

當你需要選擇一大段文字時,不妨先進入visual模式,再進行正則搜尋。例如在markdown中,選擇某個##的內容可以這樣操作: 移動游標到要選中的##上,按下v進入visual模式,輸入/^## 匹配下一個二級標題,按下k回到上一行。

十一、拷貝當前檔案名稱

使用:let @"=expand("%")可以拷貝當前檔案名稱,我們可以給這個命令設一個快速鍵:

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

其中yf拷貝當前檔案名稱到寄存器f,yp拷貝完整檔案路徑到寄存器p。然後分別按下"fp和"pp即可粘貼。

十二、大小寫不敏感搜尋

可以在模式的任何位置加入\c來進行大小寫不敏感搜尋,在任何位置加入\C來進行大小寫敏感搜尋。 可以設定set ignorecase來預設進行大小寫不敏感搜尋,同時可以設定set smartcase: 當模式包含大寫字母時忽略ignorecase設定。

總結

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.