vim是一個功能非常強大的文本編輯器低剔,它有超多的命令账蓉。本篇文章介紹vim的基本操作溜嗜,參考該內(nèi)容可以讓你輕容入門vim編輯器疑俭,領略vim的powerful!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.1:vim光標的移動
使用vim編輯器時肮雨,可以使用`h,j,k,l`來移動光標。
h:光標左移梭稚;
l:光標右移颖低;
j:光標下移;
k:光標下移弧烤。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.2:退出vim
`:q! 回車`
在正常模式下忱屑,輸入冒號(:)會進入到命令行模式下,q命令表示退出暇昂。
感嘆號(]航洹)表示無論文本的修改是否被保存,都要退出话浇。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.3:文本編輯 - 刪除
按鍵?x?用來刪除光標所在位置的字符內(nèi)容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.4:文本編輯 - 插入
在正常模式(Normal)下闹究,按 i 鍵幔崖,進入插入模式(Insert)。
在插入模式下渣淤,可以輸入文本內(nèi)容到光標位置赏寇。
如果需要退出插入模式,返回到正常模式价认,需要按`<Esc>`按鍵嗅定。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lseeon 1.5:文本編輯 - 附加內(nèi)容
在正常模式(Normal)下,按 A 鍵用踩,光標會移動至該行內(nèi)容末尾渠退,并進入插入模式(Insert)。
同樣脐彩,如果需要退出插入模式碎乃,則需要按`<Esc>`按鍵。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.6:編輯文件
使用` :wq `命令惠奸,保存文件并退出梅誓。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lseeon 1 小結(jié)
1. 光標移動。
h (←) j (↓)? ? ? k (↑) ? ? l (→)
? 2. 終端使用vim打開一個文本:? vim FILENAME <ENTER>佛南。
? 3. 退出vim: ? <ESC>? :q! <ENTER>? 放棄所有未保存的變更內(nèi)容梗掰。
? ?或者 輸入: ? <ESC>? :wq <ENTER>? 保存變更內(nèi)容并退出。
? 4. 刪除光標位置的字符:? x
? 5. 插入或者扇入文本內(nèi)容:
i? 插入文本嗅回,在光標之前插入文本內(nèi)容
A? 在本行結(jié)尾處插入內(nèi)容
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.1:刪除命令
` dw `命令可以刪除一個單詞及穗。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.2:其他刪除命令
` d$ ` 可以刪除光標位置到行末尾的內(nèi)容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.3:操作命令和操作對象
大多數(shù)的命令對文本的操作是以`操作命令 + 操作對象`的格式來操作文本的绵载。如:
d motion
d 表示一個刪除的操作命令拥坛;
motion 表示操作對象蓬蝶。
常用操作對象列表:
w - 光標位置到下一個單詞的第一個字符(不包含);
e - 光標位置到該單詞結(jié)尾(包含單詞最后一個字符)猜惋;
$ - 光標位置到行末尾丸氛。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.4:對多個操作對象操作
在操作對象前輸入一個數(shù)字,表示重復該操作多次著摔。
如:
2w 移動光標到后兩個單詞的詞頭
3e 移動光標到后三個單詞的詞尾
0 移動光標到當前行首
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.5:使用數(shù)字進行多次刪除
在操作命令后接一個數(shù)字缓窜,表示重復該操作多次。
d number motion
如:
d2w? - 刪除兩個單詞
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.6:對行的操作
使用`? dd `命令可以刪除一整行內(nèi)容
如:
2dd - 刪除當前行及下一行內(nèi)容谍咆。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.7:撤銷操作命令
` u `命令可以撤銷上一步操作內(nèi)容禾锤。` U `可以撤銷對整個一行的修改。
`?CTRL-R `則與` u `命令相對摹察。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2 小結(jié)
1. 刪除當前光標位置到下一次單詞開始處: dw
2. 刪除當前光標位置到當前行結(jié)尾:? ? d$
3. 刪除整行內(nèi)容:? ? dd
4. 重復一個操作對象可以在其前插入一個數(shù)字:? 2w
5. 操作命令的基本格式:
? ? ? ? ? ? ? operator? [number]? motion
? ? 其中:
? ? ? operator - 表示操作碼
? ? ? [number] - 表示重復次數(shù)
? ? ? motion? - 表示操作對象,
? 6. 移動光標到行首:? 0
? 7. 撤銷之前的操作內(nèi)容: ? ? ? u? (lowercase u)
? ?撤銷一整行的操作內(nèi)容:? U? (capital U)
? ?撤銷上次的撤銷內(nèi)容(redo): ? ? ? CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.1:粘貼命令
` p `(put)命令將前一個刪除命令刪除的內(nèi)容恩掷,粘貼到光標所在字符位置之后。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.2:替換命令
` r{char} `命令用{char}替換當前光標位置處的字符供嚎。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.3:修改操作
` ce `命令會刪除當前光標位置至該單詞結(jié)束處的所有字符黄娘,然后進入插入模式。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.4:關于 c 命令的其他用法
` c `命令同樣支持` c [number] 操作對象` 的用法克滴。
操作對象可選逼争,如:w(word),$(end of line)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3 小結(jié)
1. ` p `命令劝赔,粘貼上次刪除內(nèi)容到光標位置之后誓焦。
2.` r `命令,替換單個字符着帽。?
3. ` c$ `命令杂伟,刪除光標位置至行末內(nèi)容。
4. 修改操作的常用格式:
c? [number]? 操作對象
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.1:光標位置及文件狀態(tài)
<ctrl + g>命令會顯示文件名稱及光標位置所在行仍翰。
' G '命令移動光標到文件底部稿壁。
` gg `命令移動光標到文件的開始位置。
` <line number>G `命令移動光標到文件指定行歉备。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.2:查找命令
` /<詞組> `命令可以查找一個<詞組>
` / `正向查找傅是,` ? `反向查找
` n `查找下一個,` N `查找上一個
` ctrl + o `回退到上一位置?????
` ctrl + i `前進到下一位置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.3:括號匹配查找
當光標位置為一個`(? [ { ` 時蕾羊,' % '命令可以跳轉(zhuǎn)到與該括號匹配的另一個括號上喧笔。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lseeon 4.4:替換(substitute)命令
` :s/old/new/g `命令可以將本行所有的[old]替換為[new]。
其中g表示替換當前行的所有[old]為[new]龟再。
` :%s/old/new/g `命令中添加%則表示替換全文范圍內(nèi)出現(xiàn)的[old]為[new]书闸。
` :%s/old/new/gc `命令中添加c時,每次匹配到[old]都會出現(xiàn)提示符利凑,詢問是否需要替換該[old]為[new]浆劲。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4:小結(jié)
? 1. CTRL-G? 顯示當前光標所在位置以及文件的狀態(tài)
? ? ? ? ? ? G? 移動光標到文件末尾
? ? number? G? 移動光標到給定行
? ? ? ? ? ? gg? 移動光標到文件第一行
? 2. 在` / `后輸入要查找的內(nèi)容嫌术,可以從當前位置正向查找該內(nèi)容;
在` ? `后輸入要查找的內(nèi)容牌借,可以從當前位置反向查找該內(nèi)容度气;
完成一次查找查找操作之后,` n `命令可以以同樣的方向查找到下一個出現(xiàn)該內(nèi)容的位置膨报,` N `命令以相反方向查找到下一個出現(xiàn)該內(nèi)容的位置磷籍。
? ? CTRL-O 可以移動光標到上一個位置, CTRL-I 可以移動光標到下一個位置。
? 3. 當光標位于一個括號字符位置時现柠,` % ` 命令可以移動到與該括號配對的括號所在位置院领。
? 4. 內(nèi)容替換? ?:s/old/new
? ? 替換所有的出現(xiàn)的內(nèi)容? ?:s/old/new/g
? ? 指定行數(shù)范圍內(nèi)內(nèi)容替換? :#,#s/old/new/g
? ? 替換文檔中出現(xiàn)的所有內(nèi)容? ?:%s/old/new/g
? ? 替換前詢問確認需要加'c'命令? ?:%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.1:在vim中執(zhí)行外部命令
vim中支持暫時返回到終端執(zhí)行一次終端命令,如` :!ls `命令够吩,會在終端執(zhí)行 ls 命令比然。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.2:文件寫入操作
` :w `命令將當前文本內(nèi)容寫入正在打開的文件中,可以理解為保存修改內(nèi)容命令周循。
如果需要將文件寫入一個新文件强法,可以在該命令后接空格+文件名,將文件寫入新的文件鱼鼓。
如` :w TEST `命令拟烫,將文件寫入TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.3:選擇文本并寫入文件
使用` v `命令之后该编,通過方向鍵移動光標來選擇文本迄本,輸入` : `命令進入命令行模式,此時课竣,底欄會出現(xiàn)提示符' :'<,'> '嘉赎,繼續(xù)輸入` w TEST `按回車,則會將光標選中的文本寫入TEST文件于樟。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.4:讀入文件到當前光標所在行
使用` :r FILENAME `命令公条,可以將文件FILENAME寫入到光標所在位置的當前文件中。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
?Lesson 5 小結(jié)
? 1.? ` :! `命令可以執(zhí)行一個外部命令
? ? ? 如:
:!ls ? -? 顯示一個目錄下的文件列表
:!rm FILENAME? -? 刪除文件FILENAME.
? 2.? :w FILENAME? 將當前文件寫入文件FILENAME中
? 3.? v? motion? :w FILENAME? 保存選中文件到文件FILENAME中
? 4.? :r FILENAME? 讀取文件FILENAME 到當前光標所在文件的位置
? 5.? :r !ls? 讀取ls命令的輸出到當前文件中光標位置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.1:文件打開命令
` o `命令可以在光標所在行的下一行插入空行迂曲,并進入插入模式靶橱。
` O `命令可以在光標所在行的上一行插入空行,并進入插入模式路捧。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.2:附加文本命令
` a `命令在當前光標位置之后進入插入模式关霸。
` e `命令可以跳轉(zhuǎn)到下一個單詞的最后一個字符。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.3:其他替換方式
` R `命令可以進入替換模式杰扫,類似鍵盤上的<insert>按鍵队寇。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.4:文本的復制和粘貼
` y `命令用來對選中內(nèi)容復制,` p `命令用來將復制的內(nèi)容粘貼到光標位置章姓。
可以使用` yw `命令來復制一個單詞佳遣。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
? ? Lesson 6.5:選項設置
設置查找替換命令忽略字母大小寫
` :set `命令用來設置vim的選項內(nèi)容识埋。
` :set ic `設置忽略大小寫
` :set hls `設置查找內(nèi)容高亮
` :set is `和` :set incsearch `設置?零渐?窒舟?
如果只想設置本次查找忽略大小寫,可以在命令最后添加` \c `
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6 小結(jié)
1. ` o `命令將將光標所在行的下一行插入空行相恃,并進入插入模式辜纲。
` O `命令將將光標所在行的上一行插入空行,并進入插入模式拦耐。
2. ` a `命令將在光標所在為位置之后進入插入模式耕腾。
` A `命令將在光標所在行的行末進入插入模式。
3. ` e `命令移動光標到當前單詞的最后一個字符杀糯。
4. ` y `命令用來復制選中內(nèi)容扫俺,` p `命令用來粘貼內(nèi)容。
5. ` R `命令可以進入替換模式固翰。
6. ` :set xxx `命令用來設置vim選項狼纬。如:
? 'ic' 'ignorecase' 查找時忽略字符大小寫
'is' 'incsearch' show partial matches for a search phrase
'hls' 'hlsearch' 高亮匹配到的內(nèi)容
7. 可以在選項前加`no`來關閉選項內(nèi)容,如:` :set noic `
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7.1:獲取help內(nèi)容
vim提供一下三種方式來獲取help信息
- <HELP> 按鍵
- <F1> 按鍵
- ` :help `命令
` CTRL-W CTRL-W `將光標從一個窗口移動到另一個窗口骂际。
此外可以查看單個命令命令的help信息疗琉,如:
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
? ? ? Lesson 7.2:創(chuàng)建一個vim啟動配置腳本
Linux環(huán)境下,vim啟動時會讀取~/.vimrc文件中的配置內(nèi)容歉铝。
1. 使用vim打開~/.vimrc文件盈简;
2. 讀取vim提供的vimrc文件:
:r $VIMRUNTIME/vimrc_example.vim
3. 寫入文件到磁盤:
:w
當你下一次打開vim時,.vimrc配置文件中的內(nèi)容會生效太示。
` :help vimrc-intro `可以獲取更多相關內(nèi)容柠贤。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
? ? Lesson 7.3:補齊功能
` CTRL - D `命令可根據(jù)以輸入的內(nèi)容提供顯示聯(lián)想內(nèi)容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7 小結(jié)
? 1. ` :help`? 或者 <F1> 或者 <Help>? 可以打開help窗口类缤。
? 2. ` :help cmd `查看cmd的幫助信息臼勉。
? 3. ` CTRL-W CTRL-W `將光標從一個窗口移動到另一個窗口。
? 4. ` :q `可以關閉help信息窗口餐弱。
? 5. 配置.vimrc文件會在每次vim打開時被讀取宴霸。
? 6. 命令行模式下,`CTRL - D`命令可以根據(jù)以輸入的內(nèi)容聯(lián)想可能輸入膏蚓。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~