日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux高级编程--01.vi命令

發(fā)布時間:2023/12/13 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux高级编程--01.vi命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

VI是Linux/Unix下標配的一個純字符界面的文本編輯器。由于不支持鼠標功能,也沒有圖形界面,相關(guān)的操作都要通過鍵盤指令來完成,需要記憶大量命令。因此很多人不大喜歡它,但同時由于鍵盤的方式往往比鼠標來得快,一旦熟練后用起來是有種非常流暢的感覺的,也有人因此而非常喜歡它。

不管你喜歡也好,不喜歡也好,VI是Linux的標配編輯器,很多時候你也只有這一個編輯器可用,如果要做一個Linux Coder,熟悉VI還是非常有必要的。

PS:由于VI的命令非常多,本文主要只介紹一些基礎(chǔ)命令。并且就算是這些基礎(chǔ)命令中,也有許多是不大常用的,我就把這些命令以灰色文字顯示了,初學(xué)者可以不用太關(guān)注這些灰色命令。

兩種工作模式

前面已經(jīng)說過,由于VI沒有圖形界面,如翻頁、移動光標、保存、退出等操作都必須借助鍵盤來完成。另外,VI還提供了大量快捷鍵來加速操作,因此,VI統(tǒng)的編輯模式下,還引入了一種新的工作模式——命令模式。

編輯模式: 在此模式下,輸入可見字符時和傳統(tǒng)Windows環(huán)境下輸入字符的功能相同。按Esc鍵可切換值命令模式。 命令模式: 在此模式下,輸入的可見字符對應(yīng)的是命令。當插入命令執(zhí)行后進入編輯模式。

PS:有的文章中還列舉了一種Last Line模式,這個可以算作一種特殊的命令模式,只不過命令會顯示在最后一行,并且需要敲回車才能執(zhí)行。這些命令通常以 :/?$ 等特殊字符開頭。

模式查詢:要判斷當前處于那種模式,可以通過最后一行(狀態(tài)欄)來判斷:如果處于編輯模式,則顯示為如下兩種狀態(tài)。

模式間的切換:在編輯模式下,通過Esc鍵可以進入命令模式;命令模式下,執(zhí)行某些插入命令后進入編輯模式。如果你不知道當前處于那種模式下,按ESC進入命令模式,按Insert進入編輯模式。

啟動VI

VI的啟動參數(shù)有不少,但通常的使用方式如下:vi filename

如果參數(shù)中的文件存在,則打開該文件,如果參數(shù)中的文件不存在,則會新建該文件(不是立即創(chuàng)建,而是在保存的時候創(chuàng)建)。

插入文本

剛進入VI時,是出于命令模式的,這是是無法輸入文本的,因此需要進入插入模式。進入插入模式的命令有如下幾個:

i 從目前光標所在之處插入文字 a 從目前光標所在下一個字符插入文字 o 往下插入一個空行 O 往上插入一個空行

輸入這幾個命令后,就進入了編輯模式,可以通過屏幕下方最后一行看到當前為插入狀態(tài):

可以通過Insert鍵切換插入狀態(tài)和改寫狀態(tài)(和圖像界面中一樣)。

另外,在命令模式下,也可以通過Insert鍵進入編輯模式(插入狀態(tài)),不過通常還是前面介紹的四個命令來進入編輯模式。

離開和保存文件

在VI中,離開和保存文件對應(yīng)的命令有這幾個(使用前記得進入命令模式):

:w 保存 :w filename 另存為 :wq 保存并退出 [常用] :q! 強制退出 SHIFT+zz 保存并退出,功能同:wq [常用]

移動光標

在VI中,移動光標并不是我們游戲中常用的WASD,而是h、j、k、l,分別控制光標左、下、上、右移一格,分別分布在右手四個指頭,新手需要一段時間來適應(yīng)。使用非常頻繁,需要熟練掌握。

其它一些光標控制命令如下:

Ctrl+B:屏幕往后移動一頁。 Ctrl+F:屏幕往前移動一頁。 Ctrl+U:屏幕往后移動半頁。 Ctrl+D:屏幕往前移動半頁。 gg:移動文章的開頭。 G:移動到文章的最后。 w:光標跳到下個word的開頭。 e:光標跳到下個word的字尾。 b:光標回到上個word的開頭。 $:移到光標所在行的行尾。 ^:移到該行第一個非空白的字符。 0:移到該行的開頭位置。 #:移到該行的第#個位置,例:51、121。

另外,還有幾個行操作相關(guān)命令集中介紹一下

:set nu 顯示行號 :set nonu 隱藏行號 :# 移動到第#行,如:15 Ctrl+G: 在狀態(tài)欄顯示當前進度 #G: 移動到第#行,例:15G

刪除文字

x:刪除光標所在位置的后面一個字符。 #x:例如,6x 表刪除光標所在位置的后面6個字符。 X:大字的X,每按一次刪除光標所在位置的前面一個字符。 #X:例如,20X 表刪除光標所在位置的前面20個字符。 dd:刪除光標所在行。 #dd:例如,6dd表刪除從光標所在的該行往下數(shù)6行之文字。

復(fù)制粘貼

我個人并不是很習(xí)慣VI提供的復(fù)制粘貼,由于沒有高亮選中,用起來感覺不是很方便。平時大都是用的終端工具的復(fù)制粘貼功能,因此這里的命令我都加灰了,感興趣的可以看看。

yw:將光標所在處到字尾的字符復(fù)制到緩沖區(qū)中。 p:將緩沖區(qū)內(nèi)的字符粘貼到光標所在位置(指令'yw'與'p必須搭配使用)。 yy:復(fù)制光標所在行。[超常用] p:復(fù)制單行到您想粘貼之處。(指令'yy'與'p'必須搭配使用) #yy:如:6yy表示拷貝從光標所在的該行往下數(shù)6行之文字。[常用] p: 復(fù)制多行到您想粘貼之處。(指令'#yy'與'p'必須搭配使用) ayy:將復(fù)制行放入buffer a, vi提供buffer功能,可將常用的數(shù)據(jù)存在buffer ap:將放在buffer a的數(shù)據(jù)粘貼。 b3yy:將三行數(shù)據(jù)存入buffer b。 b3p:將存在buffer b的資料粘貼

撤銷和重做

撤銷和重做在任何編輯器里都是非常有用的命令:

u:假如您誤操作一個指令,可以馬上按u,回復(fù)到上一個操作。 .: 重復(fù)執(zhí)行上一次的指令

查找和替換

查找和替換的語法筆記復(fù)雜,先簡單的介紹一下查找的語法:

/pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter> :向上查找pattern匹配字符串

使用了查找命令之后,使用如下兩個鍵快速查找:

n:按照同一方向繼續(xù)查找 N:按照反方向查找

至于替換的語法,限于篇幅所限,這里就不介紹了,給一個鏈接供大家參考一下:http://blog.csdn.net/lanxinju/article/details/5731843。

VI對編程的支持

VI對編程還是提供了一定的支持的。例如,它是支持括號配對、語法高亮顯示的。

不過,由于并不支持語法解析功能,作為編碼工具和專業(yè)的代碼編輯器如SourceInsight、VisualStudio等比起來還是有很大差距的。個人感覺做小型項目和臨時修改代碼用還行,但做大型項目是有點力不從心的。



來自為知筆記(Wiz)

轉(zhuǎn)載于:https://www.cnblogs.com/linzhenjie/p/5485530.html

總結(jié)

以上是生活随笔為你收集整理的Linux高级编程--01.vi命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。