Vim簡明教程

2021-06-21 20:12:36 字數 3398 閱讀 5972

vim是乙個古老的文字編輯器,它非常強大,本文簡單整理一下個人學習和使用它的經驗。

寫在前面:

1,vim最適合於程式設計師使用,最主要是用來編寫源**和指令碼。如果你想找乙個寫文章,製表,做圖之類的軟體,就不用看下去了。

2,vim的學習曲線比較陡,但也沒到**的程度。程式設計師的教育背景一般都是理工科,可以這樣說,和任何一門理工科基礎或專業課程比,它簡直太容易了,所以完全能hold住。

3,有人覺得vim的命令太多,記性不好,人機太過時,那麼多命令全靠死記還是算了。本人記性力很差,但我覺得很多命令和語義有關係,只要英文還一般,我覺得都不是問題,另外最重要的是,vim的命令是組合出來的,完全不需要死記。

下面開始vim之旅

安裝和配置

vim幾乎在所有平台都可見到,如果碰巧你機器上沒有,從這裡找乙個合適你的版本:安裝完執行,你會發現很樸素的介面,不要以為它和win32的記事本一樣,如果你需要語法高亮,行號等,可以試著配置一下vim,這很簡單google "vim 配置",很快你就能配好乙個好看的外表。

normal/insert模式

vim出現得很早,早期的文字編輯有乙個插入模式,它不像現在大多數編輯器,一進來就是可插入狀態,如果你習慣了這樣,這會是你學習vim遇到的第乙個困難。vim的大部分命令都是在normal模式,也是常態。只有你真的需要插入的時候,才會進入插入模式。你會覺得奇怪,我新建乙個指令碼檔案的時候,裡面是空的,我接下來應該一直在插入模式,因為我編寫指令碼!使用vim不是這樣的,normal模式下有很多命令,insert下幾乎只插入文字,正常的節奏一般會是這樣乙個過程:在normal模式輸入一些命令 [-> 用某種方式切入insert模式 -> 敲入文字 -> esc](的意思是可選)。就像你說話一樣,這是乙個句法的最基本的結構,使用vim的過程就是在說很多句這樣的話。

這種編輯方式的好處是,你不再也不需要滑鼠了,甚至不需要鍵盤的游標控制區和小鍵盤區,是的,你可以雙手不離開主鍵盤區完全文字的編寫!

常用命令

常用命令我把它分三大類,分別是游標控制指令,動作命令指令和其它一些超級酷的指令,依次介紹你會覺得像本手冊,還是以一些例子慢慢了解。

第一天

h,j,k,l 游標控制,左下上右

i 從游標所在字元前進入insert,i==insert

:q 退出vim,q==quit

:w 儲存當前檔案 w==write

:q! 不儲存強制退出

:wq 儲存並且退出

以上沒有刪除命令,但細心的你發現進入插入模式後可以用backspace/delete刪除:)

第二天

w/w 游標跳到當前游標的下乙個單詞的開始

e/e 游標跳到當前游標的下乙個單詞的結尾 e僅從空格或tab分隔單詞,e分隔字母和數字

b/b 游標跳到當前游標的上乙個單詞的開始 w僅從空格或tab分隔單詞,w分隔字母和數字(程式設計裡面關鍵字,識別符號)

以上三個命令的小字表示分隔的字母或數字(程式設計裡面關鍵字,識別符號),大寫表示分隔的純空格或tab分母的字串

i 在當前行最前面進入insert

a 從游標所在字元後進入insert

a 從當前行最後面進入insert

x 在normal下刪除當前游標所在字元

第三天

. 重複上乙個命令,如果上乙個命令包含進入insert,那也會重複插入的內容

例,a -> 輸入'// hello' -> esc,然後j移動到下一行 .

這是乙個非常酷的命令!

u 撤銷上乙個命令 u==undo

ctrl-r 重新執行上乙個撤銷的命令 r==redo

ng 跳轉到第n行,n是乙個數字,比如10n,跳到第10行

:n 跳轉到第n行,同上

g 跳到檔案末行

gg 跳到檔案首行

第四天

0 游標跳到當前行首

^ 游標跳到當前行首第乙個不是空格或tab的字元

$ 游標跳到當前行尾

g_ 游標跳到當前行尾最後乙個不是空格或tab的字元

ctrl-f 向下翻頁,游標跟隨移動

ctrl-b 向上翻頁,游標跟隨移動

第五天

yy 複製當前行

dd 複製然後刪除當前行(剪下)

cc 剪下然後進入insert

nyy 從當前行開始往下複製n行

ndd 從當前行開始往下刪除n行

ncc 從當前行開始往下剪下n行並進入insert

p/p 貼上,p從當前行尾開始貼上,p從當前行首開始貼上

第六天

vim的命令有乙個通用執行過程,首先把游標定位在命令開始的位置,然後敲入命令,緊接著把游標定位在命令結束的位置,那調入的命令就會作用於游標變化的這一段字元。

最常用的命令就這3個:y,d,c,意思和第五天學的一樣。

例如:

world hello
我要把world剪下到行尾,首先0跳到行首,d開始要剪下,e游標會跳到world結尾的d,所以world會被剪下。然後$游標跳到行尾,p貼上world。

另乙個通用的方法是,n命令,表示重複n次某個命令。

例如:n. 重複n次上乙個操作

np 貼上n次

v 視覺化,把後續游標選中的內容高亮顯示出來,再後接乙個命令執行,比如前面的de,視覺化的作法就是ved。

第七天

% 神一樣存在的游標定位,它從當前游標往後找第乙個配對的括號((,[,{)的結尾處,比如:

int foo(int a, int (*p)());
0%,將定位到末尾;前的)

/串,搜尋串

*,搜尋游標所在單詞

n,跳到下乙個搜尋的結果

n,跳到上乙個搜尋的結果

f/fa,跳到當前游標往後下乙個字元a處,比如f;,跳到當前行下乙個;處 (大寫反過來往前找)

t/ta,跳到當前游標往後下乙個字元a的前乙個位置 (大寫反過來往前找)

ix,比較特殊的游標定位,從游標當前位置開始,定位到外層的一對括號或引號什麼的,它會改變命令的起始位置。

例如:

int foo(int a, int (*p)());
當前游標在a,di(,將剪下

int a, int (*p)()

ax,類似ix,只是定位的內容包括那一對括號或引號。

ix和ax是可以加n的,比如2a(,定位到上2層配對的()。

結束

到這裡vim的80%功能已經介紹完了。其它功能,巨集錄製,分屏,分頁,make,執行shell,書籤等,如果你感興趣應該很快能熟悉,不再介紹。

00 vim 簡明教程

參考文章 現在,你知道如何在 insert 和 normal 模式下切換了。下面是一些命令,可以讓你在 normal 模式下倖存下來 推薦 hjkl 強例推薦使用其移動游標,但不必需 你也可以使用游標鍵 注 j 就像下箭頭。help 顯示相關命令的幫助。你也可以就輸入 help 而不跟命令。陳皓注 ...

Vim簡明教程 CoolShell 轉)

vim的學習曲線相當的大 參看各種文字編輯器的學習曲線 所以,如果你一開始看到的是一大堆vim的命令分類,你一定會對這個編輯器失去興趣的。下面的文章翻譯自 learn vim progressively 我覺得這是給新手最好的vim的公升級教程了,沒有列舉所有的命令,只是列舉了那些最有用的命令。非常...

Visual Unit 簡明教程

visual unit,簡稱vu,是新一代單元測試工具,功能強大,使用簡單,完全視覺化,不需編寫測試 vu的測試結果使程式行為一目了然,有助於整理程式設計思路,提高程式設計效率和正確性,並能快速排錯 vu還增強偵錯程式功能 如自由後退 用例切換 提高除錯的效率 vu能達到空前的測試完整性,輕鬆完成語...