最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中Vi和Vim編輯器用法詳解

 更新時(shí)間:2022年06月01日 10:10:36   作者:springsnow  
本文詳細(xì)講解了Linux中Vi和Vim編輯器的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、簡(jiǎn)介

Linux下的文本編輯器有很多種,vi 是最常用的,也是各版本Linux的標(biāo)配。注意,vi 僅僅是一個(gè)文本編輯器,可以給字符著色,可以自動(dòng)補(bǔ)全,但是不像 Windows 下的 word 有排版功能。 
vi 是十年磨一劍的產(chǎn)品,雖然命令繁多,并且大多數(shù)功能都是依靠鍵盤輸入來(lái)完成,但是一旦你熟悉后,會(huì)發(fā)現(xiàn) vi 的功能和效率是其他圖形界面編輯器無(wú)法比擬的。 
在Linux中,vi 被認(rèn)為是事實(shí)上的標(biāo)準(zhǔn)編輯器,因?yàn)椋?/p>

  • 所有版本的 Linux 都帶有 vi 編輯器;
  • 占用資源少;
  • 與 ed、ex 等其他編輯器相比,vi 對(duì)用戶更加友好。

你可以使用 vi 編輯器編輯現(xiàn)有的文件,也可以創(chuàng)建一個(gè)新文件,還能以只讀模式打開文本文件

二、安裝VIM

Vim 是 Vimproved 的縮寫,是 vi 的改進(jìn)版。vim是Linux下最常用的文本編譯器,在終端輸入vim時(shí)可能會(huì)出現(xiàn)

Connand 'vim' not found, but can be installed with:

這是因?yàn)槟J(rèn)的文本編譯器是vi, 而沒有安裝或者升級(jí)vim的緣故

1、 Ctrl + Alt +T 進(jìn)入終端,安裝vim:

sudo apt-get install vim

2、安裝完成后即可使用vim,輸入vim查看:

美化vim

剛安裝的VIM,可能界面并不是十分友好,我們可以更改vim的配置文件,按照我們的需求去修改它。在命令行下,輸入命令:注意: 必須加上sudo,否則你是沒有權(quán)限編輯vimrc的。

sudo vim /etc/vim/vimrc

在這個(gè)文件中可以看到有下面這個(gè)if判斷,意思是語(yǔ)法高亮,如果是被注釋掉狀態(tài),可以將其放開:

if has("syntax")
     syntax on
endif
"設(shè)置左側(cè)行號(hào)
set nu
"設(shè)置tab鍵長(zhǎng)度為4
set tabstop=4
"突出顯示當(dāng)前行
set cursorline
"在右下角顯示光標(biāo)位置的狀態(tài)行
set ruler
"自動(dòng)縮進(jìn)
set autoindent
"覆蓋文件時(shí)不備份
set nobackup

編輯完成后使用 :wq 進(jìn)行保存退出 
說(shuō)明: 冒號(hào)結(jié)束編輯 ,w為保存 q為退出 如果你想放棄也可以 q!為強(qiáng)制退出

三、進(jìn)入 vi\VIM 編輯器

可以通過(guò)以下方式進(jìn)入 vi 編輯器:

  • vi filename:如果filename存在,則打開;否則會(huì)創(chuàng)建一個(gè)新文件再打開。
  • vi -R filename:以只讀模式(只能查看不能編輯)打開現(xiàn)有文件。
  • view filename:以只讀模式打開現(xiàn)有文件。
  • VIM同上的命令。

例如,使用 vi 編輯器創(chuàng)建一個(gè)新文件并打開:

$ vi testfile
|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]

豎線(|)代表光標(biāo)的位置;波浪號(hào)(~)代表該行沒有任何內(nèi)容。如果沒有 ~,也看不到任何內(nèi)容,那說(shuō)明這一行肯定是有空白字符(空格、tab 縮進(jìn)、換行符等)或不可見字符

四、工作模式

三種工作模式:

  • 普通模式 
    由Shell進(jìn)入vi編輯器時(shí),首先進(jìn)入普通模式。在普通模式下,從鍵盤輸入任何字符都被當(dāng)作命令來(lái)解釋。普通模式下沒有任何提示符,輸入命令后立即執(zhí)行,不需要回車,而且輸入的字符不會(huì)在屏幕上顯示出來(lái)。 
    普通模式下可以執(zhí)行命令、保存文件、移動(dòng)光標(biāo)、粘貼復(fù)制等。

工作模式切換:

  • 在普通模式下輸入 i(插入)、c(修改)、o(另起一行) 命令時(shí)進(jìn)入編輯模式;按 esc 鍵退回到普通模式。
  • 在普通模式下輸入冒號(hào)(:)可以進(jìn)入命令模式。輸入完命令按回車,命令執(zhí)行完后會(huì)自動(dòng)退回普通模式。 
    提示:如果不確定當(dāng)前處于哪種模式,按兩次 Esc 鍵將回到普通模式。
  • 編輯模式 
    編輯模式主要用于文本的編輯。該模式下用戶輸入的任何字符都被作為文件的內(nèi)容保存起來(lái),并在屏幕上顯示出來(lái)。
  • 命令模式 
    命令模式下,用戶可以對(duì)文件進(jìn)行一些高級(jí)處理。盡管普通模式下的命令可以完成很多功能,但要執(zhí)行一些如字符串查找、替換、顯示行號(hào)等操作還是必須要進(jìn)入命令模式。 
    注意:有些教程中稱有兩種工作模式,是把命令模式合并到普通模式。

五、退出 vi 編輯器

一般在命令模式下退出 vi 編輯器。

  • q :如果文件未被修改,會(huì)直接退回到Shell;否則提示保存文件。
  • q! :強(qiáng)行退出,不保存修改內(nèi)容。
  • wq :w 命令保存文件,q 命令退出 vi,合起來(lái)就是保存并退出。
  • ZZ :保存并退出,相當(dāng)于 wq,但是更加方便。

退出之前,你也可以在 w 命令后面指定一個(gè)文件名,將文件另存為新文件,例如:將當(dāng)前文件另存為 filename2。

w filename2

注意:vi 編輯文件時(shí),用戶的操作都是基于緩沖區(qū)中的副本進(jìn)行的。 如果退出時(shí)沒有保存到磁盤,則緩沖區(qū)中的內(nèi)容就會(huì)被丟失。

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

為了不影響文件內(nèi)容,必須在普通模式(按兩次 Esc 鍵)下移動(dòng)光標(biāo)。使用下表中的命令每次可以移動(dòng)一個(gè)字符:

  • k :向上移動(dòng)光標(biāo)(移動(dòng)一行)
  • j :向下移動(dòng)光標(biāo)(移動(dòng)一行)
  • h :向左移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符)
  • l :向右移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符)

兩點(diǎn)提醒:

  • vi 是區(qū)分大小寫的,輸入命令時(shí)注意不要鎖定大寫。
  • 可以在命令前邊添加一個(gè)數(shù)字作為前綴,例如,2j 將光標(biāo)向下移動(dòng)兩行。

當(dāng)然,還有很多其他命令來(lái)移動(dòng)光標(biāo),不過(guò)記住,一定要在普通模式(按兩次 Esc 鍵)下。

用來(lái)移動(dòng)光標(biāo)的命令:

  • 0 或 |:將光標(biāo)定位在一行的開頭。
  • $:將光標(biāo)定位在一行的末尾。
  • w:定位到下一個(gè)單詞。
  • b:定位到上一個(gè)單詞。
  • (:定位到一句話的開頭,句子是以 ! . ? 三種符號(hào)來(lái)界定的。
  • ):定位到一句話的結(jié)尾。
  • {:移動(dòng)到段落開頭。&&&&&&
  • }:移動(dòng)到段落結(jié)束。&&&&&&&&&
  • [[:回到段落的開頭處。&&&&&&&&&&
  • ]]:向前移到下一個(gè)段落的開頭處。&&&&&&&&&&
  • n|:移動(dòng)到第 n 列(當(dāng)前行)。
  • 1G:移動(dòng)到文件第一行。
  • G:移動(dòng)到文件最后一行。
  • nG:移動(dòng)到文件第 n 行。
  • :n:移動(dòng)到文件第 n 行。
  • H:移動(dòng)到屏幕頂部。
  • nH:移動(dòng)到距離屏幕頂部第 n 行的位置。
  • M:移動(dòng)到屏幕中間。
  • L:移動(dòng)到屏幕底部。
  • nL:移動(dòng)到距離屏幕底部第 n 行的位置。
  • :x:x 是一個(gè)數(shù)字,表示移動(dòng)到行號(hào)為 x 的行。

七、控制命令

有一些控制命令可以與 Ctrl 鍵組合使用,一定要在普通模式(按兩次 Esc 鍵)下。如下:

  • CTRL+d:向前滾動(dòng)半屏
  • CTRL+f:向前滾動(dòng)全屏
  • CTRL+u:向后滾動(dòng)半屏
  • CTRL+b:向后滾動(dòng)整屏
  • CTRL+e:向上滾動(dòng)一行
  • CTRL+y:向下滾動(dòng)一行
  • CTRL+I:刷新屏幕

八、編輯文件

切換到編輯模式下才能編輯文件。有很多命令可以從普通模式切換到編輯模式,如下所示:

  • i:在當(dāng)前光標(biāo)位置之前插入文本
  • I:在當(dāng)前行的開頭插入文本
  • a:在當(dāng)前光標(biāo)位置之后插入文本
  • A:在當(dāng)前行的末尾插入文本
  • o:在當(dāng)前位置下面創(chuàng)建一行
  • O:在當(dāng)前位置上面創(chuàng)建一行

撤銷命令:

  • u: 一步一步撤銷
  • Ctr-r: 反撤銷

重復(fù)命令:

  • .: 重復(fù)上一次操作的命令

九、刪除字符

下面的命令,可以刪除文件中的字符或行:

  • x:刪除當(dāng)前光標(biāo)下的字符
  • X:刪除光標(biāo)前面的字符
  • dw:刪除從當(dāng)前光標(biāo)到單詞結(jié)尾的字符
  • d^:刪除從當(dāng)前光標(biāo)到行首的字符
  • d$:刪除從當(dāng)前光標(biāo)到行尾的字符
  • D:刪除從當(dāng)前光標(biāo)到行尾的字符
  • dd:刪除當(dāng)前光標(biāo)所在的行

可以在命令前面添加一個(gè)數(shù)字前綴,表示重復(fù)操作的次數(shù),例如,2x 表示連續(xù)兩次刪除光標(biāo)下的字符,2dd 表示連續(xù)兩次刪除光標(biāo)所在的行。

十、修改文本

如果你希望對(duì)字符、單詞或行進(jìn)行修改,可以使用下面的命令:

  • cc:刪除當(dāng)前行,并進(jìn)入編輯模式。
  • cw:刪除當(dāng)前字(單詞),并進(jìn)入編輯模式。
  • r:替換當(dāng)前光標(biāo)下的字符。
  • R:從當(dāng)前光標(biāo)開始替換字符,按 Esc 鍵退出。
  • s:用輸入的字符替換當(dāng)前字符,并進(jìn)入編輯模式。
  • S:用輸入的文本替換當(dāng)前行,并進(jìn)入編輯模式。

十一、粘貼復(fù)制

vi 中的復(fù)制粘貼命令:

  • yy:復(fù)制當(dāng)前行
  • nyy:復(fù)制n行
  • yw:復(fù)制一個(gè)字(單詞)
  • nyw:復(fù)制n行
  • p:將復(fù)制的文本粘貼到光標(biāo)后面
  • P:將復(fù)制的文本粘貼到光標(biāo)前面

十二、高級(jí)命令

下面的一些命令雖然看起來(lái)有些古怪,但是會(huì)讓你的工作更有效率,如果你是 vi 重度用戶,就了解一下吧。

  • J:將當(dāng)前行和下一行連接為一行
  • <<:將當(dāng)前行左移一個(gè)單位(一個(gè)縮進(jìn)寬度)
  • >>:將當(dāng)前行右移一個(gè)單位(一個(gè)縮進(jìn)寬度)
  • ~:改變當(dāng)前字符的大小寫
  • ^G:Ctrl+G組合鍵可以顯示當(dāng)前文件名和狀態(tài)
  • U:撤銷對(duì)當(dāng)前行所做的修改
  • u:撤銷上次操作,再次按 'u' 恢復(fù)該次操作
  • :f:以百分號(hào)(%)的形式顯示當(dāng)前光標(biāo)在文件中的位置、文件名和文件的總行數(shù)
  • :f filename:將文件重命名為 filename
  • :w filename:保存修改到 filename
  • :e filename:打開另一個(gè)文件名為 filename 的文件
  • :cd dirname:改變當(dāng)前工作目錄到 dirname
  • :e #:在兩個(gè)打開的文件之間進(jìn)行切換
  • :n:如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到下一個(gè)文件
  • :p:如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到上一個(gè)文件
  • :N:如果用 vi 打開了多個(gè)文件,可以使用 :n 切換到上一個(gè)文件
  • :r file:讀取文件并在當(dāng)前行的后邊插入
  • :nr file:讀取文件并在第 n 行后邊插入

十三、文本查找

全文件搜索

可以在普通模式(按兩次 Esc 鍵)下輸入

  • / 命令(向下查找),這時(shí)狀態(tài)欄(最后一行)出現(xiàn)"/"并提示輸入要查找的字符串,回車即可。 ? 命令為向上查找。
  • n 命令可以按相同的方向繼續(xù)查找,輸入 N 命令可以按相反的方向繼續(xù)查找。

部分特殊字符列表:

搜索的字符串中可以包含一些有特殊含義的字符,如果希望搜索這些字符本身,需要在前面加反斜杠(\)。

  • ^ :匹配一行的開頭
  • . :匹配一個(gè)字符
  • * :匹配0個(gè)或多個(gè)字符
  • $ :匹配一行的結(jié)尾
  • [ ] :匹配一組字符

搜索某行中的單個(gè)字符

f 向上搜索,F(xiàn) 向下搜索,并且會(huì)把光標(biāo)定位到匹配的字符。 
t 命令向上搜索,并把光標(biāo)定位到匹配字符的前面;T 命令向下搜索,并把光標(biāo)定位到匹配字符的后面。

十四、set 命令

set 命令可以對(duì) vi 編輯器進(jìn)行一些設(shè)置。使用 set 命令需要進(jìn)入命令模式。

  • :set ic:搜索時(shí)忽略大小寫。
  • :set ai:設(shè)置自動(dòng)縮進(jìn)(自動(dòng)對(duì)齊)。
  • :set noai:取消自動(dòng)縮進(jìn)(自動(dòng)對(duì)齊)。
  • :set nu:顯示行號(hào)。
  • :set sw:設(shè)置縮進(jìn)的空格數(shù),例如,將縮進(jìn)空格數(shù)設(shè)置為4::set sw=4。
  • :set ws:循環(huán)搜索:如果直到文件末尾也沒有查找到指定字符,那么會(huì)回到開頭繼續(xù)查找。
  • :set wm:設(shè)置自動(dòng)換行,例如,設(shè)置距離邊際2個(gè)字符時(shí)換行::set wm=2 。
  • :set ro:將文件類型改為只讀。
  • :set term:輸出終端類型。
  • :set bf:忽略輸入的控制字符,如 BEL(響鈴)、BS(退格)、CR(回車)等。

十五、運(yùn)行命令

切換到命令模式,再輸入 ! 命令即可運(yùn)行 Linux 命令。 
例如,保存文件前,如果希望查看該文件是否存在,那么輸入

:! ls

即可列出當(dāng)前目錄下的文件。按任意鍵回到 vi 編輯器。

十六、文本替換

切換到命令模式,再輸入 s/ 命令即可對(duì)文本進(jìn)行替換。語(yǔ)法為:

:s/search/replace/g

search 為檢索的文本,replace 為要替換的文本,g 表示全局替換。

:%s/原有字符/替換后字符 ##只替換每一行中出現(xiàn)的第一個(gè)原有字符
:%s/原有字符/替換后字符/g ##替換所有
:1,5s/原有字符/替換后字符/g ##替換1-5行

十七、幾點(diǎn)提示

vi 編輯器的使用講解完畢,但是請(qǐng)記住下面幾點(diǎn):

  • 輸入冒號(hào)(:)進(jìn)入命令模式,按兩次 Esc 鍵進(jìn)入普通模式。
  • 命令大小寫的含義是不一樣的。
  • 必須在編輯模式下才能輸入內(nèi)容。

十八、最全VI\Vim快捷鍵鍵位圖

到此這篇關(guān)于Linux中Vi和Vim編輯器用法的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 三分鐘學(xué)會(huì)Linux基本指令

    三分鐘學(xué)會(huì)Linux基本指令

    本文小馬將把Linux一般比較常見的指令給大家一一列舉出來(lái),為了大家忘記某些指令后,可以方便查詢記憶,再次小馬建議,Linux指令并不需要去特別花時(shí)間專門記憶,只需要多進(jìn)行操作實(shí)現(xiàn)就行,這篇文章主要介紹了Linux基本指令,需要的朋友可以參考下
    2022-12-12
  • shell 命令統(tǒng)計(jì)代碼行數(shù)的簡(jiǎn)單代碼

    shell 命令統(tǒng)計(jì)代碼行數(shù)的簡(jiǎn)單代碼

    這篇文章主要介紹了shell 命令統(tǒng)計(jì)代碼行數(shù)的簡(jiǎn)單代碼,文中給大家提到了統(tǒng)計(jì)行數(shù)、字符數(shù)、字節(jié)數(shù)的shell腳本 ,需要的朋友可以參考下
    2018-04-04
  • shell腳本發(fā)送http請(qǐng)求的實(shí)現(xiàn)示例

    shell腳本發(fā)送http請(qǐng)求的實(shí)現(xiàn)示例

    本文主要介紹了shell腳本發(fā)送http請(qǐng)求的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • bash scp command not found的解決方法

    bash scp command not found的解決方法

    今天在一系統(tǒng)上運(yùn)行bash scp提示command not found,經(jīng)過(guò)如下方法解決了,需要的朋友可以參考下
    2013-03-03
  • 設(shè)置Linux系統(tǒng)的空閑等待時(shí)間TMOUT的方法

    設(shè)置Linux系統(tǒng)的空閑等待時(shí)間TMOUT的方法

    下面小編就為大家?guī)?lái)一篇設(shè)置Linux系統(tǒng)的空閑等待時(shí)間TMOUT的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 大小寫字母轉(zhuǎn)換的shell腳本代碼

    大小寫字母轉(zhuǎn)換的shell腳本代碼

    本文介紹下,用于大小寫字母轉(zhuǎn)換的一例shell腳本,學(xué)習(xí)tr、awk、sed等命令的用法。有需要的朋友參考下
    2013-08-08
  • shell腳本一鍵同時(shí)推送代碼至github和gitee的解決辦法

    shell腳本一鍵同時(shí)推送代碼至github和gitee的解決辦法

    這篇文章主要介紹了shell腳本一鍵同時(shí)推送代碼至github和gitee的解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Shell腳本遍歷一個(gè)日期范圍實(shí)例

    Shell腳本遍歷一個(gè)日期范圍實(shí)例

    這篇文章主要介紹了Shell腳本遍歷一個(gè)日期范圍實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • Linux下壓縮與解壓命令詳解

    Linux下壓縮與解壓命令詳解

    這篇文章主要為大家詳細(xì)介紹了Linux下壓縮與解壓縮命令,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • shell腳本中整數(shù)型變量自增(加1)的幾種實(shí)現(xiàn)

    shell腳本中整數(shù)型變量自增(加1)的幾種實(shí)現(xiàn)

    本文主要介紹了shell腳本中整數(shù)型變量自增(加1)的幾種實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

潢川县| 贡嘎县| 凤凰县| 通州区| 苍梧县| 正阳县| 汝阳县| 牡丹江市| 襄垣县| 松江区| 大安市| 新营市| 曲阳县| 平昌县| 天门市| 南皮县| 长白| 新邵县| 高平市| 邵阳市| 岳普湖县| 彝良县| 黄石市| 博乐市| 当雄县| 大渡口区| 贵溪市| 酉阳| 礼泉县| 阜宁县| 宜宾县| 苏尼特右旗| 闽清县| 循化| 宜州市| 女性| 黄石市| 南投县| 石首市| 沅江市| 阳朔县|