好用到哭!8個技巧讓Vim菜鳥變專家

原文: https://juejin.im/post/5da68cb8f265da5b8c03c4a1web

Vim只不過是一個文本編輯器,但若是你曾見過真正的高手是如何使用vim的,你就會知道,這個軟件出人意料地強大、高效、迅捷。對於高水平使用者而言,vim可以幫助其更清晰、明確地表達操做指令。一旦熟練掌握vim語言,使用者就能更加快速地和本身的電腦交流。vim

必備條件dom

在開始閱讀本文以前,你應該至少知道vim有哪些簡單的指令,例如基本動做、導入操做和查找信息。若是你還不瞭解這些知識,你能夠打開軟件終端並運行:編輯器

sudo apt-get install vimide

接着,你就能夠運行如下指令來自學vim:post

vimtutorspa

1. 宏指令orm

不得不重複進行的某些文本編輯任務會讓人以爲很煩躁,作那些須要操做者重複幾十次的任務就更糟糕了。宏指令可以有效地解除這些麻煩。你只須要敲擊一個記錄鍵,輸入須要改變的指令,而後在指令結束時中止記錄就能夠了。以後,你就能夠重複使用在這個記錄裏的動做了,而這隻需你按下一個鍵。cdn

• 按下‘q’鍵讓vim開始記錄,而後按任意鍵,來告訴vim你想把保存的記錄下次經過這個鍵來調出。本次案例中,這個鍵設置爲‘a’,因此完整的指令就是‘qa’。ip

• 執行你的命令。

• 按下‘q’來結束記錄。

• 須要重複保存的系列動做時,輸入‘@a’便可。

2. 相對行號

沒人喜歡心算。即便你能心算得很快,算出23=23總要快於141-118=23。相對行號和絕對行號不一樣,它顯示的是你光標所在行的相對數字。這個功能不只便利了刪除行的操做,也使跳到指定位置的過程變得更爲簡潔。你能夠在.vimrc中加入如下指令來獲得這個結果:

set relativenumber

舉例來說,你能夠經過輸入下列vim指令來刪除其後的25行:

25dd

3. 寄存器(Registers)

寄存器是在複製文本後,臨時儲存要粘貼內容的空間。每臺電腦都有不少寄存器。Vim會自動地使用一個寄存器來儲存它的文本,這些文本和電腦裏其餘臨時儲存的複製文本不同。向你的.vimrc中加入如下指令:

set clipboard=unnamed

set clipboard=unnamedplus

加入這項指令後,在vim中複製粘貼文本就從「CTRL+V」, 和「CTRL+C」這一過程變爲簡單地輸入‘p’。

若是你想在不重寫你的寄存器的狀況下刪除文本,你能夠在指令前加上「_符號:「_dd 來刪除一行。

4. 重映射Escape操做

Escape鍵和主鍵(home row)離得很遠。所以,它並非一個離開當前指令很好的選擇。你能夠在你的.vimrc中加入:

cnoremap kj <C-C>

cnoremap jk <C-C>

這樣,你就能夠經過鍵入’jk’或者‘kj’來離開一個指令,同時,你的手一直呆在主鍵區。

5. 動詞+修飾詞+賓語

Vim有一套本身特殊的語法,這套語法遵循‘動詞+修飾詞+賓語’結構。

動詞舉例:

• ‘d’刪除(delete)

•‘c’改變(change)

修飾詞舉例:

• ‘t’直到(till)

• ‘f’找到(find)

• ‘i’裏(inside)

賓語舉例:

• ‘w’詞(word)

• ‘(’插入語(parenthesis)

• ‘t’標籤(tag)

• ‘s’句子(sentence)

• ‘「’引用

舉個例子,‘diw’就是刪除光標所在的詞,不管光標是在詞首仍是詞尾。‘dt)’刪除光標所在位置和下括號之間的文本。‘cfp’能刪除光標所在位置到該段落結束前的全部文本,以後自動載入插入模式。和‘.’(重複前序指令)一塊兒使用,這套語法就很是強大。

6. 處理空白格(White space fixing)

軟件工程中最讓人受不了的狀況,就是遇到tabs而不是空和空白格(white space)在一行的結尾。爲了解決這個問題,你能夠向.vimrc加入:

set list

這個指令會在每行結尾顯示一個$符號,而且用^I代替tabs。你從而能更容易地識別出tabs和行尾。除此以外,下面的例子中,使用了空代替全部的tabs,這也讓空白格更加便於處理:https://vim.fandom.com/wiki/Example_vimrc.

7. 快速查找(navigate)

你習得的有關vim的第一個操做,就是如何使用hjkl鍵來查找信息。可是,這實際上是很慢的查找方式。這裏列出了能幫助你快速查找的指令:

• 敲擊‘gg’來移動到文檔的頂部,‘G’來移動到最底部。

• 敲擊CTRL+F來快速向前移動,CTRL+B來快速向後移動。

• 敲擊‘zz’來從新定位頁的中心,這也你的光標就成爲新的中心。

• 遇到上括號像‘{’或者‘(’,你能夠敲擊‘%’來移動到它們所匹配的下括號。

• ‘/’能夠開始查找你想要的詞。

8. 日期(date)

在許多場景下,你須要給文件加上日期。這一操做緩慢且乏味。這時,你能夠向你的.vimrc中加入:

nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>

imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>

從而能夠只經過鍵入F3來給文檔加日期和時間。

相關文章
相關標籤/搜索