重點:光标的移動,模式切換,删除,查找,替換,複制,粘貼和撤銷指令的使用。
三種模式:指令模式,編輯模式(輸入模式)、末行模式(尾行模式)
末行模式:可以在末行輸出指令來對檔案進行操作(搜尋,替換,儲存,退出,撤銷,高亮等等)
Vim打開檔案的方式
#vim 檔案路徑 (打開指定檔案)
#vim +數字 檔案路徑 (打開指定檔案,并且将光标移動到指定行)
#vim +/關鍵詞 檔案路徑 (打開指定的檔案,并且高亮顯示關鍵詞)
#vim 檔案路徑1 檔案路徑2 檔案路徑3(同時打開多個檔案)
{
檢視目前已經打開檔案,輸入":files"【%a(active)表示目前正打開的檔案,#表示上一個打開的檔案】
切換指定檔案,輸入":open 已經打開的檔案的檔案名"
切換上一個/下一個檔案,輸入":bp"/":bn"【back previous】【back next】
}
模式間的切換
從指令模式開始
1輸入“:”進入末行模式。按1下或者2下Esc【删除末行全部輸入字元】,退出末行模式進入指令模式
2按下i、a等進入編輯模式。按1下Esc,退出編輯模式進入指令模式
指令模式
光标移動
行首: 按鍵shift+6或者^
行尾:按鍵shift+4或者$
首行:按鍵gg
末行:按鍵G
翻屏:向上翻屏按鍵ctrl+b 【before】/Pgup 向下翻屏按鍵ctrl+f 【after】/Pgdn
1按鍵:數字G(快速将光标移動到指定行)
2按鍵:數字↑ 數字↓ 數字← 數字→(以目前光标為準向上/下/左/右移動n行/字元)
3輸入英文“:”,然後輸入行數數字,按下回車(在末行模式下快速移動方式,移動到指定的行)
複制
1按鍵:yy(複制光标所在行)
2按鍵:數字yy(以光标所在行為準【包含目前行】,向下複制指定行數)
3按鍵:ctrl+v鍵,按下上下左右方向鍵來選中需要複制的區塊【選擇需要的内容】,按下yy鍵進行複制。
粘貼:要粘貼的位置按p鍵
剪切/删除
1按鍵:dd(剪切/删除光标所在行,删除後下一行上移)
2按鍵:數字dd(剪切/删除光标所在行為準【包含目前行】,向下删除指定行)
3按鍵:D(剪切/删除目前行,但删除之後下一行不上移,目前行會變成空白行)
撤銷/恢複
撤銷:輸入:u 【不屬于指令模式】 冒号加小u 或者直接按u【undo】
恢複:ctrl+r (恢複【取消】之前的撤銷操作)
末行模式
儲存操作
輸入":w"(儲存檔案)
輸入":w 路徑"(另存為)
退出
輸入":q"(退出檔案)
輸入":wq"(儲存并退出)
強制("!")
輸入":q!"(強制退出,剛才做到的修改操作不儲存)
搜尋/查找
輸入"/關鍵詞"(在搜尋結果中切換上一個/下一個,輸入N/n)
替換
輸入”:s/搜尋的關鍵詞/新的内容“(替換光标所在行的第一處符合條件的内容)
輸入”:s/搜尋的關鍵詞/新的内容/g“(替換光标所在行的全部符合條件的内容)
輸入”:%s/搜尋的關鍵詞/新的内容“(替換整個文檔中每行的第一處符合條件的内容)
輸入”:%s/搜尋的關鍵詞/新的内容/g“(替換整個文檔中符合條件的内容)
{%表示整個檔案,g表示全局【global】}
顯示行号
輸入":set nu" 【number】
輸入":set nonu"(取消顯示)
輸入“:nohl”【no highlight】取消高亮
編輯模式
a:在光标所在字元後開始插入。【after】(光标會向後移一格)
i:在光标所在字元前開始插入。【insert】
實用功能
代碼着色
顯示顔色,輸入"syntax on"【syntax文法】
關閉顯示,輸入"syntax off"
vim中電腦的使用
進入編輯模式,按下"ctrl+R",然後輸入“=”,此時光标會變到最後一行。
輸入需要計算的内容,按下回車。【撇會變成結果】
調用外部指令(了解)
輸入":!外部指令"(當外部指令執行結束之後按下任意鍵回到vim)
擴充内容
1 vim的配置
(a.末行模式的臨時配置 b.個人配置檔案【~/.vimrc,可以自行建立】 c.全局配置檔案【vim自帶,/etc/vimrc】)
新鍵個人配置檔案,編輯寫入"set nu"【顯示行号】
全局配置檔案,【個人配置檔案比全局配置檔案優先級高】
2 異常退出問題
在編輯檔案之後并沒有正常儲存退出(wq),而是遇到突然關閉終端或者斷電的情況,則會出現異常退出。(無法重新編輯)
解決辦法:删除産生的交換檔案即可【在編輯過程中産生的臨時檔案,為隐藏檔案】
(".檔案名.swp")
3 别名機制(作用:建立一些屬于自己的指令)
别名機制依靠一個别名映射檔案;~/.bashrc
#vim ~/.bashrc
alias cp='cp -i'
alias cls='clear'
儲存後重新登陸才能生效,或者source ~/.bashrc
4 退出方式【推薦】
vim還支援使用":x"進行退出。
(":x"在檔案沒有被修改的情況下,表示直接退出;在檔案修改了的情況下,表示儲存并退出。)
【如果檔案沒有被修改,但是使用wq進行退出的話,則檔案的修改時間會更新;但使用x進行退出,則檔案修改時間不會被更新】
【大X表示對檔案進行加密!!!】