vim命令匯總
1.vim介紹
vim編輯器有三種模式:
命令模式、編輯模式、末行模式
模式間切換方法:
(1)命令模式下,輸入:后,進(jìn)入末行模式
(2)末行模式下,按esc慢退、按兩次esc快退、或者刪除所有命令,可以回到命令模式
(3)命令模式下,按下i、a等鍵,可以計(jì)入編輯模式
(4)編輯模式下,按下esc,可以回到命令模式
vim打開文件:
| Vi 使用的選項(xiàng) | 說 明 |
|---|---|
| vim filename | 打開或新建一個(gè)文件,并將光標(biāo)置于第一行的首部 |
| vim -r filename | 恢復(fù)上次 vim 打開時(shí)崩潰的文件 |
| vim -R filename | 把指定的文件以只讀方式放入 Vim 編輯器中 |
| vim + filename | 打開文件,并將光標(biāo)置于最后一行的首部 |
| vi +n filename | 打開文件,并將光標(biāo)置于第 n 行的首部 |
| vi +/pattern filename | 打幵文件,并將光標(biāo)置于第一個(gè)與 pattern 匹配的位置 |
| vi -c command filename | 在對文件進(jìn)行編輯前,先執(zhí)行指定的命令 |
2.命令模式
1.光標(biāo)移動(dòng)
| 快捷鍵 | 功能描述 |
|---|---|
| jkhl | 基本上下左右 |
| gg | 光標(biāo)移動(dòng)到文檔首行 |
| G | 光標(biāo)移動(dòng)到文檔尾行 |
| ^或_ | 光標(biāo)移動(dòng)到行首第一個(gè)非空字符 |
| home鍵或0或者g0 | 光標(biāo)移動(dòng)到行首第一個(gè)字符 |
| g_ | 光標(biāo)移動(dòng)到行尾最后一個(gè)非空字符 |
| end或 或者 g 或者g 或者g | 光標(biāo)移動(dòng)到行尾最后一個(gè)字符 |
| gm | 光標(biāo)移動(dòng)到當(dāng)前行中間處 |
| b/B | 光標(biāo)向前移動(dòng)一個(gè)單詞(大寫忽略/-等等特殊字符) |
| w/W | 光標(biāo)向后移動(dòng)一個(gè)單詞(大寫忽略/-等等特殊字符) |
| e/E | 移到單詞結(jié)尾(大寫忽略/-等等特殊字符) |
| ctrl+b或pageUp鍵 | 翻屏操作,向上翻 |
| ctrl+f或pageDn鍵 | 翻屏操作,向下翻 |
| 數(shù)字+G | 快速將光標(biāo)移動(dòng)到指定行 |
| `. | 移動(dòng)到上次編輯處 |
| 數(shù)字+上下方向鍵 | 以當(dāng)前光標(biāo)為準(zhǔn),向上/下移動(dòng)n行 |
| 數(shù)字+左右方向鍵 | 以當(dāng)前光標(biāo)為準(zhǔn),向左/右移動(dòng)n個(gè)字符 |
| H | 移動(dòng)到屏幕頂部 |
| M | 移動(dòng)到屏幕中間 |
| L | 移動(dòng)到屏幕尾部 |
| z+Enter鍵 | 當(dāng)前行在屏幕頂部 |
| z+ . | 當(dāng)前行在屏幕中間 |
| z+ - | 當(dāng)前行在屏幕底部 |
| shift+6 | 光標(biāo)移動(dòng)到行首 |
| shift+4 | 光標(biāo)移動(dòng)到行尾 |
| - | 移動(dòng)到上一行第一個(gè)非空字符 |
| + | 移動(dòng)到下一行第一個(gè)非空字符 |
| ) | 向前移動(dòng)一個(gè)句子 |
| ( | 向后移動(dòng)一個(gè)句子 |
| } | 向前移動(dòng)一個(gè)段落 |
| { | 向前移動(dòng)一個(gè)段落 |
| count l | 移動(dòng)到count 列 |
| counth | 向左移動(dòng)count 字符 |
| countl | 向右移動(dòng)count字符 |
| countgo | 移動(dòng)到count字符 |
2.選中內(nèi)容
| 快捷鍵 | 功能描述 |
|---|---|
| v | 進(jìn)行字符選中 |
| V 或shift+v | 進(jìn)行行選中 |
| gv | 選中上一次選擇的內(nèi)容 |
| o | 光標(biāo)移動(dòng)到選中內(nèi)容另一處結(jié)尾 |
| O | 光標(biāo)移動(dòng)到選中內(nèi)容另一處角落 |
| ctr + V | 進(jìn)行塊選中 |
3.復(fù)制(配合粘貼命令p使用)
| 快捷鍵 | 功能描述 |
|---|---|
| y | 復(fù)制已選中的文本到剪貼板 |
| n+yy | 復(fù)制光標(biāo)所在行,此命令前可以加數(shù)字 n,可復(fù)制多行 |
| yw | 復(fù)制光標(biāo)位置的單詞 |
| ctrl+v + 方向鍵+yy | ctrl+v,并按方向鍵選中區(qū)塊,按下yy復(fù)制 |
4.剪切
| 快捷鍵 | 功能描述 |
|---|---|
| dd | 剪切光標(biāo)所在行 |
| 數(shù)字+dd | 以光標(biāo)所在行為準(zhǔn)(包含當(dāng)前行),向下剪切指定行數(shù) |
| D | 剪切光標(biāo)所在行 |
5.粘貼
| 快捷鍵 | 功能描述 |
|---|---|
| p | 將剪貼板中的內(nèi)容粘貼到光標(biāo)后 |
| P(大寫) | 將剪貼板中的內(nèi)容粘貼到光標(biāo)前 |
6.刪除
| 快捷鍵 | 功能描述 |
|---|---|
| x | 刪除光標(biāo)所在位置的字符 |
| X(大寫) | 刪除光標(biāo)前一個(gè)字符 |
| dd | 刪除光標(biāo)所在行,刪除之后,下一行上移 |
| D | 刪除光標(biāo)位置到行尾的內(nèi)容,刪除之后,下一行不上移 |
| ndd | 刪除當(dāng)前行(包括此行)后 n 行文本 |
| dw | 移動(dòng)光標(biāo)到單詞的開頭以刪除該單詞 |
| dG | 刪除光標(biāo)所在行一直到文件末尾的所有內(nèi)容 |
| :a1,a2d | 刪除從 a1 行到 a2 行的文本內(nèi)容 |
7.撤銷/恢復(fù)
| 快捷鍵 | 功能描述 |
|---|---|
| u | 撤銷 |
| ctrl+r | 恢復(fù) |
| U(大寫) | 撤銷所有編輯 |
8.字符轉(zhuǎn)換
| 快捷鍵 | 功能描述 |
|---|---|
| ~ | 轉(zhuǎn)換大小寫 |
| u | 變成小寫 |
| U | 變成大寫 |
9.編輯命令的快捷鍵
| 快捷鍵 | 功能描述 |
|---|---|
| ↑或ctr + p | 上一條命令 |
| ↓或ctr + n | 下一條命令 |
| ctr + b | 移動(dòng)到命令行開頭 |
| ctr + e | 移動(dòng)到命令行結(jié)尾 |
| ctr + ← | 向左一個(gè)單詞 |
| ctr + → | 向右一個(gè)單詞 |
3.末行模式(: xxx命令)
1.保存/退出文件操作
| 命令 | 功能描述 |
|---|---|
| :wq | 保存并退出 Vim 編輯器 |
| :wq! | 保存并強(qiáng)制退出 Vim 編輯器 |
| :q | 不保存就退出 Vim 編輯器 |
| :q! | 不保存,且強(qiáng)制退出 Vim 編輯器 |
| :w | 保存但是不退出 Vim 編輯器 |
| :w! | 強(qiáng)制保存文本 |
| :w filename | 另存到 filename 文件 |
| x! | 保存文本,并退出 Vim 編輯器 |
| ZZ | 直接退出 Vim 編輯器 |
2.查找:“/關(guān)鍵詞”
在查找結(jié)果中,用N、n可以切換上下結(jié)果;輸入nohl,可以取消高亮
| 快捷鍵 | 功能描述 |
|---|---|
| /abc | 從光標(biāo)所在位置向前查找字符串 abc |
| /^abc | 查找以 abc 為行首的行 |
| /abc$ | 查找以 abc 為行尾的行 |
| ?abc | 從光標(biāo)所在位置向后查找字符串 abc |
| n或; | 向同一方向重復(fù)上次的查找指令 |
| N或, | 向相反方向重復(fù)上次的查找指定 |
3.替換
| 快捷鍵 | 功能描述 |
|---|---|
| r | 替換光標(biāo)所在位置的字符 |
| R | 從光標(biāo)所在位置開始替換字符,其輸入內(nèi)容會覆蓋掉后面等長的文本內(nèi)容,按“Esc”可以結(jié)束 |
:s/a1/a2 | 替換當(dāng)前光標(biāo)所在行第一處符合條件的內(nèi)容 |
:s/a1/a2/g | 替換當(dāng)前光標(biāo)所在行所有的 a1 都用 a2 替換 |
:%s/a1/a2 | 替換所有行中,第一處符合條件的內(nèi)容 |
:%s/a1/a2/g | 替換所有行中,所有符合條件的內(nèi)容 |
:n1,n2 s/a1/a2 | 將文件中 n1 到 n2 行中第一處 a1 都用 a2 替換 |
:n1,n2 s/a1/a2/g | 將文件中 n1 到 n2 行中所有 a1 都用 a2 替換 |
4.行號顯示:“: set nu”;
- 行號顯示:set nu
- 取消行號顯示::set nonu
5.文件切換
使用vim打開多個(gè)文件后,在末行模式下可以進(jìn)行切換。
- 查看當(dāng)前已經(jīng)打開的所有文件::files(%a表示激活狀態(tài),#表示上一個(gè)打開的文件)
- 切換到指定文件::open 文件名
- 切換到上一個(gè)文(back previous)::bp
- 切換到下一個(gè)文件(back next)::bn
4.編輯模式
| 快捷鍵 | 功能描述 |
|---|---|
| i | 在當(dāng)前光標(biāo)所在位置插入,光標(biāo)后的文本相應(yīng)向右移動(dòng) |
| I | 在光標(biāo)所在行的行首插入,行首是該行的第一個(gè)非空白字符,相當(dāng)于光標(biāo)移動(dòng)到行首執(zhí)行 i 命令 |
| o | 在光標(biāo)所在行的下插入新的一行。光標(biāo)停在空行首,等待輸入文本 |
| O(大寫) | 在光標(biāo)所在行的上插入新的一行。光標(biāo)停在空行的行首,等待輸入文本 |
| a | 在當(dāng)前光標(biāo)所在位置之后插入 |
| A | 在光標(biāo)所在行的行尾插入,相當(dāng)于光標(biāo)移動(dòng)到行尾再執(zhí)行 a 命令 |
| esc鍵 | 退出編輯模式 |
5.擴(kuò)展
1.代碼顏色顯示:“:syntax on/off”
2.vim內(nèi)置計(jì)算器:
a.進(jìn)入編輯模式
b.按“ctrl+r,光標(biāo)變成引號,,輸入=,光標(biāo)轉(zhuǎn)到最后一行
c.輸入需要計(jì)算的內(nèi)容,按下enter后,計(jì)算結(jié)果回替代上一步中的引號,光標(biāo)恢復(fù)
3.vim的配置
a.文件打開時(shí),末行模式下輸入的配置為臨時(shí)配置,關(guān)閉文件后配置無效
b.修改個(gè)人配置文件,可以永久保存?zhèn)€人配置(~/.vimrc,如果沒有可以自行創(chuàng)建)
c.修改全局配置文件,對每個(gè)用戶生效(vim自帶,/etc/vimrc)
注:個(gè)人配置文件優(yōu)先級更高,當(dāng)個(gè)人配置和全局配置發(fā)生沖突時(shí),系統(tǒng)以當(dāng)前用戶的個(gè)人配置文件為準(zhǔn)
4.異常退出
在編輯文件后,未正常保存退出時(shí),會產(chǎn)生異常退出交換文件(.原文件名.swp)
將交換文件刪除后,再次打開文件時(shí),無提示:“#rm -f .原文件名.swp”
5.別名機(jī)制:自定義指令
Linux中,存在一個(gè)別名映射文件: ~/.bashrc
修改文件內(nèi)容,可以自定義指令,重新登錄賬號后生效
6.文件快捷方式
對于深層文件,可以創(chuàng)建文件快捷方式,便于后續(xù)操作:#ln -s 源路徑 新路徑
7. 退出方式
(1)在vim中退出文件編輯模式,可以使用:q或者:wq
(2)建議使用:x:使用效果等同于wq,如果文件有改動(dòng)則先保存后退出;但是如果文件沒有做修改,會直接退出,不會修改文件更新時(shí)間,避免用戶混淆文件的修改時(shí)間
到此這篇關(guān)于vim命令匯總的文章就介紹到這了,更多相關(guān)vim命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本實(shí)現(xiàn)關(guān)閉多余的tty終端
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)關(guān)閉多余的tty終端,本文腳本適用centos6系統(tǒng),請根據(jù)自己的服務(wù)器系統(tǒng)情況選擇使用,需要的朋友可以參考下2014-12-12
shell 腳本中獲取命令的輸出的實(shí)現(xiàn)示例
本文主要介紹了shell 腳本中獲取命令的輸出的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
實(shí)現(xiàn)android自動(dòng)化測試部署與運(yùn)行Shell腳本分享
這篇文章主要介紹了實(shí)現(xiàn)android自動(dòng)化測試部署與運(yùn)行Shell腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03
ssh,scp自動(dòng)登陸的實(shí)現(xiàn)方法
這篇文章主要介紹ssh,scp自動(dòng)登陸的實(shí)現(xiàn)方法,需要的朋友可以參考下2013-02-02
shell實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了shell實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

