基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),插入模式(Insert mode)和底線命令模式(Last line mode)
命令模式:
用戶剛剛啟動 vi/vim,便進入了命令模式。
i 切換到插入模式,以輸入字符。
x 刪除當前光標所在處的字符。
: 切換到底線命令模式,以在最底一行輸入命令。
若想要編輯文本:啟動Vim,進入了命令模式,按下i,切換到輸入模式
編輯模式:
在命令模式下按下 i 就進入了輸入模式。
在輸入模式中,可以使用以下按鍵:
ENTER(回車鍵) 換行
BACK SPACE(退格鍵) 刪除光標前一個字符
方向鍵 在文本中移動光標
HOME/END 移動光標到行首/行尾
Page Up/Page Down 上/下翻頁
ESC 退出輸入模式,切換到命令模式
底線命令模式:
在命令模式下按下 :(英文冒號)就進入了底線命令模式。
底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(這里省略了冒號):
q 退出程序
w 保存文件
按ESC鍵可隨時退出底線命令模式。
常用命令 一般模式切換到編輯模式
i 從目前光標所在處插入
I 在目前所在行的第一個非空格符處開始插入
a 從目前光標所在的下一個字符處開始插入
A 從光標所在行的最后一個字符處開始插入
o 在目前光標所在的下一行處插入新的一行
O 在目前光標所在處的上一行插入新的一行
r 只會取代光標所在的那一個字符一次
R 會一直取代光標所在的文字,直到按下 ESC 為止
一般模式切換到指令行模式
:w 將編輯的數(shù)據(jù)寫入硬盤檔案中
:w! 強制將編輯的數(shù)據(jù)寫入硬盤檔案中
:q 離開
:q! 為強制離開不儲存檔案
:wq 儲存后離開
:wq! 強制儲存后離開
:set nu 顯示行號,設定之后,會在每一行的前綴顯示該行的行號
:set nonu 取消行號
Vim 常用基本操作
拷貝 yy/yw yy代表正行拷貝,yw 代表拷貝一個詞
粘貼 p
刪除 dd/dw dd 刪除一整行 dw 刪除一個詞
Vim 光標移動
左 h
下 j
右 k
上 l
文件頭 gg
文件未 G
行頭 ^
行未 $
Vim 按照單詞移動
向前 w/2w(數(shù)字是幾移動幾個單詞)
向后 b/2b(數(shù)字是幾移動幾個單詞)
Vim 查找與替換
:%s/關(guān)鍵詞/替換詞/gc
查找關(guān)鍵字 shift + n 向下查找 shift + N 向上查找
查找與替換 :%s/關(guān)鍵字/替換字/gc //% 正篇文章中的所有行,s 代表search 在正篇文章中查找 /關(guān)鍵字可以是關(guān)鍵字,也可以是正則表達式 /替換字可以是替換字,也可以是正則表達式 g代表這一行,搜索到之后繼續(xù)搜索,c代表每次替換都需要進行確認,不寫c會全部替換
也可以用行號限定搜索替換范圍
:21,23s/tt/ss/gc //21到23行 替換tt 為ss 需要用戶確認
Vim 多窗口與相關(guān)操作
:split/:vsplit //橫向切分窗口 縱向切分窗口
ctrl + ww/ ctrl + w[hjkl] //窗口之間的跳轉(zhuǎn)
ctrl + w + - ctrl + w + = //縱向縮小 縱向擴大
:close //關(guān)閉窗口
:f file //重新命名文件
vi a b c //vi打開多文件
:n //跳至下一個文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件
:e# //回到剛才編輯的文件
:Ex //開啟目錄瀏覽器,可以瀏覽當前目錄下的所有文件,并可以選擇
:Sex //水平分割當前窗口,并在一個窗口中開啟目錄瀏覽器
:ls //顯示當前buffer情況
:shell //可以在不關(guān)閉vi的情況下切換到shell命令行
:exit //從shell回到vi