歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Vim 簡易使用教程

Vim 簡易使用教程

日期:2017/2/28 14:51:44   编辑:Linux教程

很早以前就在用 vim,不過水平很菜,就會最基本的操作。而且經常猶豫是不是要投奔Emacs陣營呢,畢竟在傳說中,Emacs強大無比,可以秒殺一切。但是Emacs似乎學起來難度更大,最後還是決定投身vim吧。

一次無意中找到了Steve Oualline 寫的 VI iMproved 一書,看過之後我才真的覺得自己算是入門了。我的這一系列博客其實就是我學習 VI iMproved 一書的學習筆記,希望對各位准備學習VIM的同學有些幫助。(vim和Emacs似乎有些相克,學會了一個就很難再學另一個了,因此,如果決定了學習vim就不要念想著Emacs了)

比起其他的文本編輯器,VIM的學習曲線陡峭的多。我盡量每篇博客只介紹一個小的主題,讓大家容易消化學習。(這一系列博客准備寫81篇,寓意學習vim只有經過81難才能修成正果。不知道能不能堅持寫完啊。)

------------------------------------華麗分割線------------------------------------

Vi 是Unix世界裡極為普遍的全屏幕文本編輯器,VIM是它的改進版本Vi IMproved的簡稱,和Emacs並列成為類Unix系統用戶最喜歡的編輯器。幾乎可以說任何一台Unix機器都會提供這套軟件。由於Vim具有代碼補完、編譯及錯誤跳轉等方便編程的功能,在程序員中被廣泛使用。

VIM 簡史
vi是Bill Joy所寫,當時他還在Berkeley。Ken Thompson去Berkeley的時候帶去了他那不完整的Pascal系統,而Bill Joy恰好在暑假就接到修復它的工作,他對修復代碼時使用的編輯器ed很不滿意。正好,他們從一個叫George Coulouris的家伙那裡拿到了em的代碼,em比ed要好用。他們就修改了em,發明了en,而最終又變成了ex(連Bill Joy本人也不知道怎麼就變成了ex)。後來他熬了幾個月的夜寫出了vi。


Bram Moolenaar 在 80 年代末購入他的 Amiga計算機時,Amiga 上還沒有他最常用的編輯器vi。Bram 從一個開源的 vi 復制 Stevie 開始,開發了 Vim 的 1.0 版本。最初的目標只是完全復制 vi 的功能,那個時候的 Vim 是Vi IMitation(模擬)的簡稱。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和 MS-DOS上。從那個時候開始,Vim 的全名就變成 Vi IMproved(改良)了。在這之後,Vim 加入了不計其數的新功能,包括多視窗編輯模式(分割視窗)、 highlight(語法高亮)功能、代碼折疊、插件、多國語言支持、拼字檢查、上下文相關補完,標簽頁編輯等新功能。


第一課 最基本的操作
從命令行模式運行gvim:gvim

命令行模式打開一個文件:gvim file.txt

如果 file.txt 不存在,則新建一個空文件。


圖 1 新建一個空文件 file.txt


圖 1 中可以看到每行前都有個波浪號(~),這表示這行不在文件中。因為是空文件,當然一行數據都沒有。

VIM 的工作模式
不同於一般的文本編輯器,VIM存在3種工作模式,分別是命令模式,插入模式和 VISUAL 模式。剛打開vim 時處於命令模式,按一下鍵盤i 則進入插入模式。注意這時的窗口左下角原本顯示文件名的地方現在顯示“-- INSERT --”。在插入模式下我們可以像普通的編輯器那樣輸入文本,進行編輯。當我們想退回命令模式時按<Esc>鍵。

移動光標
在命令模式下移動光標可以用鍵盤上的箭頭鍵。但是最快捷的方式是下面四個鍵:

左:h

右:l

上:k

下:j

由於移動光標是最常做的操作,因此給它們分配在右手最方便按到的四個鍵。

刪除字符和一行
刪除當前光標所在的字符:x 鍵

刪除一行:dd

撤銷和恢復
撤銷最近的一次操作:u

恢復最近的一次撤銷操作:Ctrl-R

退出
保存當前文件並退出:ZZ (注意是兩次大寫的Z)

退出但不保存: :q! (冒號 q 然後是感歎號,三個字符)

如果你只是看了看文件沒做任何修改,可以省去上面命令最後的感歎號(!)

其他幾個最基本的編輯命令
在當前行的末尾插入字符(進入到插入模式,並把光標挪到當前行的行尾): a 鍵 (append)

在光標的下一行插入一個空行,並把光標挪到下一行:o 鍵 (open)

獲取幫助信息
:help

:help subject


比如想看看x命令的幫助: :help x

看看CTRL-A 名利的幫助::help CTRL-A


有時,同一個快捷鍵在不同模式時代表不同的命令,vim 默認認為查詢的是命令模式下的那個命令。可以加上前綴來區分不同的模式。i_ 表示插入模式。v_ 表示VISUAL模式。: 表示ex模式。比如下面的例子:

:help i_CTRL-H

:help :quit

重復執行一個命令多次
可以在命令前加上個數字,比如我要在當前位置插入10個a。

10ia<Esc>

最後的<Esc>是為了退回命令模式。如果執行的命令不會讓vim從命令模式進入到其他模式可以不加最後的<Esc>。比如將光標左移3個字符:

3h


OK,知道上面這些就可以進行最基本的操作了。練熟這些再開始第二課。

Copyright © Linux教程網 All Rights Reserved