我們使用Linux系統(tǒng)的時候,如果要編輯文件內(nèi)容,使用Vim編輯器是最好不過的了。那么如何使用Vim編輯器呢?下面我給大家分享一下。
站在用戶的角度思考問題,與客戶深入溝通,找到龍泉網(wǎng)站設(shè)計與龍泉網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋龍泉地區(qū)。
工具/材料
Linux終端
01
首先打開Linux終端命令行,輸入Vim命令,如下圖所示
02
進入Vim編輯器以后我們會發(fā)現(xiàn)不管按什么鍵都不能輸入內(nèi)容,如下圖所示,因為現(xiàn)在處于命令模式
03
接下來我們按鍵盤上的i鍵從命令模式進入到編輯模式,如下圖所示
04
然后我們會看到編輯器底部會出現(xiàn)insert字樣,這代表當(dāng)前是編輯模式,如下圖所示
05
當(dāng)編輯完內(nèi)容以后我們按鍵盤上的ESC鍵從編輯模式退回到命令模式,如下圖所示
06
回到命令模式以后我們輸入wq命令,接著輸入要設(shè)置的文件名稱,對剛才編輯的內(nèi)容進行保存,如下圖所示
07
保存以后會自動回到Linux的終端命令行,我們可以用ls命令查看剛才新建的文件是否存在
08
接著可以通過cat命令查看一下文件的內(nèi)容是不是剛才編輯的內(nèi)容,如下圖所示
09
最后如果想再次進入文件則可以通過輸入vim命令加上文件名稱進入,如下圖所示
我們使用Linux的時候,經(jīng)常會運用編輯器。那么如何在linux中用命令打開編輯器呢?下面我給大家分享一下。
工具/材料
Linux
首先我們登錄進Linux系統(tǒng)中,如下圖所示
接下來鼠標(biāo)單擊右鍵,在彈出的菜單中選擇打開終端選項,如下圖所示
然后我們進入命令行以后,輸入gedit命令,如下圖所示
最后我們就看到編輯器被打開了,如下圖所示
vim可以分為三種狀態(tài),分別是 命令行模式(command mode) 、 輸入模式(Insert mode) 和 底行模式(last line mode) ,這 3 種工作模式可隨意切換,如下圖所示。
使用vim編輯文件時,默認(rèn)處于命令行模式。此模式下,可使用方向鍵(上、下、左、右鍵)或 k、j、h、i 移動光標(biāo)的位置,還可以對文件內(nèi)容進行復(fù)制、粘貼、替換、刪除等操作。
下圖所示是vim處于命令行模式的狀態(tài)示意圖。
在輸入模式下,vim可以對文件執(zhí)行寫操作,類似于在Windows系統(tǒng)的文檔中輸入內(nèi)容。
使vim進行輸入模式的方式是在命令模式狀態(tài)下輸入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具體功能下表所示),當(dāng)編輯文件完成后按 esc 鍵即可返回命令模式。
下圖所示為vim處于輸入模式模式下的示意圖。
底行模式用于對文件中的指定內(nèi)容執(zhí)行保存、查找或替換等操作。
使vim切換到底行模式的方法是在 命令行模式 狀態(tài)下按 : 鍵(注意是英文符號),此時vim窗口的左下方出現(xiàn)一個 : 符號,這是就可以輸入相關(guān)指令進行操作了。
指令執(zhí)行后vim會自動返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下圖所示為vim進入底行模式后的狀態(tài)。
對于新手來說,經(jīng)常不知道自己處于什么模式。不論是自己忘了,還是不小心切換了模式,都可以按一次 esc 鍵返回命令行模式。如果你多按幾次 esc 鍵后聽到"嘀————"的聲音,則代表你已經(jīng)處于命令行模式了。
打開文件
打開文件時光標(biāo)處于文件尾部
打開文件時,光標(biāo)定位到第幾行
字符移動
這些移動鍵都可以加上數(shù)字(5h:向左移動5個字符格)
單詞移動
行內(nèi)跳轉(zhuǎn)
行間移動
在底行模式下,直接給出行號,實現(xiàn)跳轉(zhuǎn)
用法:起始地址,結(jié)束地址 s @要替換內(nèi)容@替換后內(nèi)容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a換替換成A,全局替換
顯示取消行號
設(shè)定自動縮進(寫腳本時)
查找到的文本高亮顯示
語法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :個人配置文件,每個用戶的家目錄中,若不存在,手動創(chuàng)建
對于第一次用vim的童鞋,有幾點需要提醒一下:
一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進入vi編輯器后的默認(rèn)模式。任何時候,不管用戶處于何種模式,按下ESC鍵即可進入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時從鍵盤上輸入的任何字符都被當(dāng)作編輯命令來解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應(yīng)的動作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會響鈴報警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當(dāng)作文件內(nèi)容保護起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令在執(zhí)行完后,vi自動回到命令模式。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
實例演示
首先我們使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式
接下來我們按i,然后鍵盤隨便輸入寫內(nèi)容。
然后按ESC重新進入到命令模式。
在命令模式的情況下,我們按:,進入到了末行模式。
我們輸入wq!,然后回車,強行保存退出。
下次我們再打開對應(yīng)文件(可用less filename命令打開),即可看到內(nèi)容已經(jīng)更改。
補充:
(1)末行模式下:q! 【強制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個z即可退出。
更多命令
進入vi的命令:
vi filename :打開或新建文件,并將光標(biāo)置于第一行首
vi +n filename :打開文件,并將光標(biāo)置于第n行首
vi + filename :打開文件,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開文件,并將光標(biāo)置于第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vi filename….filename :打開多個文件,依次進行編輯
屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當(dāng)前行滾至屏幕頂部。
插入文本類命令:
i :在光標(biāo)前
I :在當(dāng)前行首
a:光標(biāo)后
A:在當(dāng)前行尾
o:在當(dāng)前行之下新開一行
O:在當(dāng)前行之上新開一行
r:替換當(dāng)前字符
R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
s:從當(dāng)前光標(biāo)位置處開始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令:
ndw或ndW:刪除光標(biāo)處開始及其后的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當(dāng)前行及其后n-1行
x或X:刪除一個字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern:從光標(biāo)開始處向文件尾搜索pattern
?pattern:從光標(biāo)開始處向文件首搜索pattern
n:在同一方向重復(fù)上一次搜索命令
N:在反方向上重復(fù)上一次搜索命令
:s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
撤銷回退命令:
u 撤銷上一步的操作
Ctrl+r 恢復(fù)上一步被撤銷的操作
選項設(shè)置:
all:列出所有選項設(shè)置情況
term:設(shè)置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)
number:顯示行號
report:顯示由面向行的命令修改過的數(shù)目
terse:顯示簡短的警告信息
warn:在轉(zhuǎn)到別的文件時若沒保存當(dāng)前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達(dá)文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
:w :保存當(dāng)前文件
:e filename:打開文件filename進行編輯
:x:保存當(dāng)前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內(nèi)容作為command的輸入
:r!command:將命令command的輸出結(jié)果放到當(dāng)前行
寄存器操作:
“?nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyw:將當(dāng)前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyl:將當(dāng)前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?p:取出寄存器?中的內(nèi)容并將其放到光標(biāo)位置處。這里?可以是一個字母,也可以是一個數(shù)字
ndd:將當(dāng)前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號刪除寄存器中。