序言
Vim有着非常陡峭的學習曲線,要掌握它需要長時間的練習。打算記錄一些Vim的常用基礎鍵,方便後期查閱,幫助入門的新手。
第一講
第一節:移動光標
^
k
< h l >
j
v
h 的鍵位於左邊,每次按下就會向左移動。
l 的鍵位於右邊,每次按下就會向右移動。
j 鍵看起來很象一支尖端方向朝下的箭頭。
提示:光標鍵應當也能正常工作的。但是使用hjkl鍵,在習慣之後你就能夠更地在屏幕內四處移動光標。
第二節:Vim的進入和退出
vim filename 用vim打開fliename
:q! 強制退出。
這種退出編輯器的方式會丟棄你進入編輯器以來所做的改動。
:wq 以保存文件並退出。
這種退出編輯器的方式會保存你進入編輯器以來所做的改動,將其寫入到文件中。
第三節:文本編輯之插入,添加
在正常模式下,可以按下 i 鍵來插入文本。
在正常模式下,可以按 A 鍵輸入必要的添加內容。
在正常模式下輸入 o 將在光標的下方打開新的一行並進入插入模式。
第四節:文本編輯之刪除
正常(Normal)模式下,可以按下 x 鍵來刪除光標所在位置的字符,按下X可以刪除光標所在的前字符。
輸入 dw 可以從光標處刪除至一個單詞的末尾。
輸入de刪除到本單詞末尾。
輸入dE刪除到本單詞末尾包括標點在內。
輸入db刪除到前一個單詞。
輸入dB刪除到前一個單詞包括標點在內。
輸入 ndw 刪除以當前字符開始的n個字。
輸入d0 刪至行首。
輸入 d$ 從當前光標刪除到行末。
輸入 dG從當前行刪除至最末。
輸入 dd 刪除一行。
輸入 ndd 刪除以當前行開始的n行。
輸入d) 刪除到下一句的開始。
輸入d} 刪除到下一段的開始。
在vim中許多改變文本的命令都由一個操作符和一個動作構成。即命令與對象。
使用刪除操作符 d 的刪除命令的格式如下:
d motion
其中:
d - 刪除操作符。
motion - 操作符的操作對象(在下面列出)。
一個簡短的動作列表:
w - 從當前光標當前位置直到下一個單詞起始處,不包括它的第一個字符。
e - 從當前光標當前位置直到單詞末尾,包括最後一個字符。
$ - 從當前光標當前位置直到當前行末。
因此輸入 de 會從當前光標位置刪除到單詞末尾。
第五節:文本編輯之撤銷
輸入 u 來撤消最後執行的命令,輸入 U 來撤消對整行的修改。
多次輸入 CTRL-R (先按下 CTRL 鍵不放開,接着按 R 鍵),這樣可以重做被撤消的命令,也就是撤消掉撤消命令。
第二講
第一節:使用計數制定動作
在正常模式下輸入 2w 可以使光標向前移動兩個單詞。
輸入 3e 可以使光標向前移動到第三個單詞的末尾。
輸入 0 (數字零) 可以移動光標到行首。
使用操作符時輸入數字可以使它重複那麼多次。如第一講第三節中的刪除命令d,可以在組合動作之前插入一個數字以刪除更多:
d number(數字) motion
如輸入d2w可以刪除兩個大寫字母單詞。
在正常模式下修改命令的格式是:
operator [number] motion
其中:
operator - 操作符,代表要做的事情,比如 d 代表刪除
[number] - 可以附加的數字,代表動作重複的次數
motion - 動作,代表在所操作的文本上的移動,例如 w 代表單詞(word), $ 代表行末等等。
第二節:文本編輯之複製
使用操作符 y 複製文本,使用 p 粘貼文本
輸入 p可將最後一次刪除的內容置入光標之後。
第三節:文本編輯之替換
輸入 r 和一個字符替換光標所在位置的字符。
輸入大寫的 R 可連續替換多個字符。
要改變文本直到一個單詞的末尾,輸入 ce
更改類操作符可以與刪除中使用的同樣的動作配合使用。其操作格式是:
c [number] motion
動作參數(motion)也是一樣的,比如 w 代表單詞,$代表行末等等。
第三講
第一節:定位及文件狀態
輸入 CTRL-G 顯示當前編輯文件中當前光標所在行位置以及文件狀態信息。按下 CTRL 鍵不放開然後按 g 鍵。你會看到頁面最底部出現一個狀態信息行,顯示的內容是當前編輯的文件名和文件中光標位置。
輸入大寫 G 可以使得當前光標直接跳轉到文件最後一行。
輸入 gg 可以使得當前光標直接跳轉到文件第一行。
輸入曾停留的行號,然後輸入大寫 G。這樣就可以返回到第一次按下CTRL-G 時所在的行了。
第二節:搜索類命令
輸入 / 加上一個字符串可以用以在當前文件中查找該字符串。
要查找同上一次的字符串,只需要按 n 鍵。要向相反方向查找同上一次的字符串,輸入N即可。
如果想逆向查找字符串,用 ? 代替 / 進行。
要回到之前的位置按 CTRL-O (按住 Ctrl 鍵不放同時按下字母 o)。重複按可以回退更多步。CTRL-I 會跳轉到較新的位置。
第三節:配對括號的查找
輸入 % 可以查找配對的括號 )、]、}。
把光標放在配對的括號處然後按 % 鍵,即可跳轉到配對的括號處。
再次按 % 就可以跳回配對的第一個括號處。
第四節:替換命令
輸入 :s/old/new/g 可以替換 old 爲 new。
輸入 :s/old/new。該命令只改變光標所在行的第一個匹配串。
輸入 :s/old/new/g 則是替換全行的匹配串,該行中所有的 “old” 都會被改變。
要替換兩行之間出現的每個匹配串,請:
輸入 :#,#s/old/new/g 其中 #,# 代表的是替換操作的若干行中首尾兩行的行號。
輸入 :%s/old/new/g 則是替換整個文件中的每個匹配串。
輸入 :%s/old/new/gc 會找到整個文件中的每個匹配串,並且對每個匹配提示是否進行替換。
第四講
第一節:在 VIM 內執行外部命令的方法
輸入 :! 然後緊接着輸入一個外部命令可以執行該外部命令。
提示:所有的外部命令都可以以這種方式執行,包括帶命令行參數的那些。
第二節:關於保存文件
要將對文件的改動保存到文件中,請輸入 :w FILENAME 。該命令會以 TEST 爲文件名保存整個文件。
要保存文件的部分內容,請輸入 v motion :w FILENAME。
按 v 鍵進入可視模式,選擇要保存的文本,然後按: 字符。你將看到屏幕底部會出現:’<,’> 。
然後輸入 w TEST,這時 Vim 會把選中的行寫入到以 TEST 命名的文件中去。
第三節:提取和合並文件
要向當前文件中插入另外的文件的內容,輸入:r FILENAME。
:r FILENAME 可提取磁盤文件 FILENAME 並將其插入到當前文件的光標位置。
第四節:設置類命令的選項
設置可使查找或者替換可忽略大小寫的選項。
輸入: :set ic,可忽略大小寫查找單詞。要禁用忽略大小寫,可輸入: :set noic
提示:如果你想要僅在一次查找時忽略字母大小寫,可以使用 \c: /ignore\c