四、vi文本编辑器
一、vi和vim的區(qū)別
它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在里面。
vim的這些優(yōu)勢主要體現(xiàn)在以下幾個方面:
1、多級撤消
我們知道在vi里,按 u只能撤消上次命令,而在vim里可以無限制的撤消。
2、易用性
vi只能運行于unix中,而vim不僅可以運行于unix,windows ,mac等多操作平臺。
3、語法加亮
vim可以用不同的顏色來加亮你的代碼。
4、可視化操作
就是說vim不僅可以在終端運行,也可以運行于x window、 mac os、 windows。
5、對vi的完全兼容
某些情況下,你可以把vim當(dāng)成vi來使用。
二、vi/vim的工作模式
有三種工作模式:命令模式、插入模式、編輯模式
它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在里面。
vim的這些優(yōu)勢主要體現(xiàn)在以下幾個方面:
1、多級撤消
我們知道在vi里,按 u只能撤消上次命令,而在vim里可以無限制的撤消。
2、易用性
vi只能運行于unix中,而vim不僅可以運行于unix,windows ,mac等多操作平臺。
3、語法加亮
vim可以用不同的顏色來加亮你的代碼。
4、可視化操作
就是說vim不僅可以在終端運行,也可以運行于x window、 mac os、 windows。
5、對vi的完全兼容
某些情況下,你可以把vim當(dāng)成vi來使用。
二、vi/vim的工作模式
有三種工作模式:命令模式、插入模式、編輯模式
| 命令模式: | 移動光標(biāo) |
| h 或 向左方向鍵 | 光標(biāo)向左移動一個字符 |
| j 或 向下方向鍵 | 光標(biāo)向下移動一個字符 |
| k 或 向上方向鍵 | 光標(biāo)向上移動一個字符 |
| l 或 向右方向鍵 | 光標(biāo)向右移動一個字符 |
| [Ctrl] + [f] | 屏幕『向前』移動一頁(常用) |
| [Ctrl] + [b] | 屏幕『向后』移動一頁(常用) |
| [Ctrl] + [d] | 屏幕『向前』移動半頁 |
| [Ctrl] + [u] | 屏幕『向后』移動半頁 |
| + | 光標(biāo)移動到非空格符的下一列 |
| - | 光標(biāo)移動到非空格符的上一列 |
| n<space> | 按下數(shù)字后再按空格鍵,光標(biāo)會向右移動這一行的 n 個字符。例如 20<space> 則光標(biāo)會向后面移動 20 個字符距離。 |
| 0 | 這是數(shù)字『 0 』:移動到這一行的最前面字符處(常用) |
| $ | 移動到這一行的最后面字符處(常用) |
| H | 光標(biāo)移動到這個屏幕的最上方那一行 |
| M | 光標(biāo)移動到這個屏幕的中央那一行 |
| L | 光標(biāo)移動到這個屏幕的最下方那一行 |
| G | 移動到這個檔案的最后一行(常用) |
| nG | 移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的 20 行(可配合 :set nu) |
| n<Enter> | 光標(biāo)向下移動 n 行(常用) |
| 命令模式: | 搜尋與取代 |
| /word | 向光標(biāo)之后尋找一個字符串名稱為 word 的字符串。(常用) |
| ?word | 向光標(biāo)之前尋找一個字符串名稱為 word 的字符串。 |
| :n1,n2s/word1/word2/g | 在第 n1 與 n2 行之間尋找 word1 這個字符串,并將該字符串取代為 word2 !(常用) |
| :1,$s/word1/word2/g | 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 !(常用) |
| :1,$s/word1/word2/gc | 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 !且在取代前顯示提示字符給使用者確認(rèn)(conform)是否需要取代!(常用) |
| 命令模式: | 刪除、復(fù)制與貼上 |
| x, X | x 為向后刪除一個字符, X 為向前刪除一個字符(常用) |
| nx | 向后刪除 n 個字符 |
| dd | 刪除游標(biāo)所在的那一整列(常用) |
| ndd | 刪除光標(biāo)所在的向下 n 列,例如 20dd 則是刪除 20 列(常用) |
| d1G | 刪除游標(biāo)所在到第一行的所有數(shù)據(jù) |
| dG | 刪除游標(biāo)所在到最后一行的所有數(shù)據(jù) |
| yy | 復(fù)制游標(biāo)所在的那一行(常用) |
| nyy | 復(fù)制光標(biāo)所在的向下 n 列,例如 20yy 則是復(fù)制 20 列(常用) |
| y1G | 復(fù)制游標(biāo)所在列到第一列的所有數(shù)據(jù) |
| yG | 復(fù)制游標(biāo)所在列到最后一列的所有數(shù)據(jù) |
| p, P | p 為復(fù)制的數(shù)據(jù)在光標(biāo)下一行貼上,P 則為貼在游標(biāo)上一行!(常用) |
| J | 將光標(biāo)所在列與下一列的數(shù)據(jù)結(jié)合成同一列 |
| c | 重復(fù)刪除多個數(shù)據(jù),例如向下刪除 10 行,[ 10cj ] |
| u | 復(fù)原前一個動作。(常用) |
| 插入模式 | ? |
| i, I | 插入:在目前的光標(biāo)所在處插入輸入之文字,已存在的文字會向后退;(常用) |
| a, A | 增加:由目前光標(biāo)所在的下一個字開始輸入,已存在的文字會向后退:(常用) |
| o, O | 插入新的一行:從光標(biāo)所在的下一行枝行首開始輸入文字;(常用) |
| r, R | 取代:r 會取代光標(biāo)所在的那一個字符;R會一直取代光標(biāo)所在的文字,直到按下 ESC 為止;(常用) |
| Esc | 退出插入模式,回到命令模式中(常用) |
| 編輯模式 | ? |
| :w | 將編輯的數(shù)據(jù)寫入硬盤檔案中(常用) |
| :w! | 若檔案屬性為『只讀』時,強制寫入該檔案 |
| :q | 離開 vi (常用) |
| :q! | 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。 |
| :wq | 儲存后離開,若為 :wq! 則為強制儲存后離開(常用) |
| :e! | 將檔案還原到最原始的狀態(tài)! |
| ZZ | 若檔案沒有更動,則不儲存離開,若檔案已經(jīng)經(jīng)過更動,則儲存后離開! |
| :w [filename] | 將編輯的數(shù)據(jù)儲存成另一個檔案(類似另存新檔) |
| :r [filename] | 在編輯的數(shù)據(jù)中,讀入另一個檔案的數(shù)據(jù)。亦即將 『filename』這個檔案內(nèi)容加到游標(biāo)所在行后面 |
| :set nu | 顯示行號,設(shè)定之后,會在每一行的前綴顯示該行的行號 |
| :set nonu | 與 set nu 相反,為取消行號! |
| n1,n2 w [filename] | 將 n1 到 n2 的內(nèi)容儲存成 filename 這個檔案。 |
| :! command | 暫時離開 vi 到命令模式執(zhí)行 command 的顯示結(jié)果!例如[ :! ls /home ] |
轉(zhuǎn)載于:https://www.cnblogs.com/limiracle/p/3895159.html
總結(jié)
- 上一篇: bzoj1669 [Usaco2006
- 下一篇: 数据库分库分表(sharding)系列(