Vim 編輯器的一些實(shí)用小技巧
?vim 編輯器就像海洋一樣,美好和快樂,如果你深入其中,你就會(huì)情不自禁地愛上它,并且再也不愿走出來(lái)。
vim 編輯器之所以經(jīng)久不衰,就是因?yàn)樗兄还赡ЯΓ瑹o(wú)論你使用它多少年了,你總能在某一天看到其他人對(duì)它更優(yōu)雅的操作,它的上限很高,高到可以讓你使用它快速地完成任何你想編輯的代碼。
接下來(lái),我將分享一些可能被你忽略但是卻非常重要的東西 vim 的技巧經(jīng)驗(yàn)。
help everything
在 linux 系統(tǒng)中,如果你遇到問(wèn)題,第一時(shí)間不是去問(wèn)其他人,也不是去搜索引擎找答案,而是使用man命令尋求幫助,它會(huì)給我們最大程度的幫助,大多數(shù)情況下都能解決我們的問(wèn)題。
同樣在 vim 中,我們遇到問(wèn)題的時(shí)候也可以使用 help 尋求幫助,而 vim 的幫助文檔很詳細(xì),足可以幫助我們解決絕大部分問(wèn)題。
save as root
很多時(shí)候我們編輯一些文檔以后,會(huì)發(fā)現(xiàn)權(quán)限不夠,需要我們使用 root 權(quán)限進(jìn)行編輯,這個(gè)時(shí)候如果退出,然后重新使用 sudo 編輯會(huì)非常得不償失,那么我們可以在vim中直接調(diào)用 sudo 命令來(lái)使用 root 用戶進(jìn)行保存。
:w !sudo tee %
spaces and tabs convert
有些時(shí)候,我們需要對(duì)代碼中的空格和tab進(jìn)行相應(yīng)的轉(zhuǎn)換,在vim中,這種轉(zhuǎn)換很方便,通過(guò)幾個(gè)命令,就可以完成對(duì)指定文本的轉(zhuǎn)換,通過(guò)選區(qū)的控制,我們可以指定轉(zhuǎn)換的位置。
:set noexpandtab
:retab!
:set expandtab
:set tabstop=4
:set shiftwidth=4
:retab
indent lines
在vim中我們對(duì)于縮進(jìn)可以非常簡(jiǎn)單,直接在正常模式下輸入=就可以完成對(duì)文本的縮進(jìn),如果對(duì)所有行進(jìn)行縮進(jìn),那么一個(gè)簡(jiǎn)單的命令gg=G就可以完成。
auto smart indent
當(dāng)我們想要輸入新的一行的時(shí)候,很多時(shí)候我們需要使用tab或者空格進(jìn)行定位,但是其實(shí)有更簡(jiǎn)潔的方法,那就是S,通過(guò)輸入S,光標(biāo)就會(huì)自動(dòng)定位到縮進(jìn)的位置,然后進(jìn)入到插入模式,我們可以直接輸入代碼即可。
show spell mistakes
在vim中輸入英文的時(shí)候,我們很有可能輸入了一些錯(cuò)誤的單詞,這個(gè)時(shí)候我們可以讓vim開啟拼寫檢查功能,它就會(huì)智能地顯示出我們拼寫錯(cuò)誤的單詞。
:set spell
insert mode quick delete
我們知道在正常模式下,我們可以通過(guò)d和x進(jìn)行快速地刪除文本,那么在插入模式,就是編輯文件的時(shí)候,我們有辦法快速刪除單詞嗎?答案是有的,我們可以通過(guò)下面的快捷鍵進(jìn)行快速刪除。
ctrl+w
ctrl+h
ctrl+u
ctrl+k
open particular line
當(dāng)我們使用一些軟件查詢到某個(gè)關(guān)鍵詞出現(xiàn)在某行的時(shí)候,我們希望我們vim可以直接定位到這一行,那么我們可以使用vim + line的方式打開文件,就可以直接跳轉(zhuǎn)到指定行號(hào),當(dāng)然這個(gè)其實(shí)并沒有太多的意義,因?yàn)檫M(jìn)入文件之后,在通過(guò)行號(hào)定位也不算麻煩,可能唯一的好處應(yīng)該就是對(duì)于一個(gè)大文件的話,可以省略渲染,直接找到位置。