Linux命令之vim三種模式

      網(wǎng)友投稿 1489 2025-03-31

      一、vi介紹

      Vi編輯器是所有Unix及linux系統(tǒng)下標(biāo)準(zhǔn)的編輯器,類似于windows系統(tǒng)下的notepad(記事本)編輯器,由于在Unix及linux系統(tǒng)的任何版本,Vi編輯器是完全相同的,因此可以在其他任何介紹vi的地方都能進(jìn)一步了解它,Vi也是Linux中最基本的文本編輯器,學(xué)會(huì)它后,我們將在Linux的世界里暢行無阻,尤其是在終端中。

      關(guān)于vim:

      vi和vim都是Linux中的編輯器,不同的是,vim比較高級(jí),可以視為vi的升級(jí)版本。vi使用于文本編輯,但是vim更適用于coding(寫代碼的)。

      Vim重點(diǎn)是光標(biāo)的移動(dòng),模式切換,刪除,查找,替換,復(fù)制,粘貼,撤銷命令的使用。

      二、vim三種模式(重點(diǎn))

      Vim中存在三種模式(大眾的認(rèn)知):命令模式、編輯模式(輸入模式)、末行模式(尾行模式)。

      命令模式:在該模式下是不能對(duì)文件直接編輯,可以輸入快捷鍵進(jìn)行一些操作(刪除行,復(fù)制行,移動(dòng)光標(biāo),粘貼等等)【打開文件之后默認(rèn)進(jìn)入的模式】;

      編輯模式:在該模式下可以對(duì)文件的內(nèi)容進(jìn)行編輯;

      末行模式:可以在末行輸入命令來對(duì)文件進(jìn)行操作(搜索、替換、保存、退出、撤銷、高亮等等);

      Vim的打開文件的方式(4種,要求掌握的就前三種):

      vim 文件路徑 作用:打開指定的文件 vim +數(shù)字 文件的路徑 作用:打開指定的文件,并且將光標(biāo)移動(dòng)到指定行 vim +/關(guān)鍵詞 文件的路徑 作用:打開指定的文件,并且高亮顯示關(guān)鍵詞 vim 文件路徑1 文件路徑2 文件路徑3 作用:同時(shí)打開多個(gè)文件

      三、命令模式

      注意:該模式是打開文件的第一個(gè)看到的模式(打開文件即可進(jìn)入)

      1、光標(biāo)移動(dòng)

      ①光標(biāo)移動(dòng)到行首

      按鍵:shift + 6 或 ^(T字母上面的6,不要按小鍵盤的6)

      ②光標(biāo)移動(dòng)到行尾

      按鍵:shift + 4 或 $(R字母的左上角的4,不是小鍵盤的4)

      ③光標(biāo)移動(dòng)到首行

      按鍵:gg

      ④光標(biāo)移動(dòng)到末行

      按鍵:G

      ⑤翻屏

      向上翻屏:按鍵ctrl + b (before) 或 PgUp

      向下翻屏:按鍵ctrl + f (after) 或 PgDn

      2、復(fù)制操作

      ①復(fù)制光標(biāo)所在行

      按鍵:yy

      粘貼:在想要粘貼的地方按下p鍵

      ②以光標(biāo)所在行為準(zhǔn)(包含當(dāng)前行),向下復(fù)制指定的行數(shù)

      按鍵:數(shù)字yy

      ③可視化復(fù)制

      按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),然后按下↑↓← →方向鍵來選中需要復(fù)制的區(qū)塊,按下y鍵進(jìn)行復(fù)制,最后按下p鍵粘貼

      3、剪切/刪除

      ①剪切/刪除光標(biāo)所在行

      按鍵:dd (刪除之后下一行上移)

      注意:dd嚴(yán)格意義上說是剪切命令,但是如果剪切了不粘貼就是刪除的效果。

      ②剪切/刪除光標(biāo)所在行為準(zhǔn)(包含當(dāng)前行),向下刪除/剪切指定的行

      按鍵:數(shù)字dd (刪除之后下一行上移)

      ③剪切/刪除光標(biāo)所在的當(dāng)前行之后的內(nèi)容,但是刪除之后下一行不上移

      按鍵:D (刪除之后當(dāng)前行會(huì)變成空白行)

      ④可視化刪除

      按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),上下左右移動(dòng),按下D表示刪除選中行,d表示刪選中塊

      4、撤銷/恢復(fù)

      撤銷:輸入:u (不屬于命令模式) 或者 u (undo)

      恢復(fù):ctrl + r 恢復(fù)(取消)之前的撤銷操作

      5、擴(kuò)展1:光標(biāo)的快速移動(dòng)

      ①快速將光標(biāo)移動(dòng)到指定的行

      按鍵:數(shù)字G

      ②以當(dāng)前光標(biāo)為準(zhǔn)向上/向下移動(dòng)n行

      按鍵:數(shù)字↑,數(shù)字↓

      ③以當(dāng)前光標(biāo)為準(zhǔn)向左/向右移動(dòng)n字符

      按鍵:數(shù)字←,數(shù)字→

      ④末行模式下的快速移動(dòng)方式:移動(dòng)到指定的行

      按鍵:輸入英文“:”,其后輸入行數(shù)數(shù)字,按下回車

      四、模式間的切換(重點(diǎn))

      五、末行模式

      進(jìn)入方式:由命令模式進(jìn)入,按下“:”或者“/(表示查找)”即可進(jìn)入

      退出方式:

      a. 按下esc

      b. 連按2次esc鍵

      Linux命令之vim三種模式

      c. 刪除末行全部輸入字符

      ①保存操作(write)

      輸入:“:w” 保存文件

      輸入:“:w 路徑” 另存為

      ②退出(quit)

      輸入:“:q” 退出文件

      ③保存并退出

      輸入:“:wq” 保存并且退出

      ④強(qiáng)制 (!)

      輸入:“:q!” 表示強(qiáng)制退出,剛才做的修改操作不做保存

      ⑤調(diào)用外部命令(了解)

      輸入:“:!外部命令”

      例如:

      結(jié)果:就是出現(xiàn)顯示根目錄的別表,按下enter鍵回到打開的文件

      當(dāng)外部命令執(zhí)行結(jié)束之后按下任意鍵回到vim編輯器打開的內(nèi)容

      ⑥搜索/查找

      輸入:“/關(guān)鍵詞”

      例如:我想在passwd文件中搜索“sbin”關(guān)鍵詞

      在搜索結(jié)果中切換上/下一個(gè)結(jié)果:N/n (next)

      如果需要取消高亮,則需要輸入:“:nohl”【no highlight】

      ⑦替換

      :s/搜索的關(guān)鍵詞/新的內(nèi)容 替換光標(biāo)所在行的第一處符合條件的內(nèi)容

      :s/搜索的關(guān)鍵詞/新的內(nèi)容/g 替換光標(biāo)所在行的全部符合條件的內(nèi)容

      :%s/搜索的關(guān)鍵詞/新的內(nèi)容 替換整個(gè)文檔中每行第一個(gè)符合條件的內(nèi)容

      :%s/搜索的關(guān)鍵詞/新的內(nèi)容/g 替換整個(gè)文檔的符合條件的內(nèi)容

      %表示整個(gè)文件

      g表示全局(global)

      ⑧顯示行號(hào)(臨時(shí))

      輸入:“:set nu”[number]

      如果想取消顯示,則輸入:“:set nonu”

      ⑨擴(kuò)展2:使用vim同時(shí)打開多個(gè)文件,在末行模式下進(jìn)行切換文件

      查看當(dāng)前已經(jīng)打開的文件名稱:“:files”

      在%a的位置有2種顯示可能

      %a:a=active,表示當(dāng)前正在打開的文件;

      #:表示上一個(gè)打開的文件

      切換文件的方式:

      a. 如果需要指定切換文件的名稱,則可以輸入:“:open 已經(jīng)打開的文件名”

      b. 可以通過其他命令來切換上一個(gè)文件/下一個(gè)文件

      輸入:“:bn”切換到下一個(gè)文件(back next)

      輸入:“:bp”切換到上一個(gè)文件(back prev)

      六、編輯模式

      重點(diǎn)看前2個(gè)進(jìn)入方式:i(insert)、a(after)。

      退出方式:按下esc鍵

      七、實(shí)用功能

      1、代碼著色

      如何控制著色顯示與否?

      顯示:“:syntax on” syn

      tax:語法

      關(guān)閉顯示:“:syntax off”

      2、vim中計(jì)算器的使用

      當(dāng)在編輯文件的時(shí)候突然需要使用計(jì)算器去計(jì)算一些公式,則此時(shí)需要用計(jì)算器,但是需要退出,vim自身集成了一個(gè)簡(jiǎn)易的計(jì)算器。

      a. 進(jìn)入編輯模式

      b. 按下按鍵“ctrl + R”,然后輸入“=”,此時(shí)光標(biāo)會(huì)變到最后一行

      c. 輸入需要計(jì)算的內(nèi)容,按下回車

      八、擴(kuò)展

      1、vim的配置(重點(diǎn))

      Vim是一款編輯器,編輯器也是有配置文件的。

      Vim配置有三種情況:

      a. 在文件打開的時(shí)候在末行模式下輸入的配置(臨時(shí)的)

      b. 個(gè)人配置文件(~/.vimrc,如果沒有可以自行新建)

      c. 全局配置文件(vim自帶,/etc/vimrc)

      ①新建好個(gè)人配置文件之后進(jìn)入編輯

      ②在配置文件中進(jìn)行配置

      比如顯示行號(hào):set nu

      配置好之后vim打開文件就會(huì)永遠(yuǎn)顯示行號(hào)

      問題:如果某個(gè)配置項(xiàng),在個(gè)人配置文件與全局配置文件產(chǎn)生沖突的時(shí)候應(yīng)該以誰為準(zhǔn)?

      測(cè)試步驟:在兩個(gè)配置文件中針對(duì)同一個(gè)配置項(xiàng)設(shè)置不同的值

      ①先在全局的配置中設(shè)置不顯示行號(hào),在個(gè)人的配置文件中設(shè)置顯示行號(hào),觀察結(jié)果

      最后顯示行號(hào):說明以個(gè)人為準(zhǔn)

      ②先在全局中配置顯示行號(hào),在個(gè)人中設(shè)置不顯示行號(hào),觀察結(jié)果

      最后的顯示是不顯示行號(hào),說明以個(gè)人為準(zhǔn)

      結(jié)論:如果針對(duì)同一個(gè)配置項(xiàng),個(gè)人配置文件中存在,則以個(gè)人配置文件為準(zhǔn),如果個(gè)人配置文件中不存在這一項(xiàng),則以全局配置文件為準(zhǔn)。

      2、異常退出

      什么是異常退出:在編輯文件之后并沒有正常的去wq(保存退出),而是遇到突然關(guān)閉終端或者斷電的情況,則會(huì)顯示下面的效果,這個(gè)情況稱之為異常退出:

      解決辦法:將交換文件(在編程過程中產(chǎn)生的臨時(shí)文件)刪除掉即可

      rm -f .passwd.swp

      3、別名機(jī)制(實(shí)用)

      作用:相當(dāng)于創(chuàng)建一些屬于自己的自定義命令

      例如:在windows下有cls命令,在Linux下可能因?yàn)闆]有這個(gè)命令而不習(xí)慣清屏。現(xiàn)在可以通過別名機(jī)制來解決這個(gè)問題,可以自己創(chuàng)造出cls命令

      別名機(jī)制依靠一個(gè)別名映射文件:~/.bashrc

      vim ~/.bashrc

      注意:如果想新創(chuàng)造的命令生效,必須要重新登錄當(dāng)前用戶。

      4、退出方式

      之前vim中退出編輯的文件可以使用“:q”或者“:wq”。

      除了上面的這個(gè)語法之外,vim還支持另外一個(gè)保存退出方法“:x”。

      說明:

      ①“:x”在文件沒有修改的情況下,表示直接退出,在文件修改的情況下表示保存并退出;

      ②如果文件沒有被修改,但是使用wq進(jìn)行退出的話,則文件的修改時(shí)間會(huì)被更新;但是如果文件沒有被修改,使用x進(jìn)行退出的話,則文件修改時(shí)間不會(huì)被更新的;主要是會(huì)混淆用戶對(duì)文件的修改時(shí)間的認(rèn)定。

      因此建議以后使用“:x”來進(jìn)行對(duì)文件的保存退出。

      但是:不要使用X,不要使用X,不要使用X,X表示對(duì)文件進(jìn)行加密操作。

      Linux

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:電子表格排序亂如何做(雜亂的電子表格怎么按順序排列)
      下一篇:為什么所有工具都不能用顏色是灰的?(用什么色能調(diào)出灰色)
      相關(guān)文章
      亚洲中文字幕久在线| 久久伊人久久亚洲综合| 亚洲精品中文字幕乱码| 亚洲va国产va天堂va久久| 亚洲啪啪AV无码片| 亚洲中文字幕无码日韩| 久久久久噜噜噜亚洲熟女综合| 欧洲亚洲国产精华液| 亚洲AV第一成肉网| 亚洲Av永久无码精品黑人| 亚洲日产乱码一二三区别| 亚洲色偷偷色噜噜狠狠99网| 亚洲精华国产精华精华液网站| 亚洲中文字幕无码av| 亚洲精品无码av中文字幕| 亚洲私人无码综合久久网| 精品国产日韩久久亚洲| 亚洲色在线无码国产精品不卡| 亚洲色在线无码国产精品不卡| 亚洲AV无码专区国产乱码不卡| 亚洲av日韩aⅴ无码色老头| 国产91成人精品亚洲精品| 另类专区另类专区亚洲| 亚洲福利在线播放| 亚洲色精品vr一区二区三区 | 亚洲香蕉久久一区二区| 性xxxx黑人与亚洲| 亚洲欧美日韩一区二区三区| 亚洲成AV人片在WWW| 老牛精品亚洲成av人片| 亚洲精品一级无码鲁丝片 | 亚洲一级黄色大片| 亚洲欧美第一成人网站7777| 国产亚洲综合精品一区二区三区| 亚洲XX00视频| 亚洲精品无码AV人在线播放| 亚洲综合视频在线| 亚洲a视频在线观看| 久久亚洲AV成人无码国产电影 | 亚洲午夜无码片在线观看影院猛| 亚洲中文字幕无码爆乳AV|