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