十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
有很多方法:退出Vi
創(chuàng)新互聯(lián)主營(yíng)蒙城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app開(kāi)發(fā)定制,蒙城h5小程序開(kāi)發(fā)搭建,蒙城網(wǎng)站營(yíng)銷(xiāo)推廣歡迎蒙城等地區(qū)企業(yè)咨詢(xún)
當(dāng)編輯完文件,準(zhǔn)備退出Vi返回到shell時(shí),可以使用以下幾種方法之一。
在命令模式中,連按兩次大寫(xiě)字母Z,若當(dāng)前編輯的文件曾被修改過(guò),則Vi保存該文件后退出,返回到shell;若當(dāng)前編輯的文件沒(méi)被修改過(guò),則Vi直接退出, 返回到shell。
在末行模式下,輸入命令:w
Vi保存當(dāng)前編輯文件,但并不退出,而是繼續(xù)等待用戶(hù)輸入命令。在使用w命令時(shí),可以再給編輯文件起一個(gè)新的文件名。[例6]
:w newfile
此時(shí)Vi將把當(dāng)前文件的內(nèi)容保存到指定的newfile中,而原有文件保持不變。若newfile是一個(gè)已存在的文件,則Vi在顯示窗口的狀態(tài)行給出提示信息:
File exists (use ! to override)
此時(shí),若用戶(hù)真的希望用文件的當(dāng)前內(nèi)容替換newfile中原有內(nèi)容,可使用命令
:w! newfile
否則可選擇另外的文件名來(lái)保存當(dāng)前文件。
在末行模式下,輸入命令:q
系統(tǒng)退出Vi返回到shell。若在用此命令退出Vi時(shí),編輯文件沒(méi)有被保存,則Vi在顯示窗口的最末行顯示如下信息:
No write since last change (use ! to overrides)
提示用戶(hù)該文件被修改后沒(méi)有保存,然后Vi并不退出,繼續(xù)等待用戶(hù)命令。若用戶(hù)就是不想保存被修改后的文件而要強(qiáng)行退出Vi時(shí),可使用命令:q!
Vi放棄所作修改而直接退到shell下。
在末行模式下,輸入命令:wq
Vi將先保存文件,然后退出Vi返回到shell。
在末行模式下,輸入命令:x
該命令的功能同命令模式下的ZZ命令功能相同。
更多相關(guān)linux的學(xué)習(xí)資料,請(qǐng)參考《Linux就該這么學(xué)》。
vi profile
返回
:q 退出
:wq或者:x或者shift+zz 保存并退出
:q! 不保存并退出
:w 保存
:w! 強(qiáng)制保存
編輯到輸入模式:
i 在當(dāng)前光標(biāo)前面輸入
I 在當(dāng)前光標(biāo)所在行的行首,轉(zhuǎn)換為輸入模式
a 在當(dāng)前光標(biāo)后面輸入
A 在當(dāng)前光標(biāo)所在行的行尾,轉(zhuǎn)換為輸入模式
o 在當(dāng)前光標(biāo)所在行的下方,新建一行,并轉(zhuǎn)為輸入模式
O 在當(dāng)前光標(biāo)所在行的上方,新建一行,并轉(zhuǎn)為輸入模式
1、 移動(dòng)光標(biāo)
字符:方向鍵上下左右或者鍵盤(pán)kjhl(上下左右)
單詞:w移至下一個(gè)單詞的詞首;e跳至當(dāng)前或下一個(gè)單詞的詞尾;b跳至當(dāng)前或前一個(gè)單詞的詞首
行內(nèi):0絕對(duì)行首;^行首的第一個(gè)非空白字符;$絕對(duì)行尾
行間:G文章末尾;3G第3行;gg文章開(kāi)頭
翻屏:ctrl f【往后翻】;Ctrl b【往前翻】
2、 刪除、替換單個(gè)字符
x刪除光標(biāo)位置字符;3x刪除光標(biāo)開(kāi)始3個(gè)字符;r替換光標(biāo)位置字符
dw刪除一個(gè)單詞;4dw刪除光標(biāo)開(kāi)始的4個(gè)單詞;dd刪除光標(biāo)所在行;5dd刪除光標(biāo)開(kāi)始的5行
3、復(fù)制粘貼剪切
yw復(fù)制一個(gè)單詞,p在該行粘貼單詞;yy復(fù)制整行,p在該行下方粘貼整行
dd剪切整行,p再粘貼整行;dw剪切一個(gè)單詞,p再粘貼一個(gè)單詞
4、 撤銷(xiāo)重做
u:撤銷(xiāo);ctrl+r:重做撤銷(xiāo)的操作;.重復(fù)上一步的操作【假設(shè)先dd,再.,會(huì)再執(zhí)行dd命令】
1、 set設(shè)置
set nu
set nonu
set readonly #設(shè)置只讀文件,不能修改,只在當(dāng)前環(huán)境有效,退出文件,再次打開(kāi),這個(gè)只讀就無(wú)效了
set noreadonly #取消只讀
2、 /查找
/after查找文檔中的after【可以找到所有的after】,n向下翻,N向上翻
:/after查找文檔中的after所在行【可以找到所有的after】,n向下翻,N向上翻
3、!執(zhí)行命令
比如:查找root目錄
:!ls /root/
4、 查找并替換
格式
【 :查找范圍s/查找的詞/要替換的詞/ 】
或者【:查找范圍s#查找的詞#要替換的詞# 】
或者【:查找范圍s%查找的詞%要替換的詞%】,
即分隔符可以是/、#、%
其中, 查找范圍 包括【.當(dāng)前光標(biāo)行】;【$末尾行】;【%全文】;【g一行內(nèi)全部替換】;【i忽略大小寫(xiě)】
比如 【 :.,$s/after/before/】 表示在當(dāng)前光標(biāo)行【.】到末尾【$】這個(gè)范圍內(nèi),將after替換為before, 但是如果一行有多個(gè)after的話,只會(huì)把第一個(gè)after替換掉 。
比如 【 :%s/after/before/】 表示在全文,將after替換為before,但是如果一行有多個(gè)after的話,只會(huì)把第一個(gè)after替換掉。
比如 【:%s/after/before/g】 ,表示在全文,將after替換為before,但是 如果一行有多個(gè)after的話,會(huì)把該行所有after替換掉,因?yàn)樵诿罾锩婕恿薵 。
比如 【:%s/after/before/gi】 ,表示在全文,將after替換為before,且忽略大小寫(xiě)并替換一行內(nèi)所有after。
比如 【 :%d或者dG】 ,表示刪除全文
比如 【:1,$-4d】 ,表示刪除第一行到倒數(shù)第5行的數(shù)據(jù)
比如 【:1,4y】 ,表示復(fù)制1到4行,再按p可粘貼這4行
Linux下退出VI編輯器可以使用以下命令:
1、:q
離開(kāi) vi (常用)。
2、:q!
若曾修改過(guò)檔案,又不想儲(chǔ)存,使用 ! 為強(qiáng)制離開(kāi)不儲(chǔ)存檔案。
2、:wq
儲(chǔ)存后離開(kāi),若為 :wq! 則為強(qiáng)制儲(chǔ)存后離開(kāi) (常用)
4、:x
保存后退出文件。
擴(kuò)展資料
vi模式下常用按鍵:
1、字符按鍵以及Shift組合,輸入字符。
2、ENTER,回車(chē)鍵,換行。
3、BACK SPACE,退格鍵,刪除光標(biāo)前一個(gè)字符。
4、DEL,刪除鍵,刪除光標(biāo)后一個(gè)字符。
5、方向鍵,在文本中移動(dòng)光標(biāo)。
6、HOME/END,移動(dòng)光標(biāo)到行首/行尾。
7、Page Up/Page Down,上/下翻頁(yè)。
8、Insert,切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線。
9、ESC,退出輸入模式,切換到命令模式。
先按ESC進(jìn)入Command模式,然后輸入“:wq”,回車(chē)就可以保存并退出了。
vi的其他保存/退出命令:
:w 保存;
:w filename 另存為filename;
:wq! 保存并強(qiáng)制退出;
:wq! filename 注:以filename為文件名保存后強(qiáng)制退出;
:q! 強(qiáng)制退出;
:x 保存并退出(僅當(dāng)文件有變化時(shí)保存)
擴(kuò)展資料:
vi有三種工作模式:命令模式、文本編輯模式和最后行模式。不同工作模式下的操作方法有所不同。
1、命令行模式
該模式是進(jìn)入vi編輯器后的默認(rèn)模式。任何時(shí)候,不管用戶(hù)處于何種模式,按下Esc鍵即可進(jìn)入命令模式。
在命令模式下,用戶(hù)可以輸入vi命令,用于管理自己的文檔。此時(shí)從鍵盤(pán)上輸入的任何字符都被當(dāng)做編輯命令來(lái)解釋。若輸入的字符是合法的vi命令,則vi在接受用戶(hù)命令之后完成相應(yīng)的動(dòng)作。但需注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi的合法命令,vi 會(huì)響鈴報(bào)警。
2、文本輸入模式
在命令模式下輸入插入命令i、附加命令a、打開(kāi)命令o、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式。
在該模式下,用戶(hù)輸入的任何字符都被vi當(dāng)做文件內(nèi)容保存起來(lái),并將其顯示在屏幕上。在文本輸入過(guò)程中,若想回到命令模式下,按下Esc鍵即可。
3、末行模式
末行模式也稱(chēng) ex 轉(zhuǎn)義模式。在命令模式下,用戶(hù)按:鍵即可進(jìn)入末行模式下,此時(shí)vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè):作為末行模式的說(shuō)明符,等待用戶(hù)輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫(xiě)到文件中等)。
末行命令執(zhí)行完后,vi 自動(dòng)回到命令模式。
參考資料:百度百科-vi
vim 是對(duì) vi 的擴(kuò)展,文中的很多操作是 vi 通用的
vi 是 區(qū)分大小寫(xiě) 的命令的,也就是說(shuō) g與G 是不同的命令
在不同模式下,快捷鍵是不一樣的 模式分 一般模式 編輯模式 指令模式
一般模式用于文件內(nèi)部操作,編輯模式用于輸入編寫(xiě)等,指令模式用于對(duì)文本文件進(jìn)行操作
下面的選項(xiàng)值不變,但卻被禁用
綁定快捷鍵來(lái)激活 / 取消 paste 模式
出現(xiàn)粘貼換行符錯(cuò)位,設(shè)置一下 .vimrc
顯示所有寄存器內(nèi)容
原文鏈接: