一、vim的三種模式
Vim常見的有三種模式:指令模式、編輯模式和末行模式
指令模式:在該模式下是不能對檔案直接進行編輯的,可以輸入一些快捷鍵進行一些操作(例如:删除行、複制行、移動光标、複制粘貼等等)同時該模式是打開檔案後預設進入的模式。
編輯模式:在該模式下對檔案的内容進行編輯。
末行模式:可以在末行輸入指令來對檔案進行操作(搜尋、替換、儲存、搜尋、替換、儲存、退出、撤銷、高亮等等)
Vim打開檔案的方式(4種)
①vim 檔案路徑 作用:打開指定的檔案
②vim +數字 檔案的路徑 作用:打開指定的檔案,并将光标移動到指定行
③vim +/關鍵詞 檔案的路徑 作用:打開指定的檔案,并且高亮顯示關鍵詞
④vim 檔案路徑1 檔案路徑2 檔案路徑3 作用:同時打開多個檔案
重點:先複制出一個/etc/passwd檔案,複制到目前家目錄下
退出方式:shift + : 按q
二、指令模式
注意:打開檔案第一個看到的模式
1、光标操作
①光标移動到行首
按鍵:按住shift+6或者^(不是小鍵盤的6)
②光标移動到行尾
按鍵:按住shift+4或者$(不是小鍵盤的4)
③光标移動到首行
按鍵:gg
④光标移動到末行
按鍵:G
⑤翻屏
向上翻屏:按鍵:CTRL+b(before) / PgUp
向下翻屏:按鍵:CTRL+f(after) / PgDn
2、複制操作
①複制光标所在行
按鍵:yy
粘貼:想要粘貼地方按p
②一光标所在行為準(包含了目前行),向下複制指定的行數
按鍵:數字 yy
③可視化複制
按鍵:CTRL+v,按上下左右方向鍵來選中需要複制的塊數3
3、剪切/删除
①剪切/删除光标所在行
按鍵:dd (删除之後下一行上移)
注意:dd 嚴格意義上說是剪切指令,但如果剪切了不粘貼就是删除效果
②一光标所在行為準,剪切/删除指定的行
按鍵:dd (删除之後下一行上移)
③剪切/删除光标所在的目前行,但是删除之後下一行不上移
按鍵:D (删除後目前行變空白行)
4、撤銷/恢複
撤消: 輸入:u 或者直接u(undo)
恢複: CTRL+r 取消之前的撤銷操作
5、擴充1:光标的快速移動
①快速将光标移動到指定行
按鍵:數字 G
②以目前光标為準向上/下移動n行
按鍵:數字 ↑ 數字 ↓
③以目前光标為準向左/向右移動n個字元
按鍵:數字 ← 數字 →
④末行模式下的快速移動光标的方式:移動到指定的行
按鍵:輸入英文“:”,其後輸入行數數字,按下回車
三、模式間的切換(重點)
五、末行模式
進入方式:由指令模式模式進入,按下“:”或者“/“即可進入
退出方式:
a.按下esc
b.按兩次esc鍵
c.删除末行全部輸入全部字元
①儲存操作
輸入:“w” 儲存檔案
輸入:“w 路徑“ 另存
②退出(quit)
輸入:“q“ 退出檔案
③儲存并退出
輸入:“wq“ 儲存并退出
④強制(!)
輸入“:q!“ 表示強制退出,剛才做的修改操作不儲存
⑤調用外部指令(了解)
輸入”:!外部指令”
例如:
⑥搜尋/查找
輸入:“/關鍵詞“
例如:在passwd檔案中搜尋“sbin”關鍵詞
如果取消高亮,則需要輸入:“nohl”
⑦替換
:s/搜尋關鍵詞/新的内容 替換光标所在行的第一處符合條件的内容
:s/搜尋關鍵詞/新的内容/g 替換光标所在行的全部符合條件的内容
:%s/搜尋的關鍵詞/新的内容 替換整個文檔中每行的第一個符合條件的内容
:%s/搜尋的關鍵詞/新的内容/g 替換整個文檔中全部符合條件的内容
%:表示整個檔案
g:表示golobe
⑧顯示行号
輸入:“:set nu”
如光想取消顯示,則輸入:“set nonu”
⑨擴充2:
使用vim打開多個打開檔案,在末行模式下進行切換:
檢視目前已經打開的檔案的名稱:“files“
%a:表示正在打開的檔案
#:表示上一個打開的檔案
切換檔案的方式:
a.如果需要指定切換檔案的名稱,則可以輸入:“open group(已經打開的檔案名)“
b.可以通過其它指令來切換上一個檔案/下一個檔案
輸入:“:bn“切換到下一個檔案(back next)
輸入:“:bp”切換到上一個檔案(back previous)
六、編輯模式
進入方式:
i:在光标所在字元前開始插入
a:在光标所在字元後開始插入
s:删除所在行并開始插入
退出方式:按下esc
七、實用功能
1、代碼着色
案例:首先建立一個hello.c
顯示:syntax on
關閉:syntax off
2、vim中電腦的使用
當在編輯檔案時突然需要使用電腦去計算一些公式,則需要使用電腦,但是需要退出,vim自身內建了一個簡易的電腦
a.進入編輯模式
b.按下按鍵“CTRL+R“,然後輸入”=“,此時光标會變到最後一行
c.輸入需要計算的内容,按下回車
八、擴充(3)
1、vim的配置(重點)
Vim是一款編輯器,編輯器也是有配置檔案的
Vim配置有三種情況:
a.在檔案打開的時候在末行模式下輸入的配置(臨時的)
b.個人配置檔案(~/.vimrc,如果沒有可以自行建立)
c.全局配值檔案(vim自帶,/etc/vimrc)
①建立好個人配置檔案之後進入編輯 touch
②在配置檔案中進入編輯
比如顯示行号:set nu
配置好後vim打開檔案就會永遠顯示行号
問題:如果某個配置項,在個人配置檔案與全局配置檔案産生沖突的時候應該以誰為準
結論:如果針對同一配置項,個人配置檔案中存在,則以個人配置檔案為準,如果個人配置檔案不存在這一項,則以全局配置檔案為準。
2、異常退出
解決辦法:将交換檔案(在編輯過程中産生的臨時檔案)删除即可
rm -f .passwd.swp
3、别名機制(實用)
作用:相當于建立一些屬于自己的自定義指令
例如:Windows下的cls指令,在Linux下因為沒有這個指令而不習慣清屏。現在可以通過别名機制來解決這個問題,可以自己創造出cls指令
别名機制依靠一個别名映射檔案:~/.bashrc
Vim ~/.bashrc
注意:如果想讓創造的指令生效,必須要重新登陸目前使用者。
4、退出方式
回顧:之前退出編輯檔案可以使用“:q“或者”:wq“。
除了上面的文法之外,vim還支援另外一個儲存方法” :x”
說明:
①“:x“在檔案沒有修改的情況下,表示直接退出,在檔案修改的情況下表示儲存并推出;
②如果檔案沒有被修改,但是使用了wq進行退出的話,則檔案的修改時間會被更新;但是如果檔案沒有被修改,使用x進行退出的話,則檔案修改時間不會被更新;主要會混淆使用者對檔案的修改時間的認定。
是以建議以後使用“:x“來進行對檔案的儲存退出。
但是:不要使用X;不要使用X;不要使用X