vim編輯器的簡單使用

寫這篇文章是由於在更新個人一篇博客 Git的其餘用法 的時候,裏面的修改已經提交的commit說明這一部分須要用到vim。html

在使用git config --global --edit或者git rebase -i commiteId^的時候,git會進入文本編輯模式。默認的編輯器是vim,你能夠在Git安裝的上層目錄\Git\usr\bin裏找到vim.exe。git

這讓我想起之前使用VI(Visual Interface)和VIM(VI IMproved)編輯器時的懵逼。如今乾脆把vim的基本使用整理出來。github

vim編輯器有兩種模式,分別爲命令模式編輯模式正則表達式

1、命令模式

當你剛進入文本編輯器的時候,處於編輯器的命令模式。這個命令模式能夠作不少事情。這裏介紹幾個經常使用的:vim

命令 對應英文單詞 說明
i insert 進入編輯模式,將光標定位在當前字符的前面
v visual mode 按一下v至關於你平時在MS Word裏面按住shift,用來選擇(高亮)一段文本
y yank 和複製的功能同樣(英文意思爲:猛拉)
p paste 粘貼到當前字符前面
x x就是"叉"(或者「幹掉」)的意思 刪除被高亮的字符(光標所在的字符也算是被高亮的字符)
yy yank 複製光標所在行
dd delete 刪除光標所在行
u undo 撤銷上一個修改
ctrl + r redo 不當心撤銷過多的時候使用
/想搜索的字符串 /以後無空格,按Enter鍵開始搜索。按n(即next)往下搜索,按N往上搜索
:1,$ s /text1 /text2 /c substitute text1替換成text21,$表示行數範圍,其中 $ 表示文檔末尾。當你把數字1換成小數點. 時,表示從當前位置開始搜索(跟 bash 中用 . 表示當前位置同樣)。/c表示讓你選擇找到以後的動做:y(yes)表示替換當前所選;n(next)表示跳過當前所選;a(all)表示當前所選及剩下的所有替換,再也不確認;q(quit)表示中止替換。注意前面的冒號,與下面的命令相似。
:q! quit discard 捨棄修改並退出
:wq write then quit 保存修改並退出

看到:q!這個命令,可能有點懵圈。你沒看錯,得先輸入一個冒號:,再去輸入q!。最開始的時候我不知道要輸入冒號,結果半天退不出來。bash

重要的說明
i的說明中,你可能不太理解爲何說「將光標定位在當前字符的前面」。在vim編輯器的命令模式下,光標是覆蓋在字符上的。當你按i,它就將光標定位到當前字符的前面。與此相對的,按a(即append)時,光標就定位到當前字符的後面。app

如圖所示:編輯器

找了半天終於找到一個不錯的在線vim編輯器:Vim.js
還有一款加載比較慢的:Interactive Vim tutorial - sandboxui

點進去後你能直觀地看到光標是覆蓋到字符上的。你能夠分別按ia來查看效果。google

至於其餘命令,仍是看圖比較直觀:

中文版圖源連接

英文版圖源連接

固然,你也能夠下載vim的文檔。這裏是官方文檔:vimbook-OPL.pdf

2、編輯模式

當你按i進入編輯模式的時候,基本上就能夠照常編輯文本了。

除了正常的輸入外,這些按鍵也能夠正常使用:del(往光標後刪除),back(也就是鍵盤上的←,往光標前刪除),enter(回車鍵),tab(製表符)

可是注意,想要選擇字符或者複製粘貼等的時候,必須退出編輯模式,到命令行模式去執行操做。

當你想要退出編輯模式的時候,按esc鍵。注意,這時是退到命令模式,不是徹底退出。你得在命令模式輸入命令來徹底退出編輯。

知道了以上這些介紹,你能夠進行基本的編輯了。

3、正則表達式

在命令模式點擊 / 後,會進入搜索模式。它會搜索 / 以後的 pattern 。

在搜索和替換的時候,若是不能用正則表達式,很可能耗費大量時間。Vim 是支持正則表達式的,不過 Vim 正則表達式的寫法跟一般的寫法有點不同。

好比你要匹配 dekkkldetttl ,你能夠這麼寫:

/de.\+l

這裏的 / 是以前輸入的,表示搜索功能。後面的 de.\+l 是正則表達式。這裏與普通的正則表達式不一樣的地方在於用 \+ 來表示匹配一次或屢次,而不是 +

詳細的規則能夠看:VIM 正則參考

除了搜索以外,替換也能使用正則表達式。替換的語法和上面表格中的一致, text1 這個部分能夠是正則表達式。

相關文章
相關標籤/搜索