vi是「Visual interface」的簡稱,它在Linux上的地位就彷彿Edit程序在DOS上同樣。它能夠執行輸出、刪除、查找、替換、塊操做等衆多文本操做,並且用戶能夠根據本身的須要對其進行定製。Vi不是一個排版程序,它不象Word或WPS那樣能夠對字體、格式、段落等其餘屬性進行編排,它只是一個文本編輯程序。 vi沒有菜單,只有命令,且命令繁多。shell
Vi有三種基本工做模式:
編程
+ 命令模式 + 文本輸入模式 + 末行模式。
(注:底行模式下輸入x效果和wq同樣)vim
任什麼時候候,無論用戶處於何種模式,只要按一下ESC鍵,便可使Vi進入命令模式;咱們在shell環境(提示符爲$)下輸入啓動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,用戶能夠輸入各類合法的Vi命令,用於管理本身的文檔。此時從鍵盤上輸入的任何字符都被當作編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令以後完成相應的動做。但需注意的是,所輸入的命令並不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。編輯器
在命令模式下輸入插入命令i、附加命令a 、打開命令o、修改命令c、取代命令r或替換命令s均可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當作文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程當中,若想回到命令模式下,按鍵ESC便可。字體
末行模式也稱ex轉義模式。在命令模式下,用戶按「:」鍵便可進入末行模式下,此時Vi會在顯示窗口的最後一行(一般也是屏幕的最後一行)顯示一個「:」做爲末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩衝區的內容寫到文件中等)。末行命令執行完後,Vi自動回到命令模式。例如:spa
:sp newfile
則分出一個窗口編輯newfile文件。若是要從命令模式轉換到編輯模式,能夠鍵入命令a或者i;若是須要從文本模式返回,則按Esc鍵便可。在命令模式下輸入「:」便可切換到末行模式,而後輸入命令。命令行
vim是從 vi 發展出來的一個文本編輯器 。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富code
i: 插入光標前一個字符
I: 插入行首
a: 插入光標後一個字符
A: 插入行未
o: 向下新開一行,插入行首
O: 向上新開一行,插入行首
ESC:從插入模式或末行模式進入命令模式blog
移動光標:文檔
h: 左移 j: 下移 k: 上移 l: 右移
H:光標移動到當前屏幕的第一行行首 M: 光標移動到中間行 L: 光標移動到屏幕最後一行行首 G: 移動到指定行,行號 -G w: 向後一次移動一個字 b: 向前一次移動一個字 {: 按段移動,上移 }: 按段移動,下移 Ctr-d: 向下翻半屏 Ctr-u: 向上翻半屏 Ctr-f: 向下翻一屏 Ctr-b: 向上翻一屏 gg: 光標移動文件開頭 G: 光標移動到文件末尾
x: 刪除光標後一個字符,至關於 Del
X: 刪除光標前一個字符,至關於 Backspace
dd: 刪除光標所在行,n dd 刪除指定的行數 D: 刪除光標後本行全部內容,包含光標所在字符
(本質是剪切)
d0: 刪除光標前本行全部內容,不包含光標所在字符
dw: 刪除光標開始位置的字,包含光標所在字符
u: 一步一步撤銷
Ctr-r: 反撤銷
.: 重複上一次操做的命令
>>: 文本行右移
<<: 文本行左移
yy: 複製當前行,n yy 複製 n 行
p: 在光標所在位置向下新開闢一行,粘貼
shift + v 進入可視模式
y能夠將代碼賦值到粘貼板
v: 按字符移動,選中文本
V: 按行移動,選中文本可視模式能夠配合 d, y, >>, << 實現對文本塊的刪除,複製,左右移動
r: 替換當前字符
R: 替換當前行光標後的字符
/: str查找
n: 下一個
N:上一個
把abc所有替換成123
末行模式下,將光標所在行的abc替換成123 :%s/abc/123/g 末行模式下,將第一行至第10行之間的abc替換成123 :1, 10s/abc/123/g
部分代碼 + ctrl + n
按 ↑ ↓ 鍵選擇要補全的代碼
vim dream_girl.py +4 #找第四行 或者在底行模式下輸入行數,鼠標就會自動定位到你所輸入行數的行首
末行模式裏輸入!,後面跟命令