vim編輯器常用命令

vim編輯器有兩種模式:輸入文本模式,輸入命令模式。

常用命令:

  • 插入文本模式:
$ i
  • 退出插入文本模式:
$ Esc
  • 命令行模式:
$ : (英文輸入法下)
  • 保存文本:
$ :w 文件名
  • 退出vim:
$ :q[退出]     q! [強(qiáng)制退出]  或是  wq! [保存并強(qiáng)制退出],適合對(duì)已經(jīng)存在的文件。

注意:首先進(jìn)入命令行模式,輸入這些命令才管用。

  • 強(qiáng)制存盤(pán)寫(xiě)入

保存并退出時(shí)報(bào)錯(cuò):E37: No write since last change No write since last change

$ :w!

命令解釋?zhuān)?/p>

w :write 
q :quite  
 i:insert


案例:

1.刪除某次提交記錄

比如我的提交歷史如下,我現(xiàn)在想刪除commit_B,但是不影響commit_B之后的提交歷史

commit_C 

commit_B

commit_A
  1. 首先找到commit_B提交之前的一次提交的commit_A
  2. 執(zhí)行如下命令
    git rebase -i commit_A
  3. 此時(shí)光標(biāo)會(huì)停留在你想刪除的commit_B前,按下delete鍵刪除 pick,然后 按下 i鍵,進(jìn)入insert 插入文本模式。輸入 "drop" 然后。:q發(fā)現(xiàn)退出不成功。報(bào)寫(xiě)入失敗的錯(cuò)誤E37:No write since last change (add ! to override)。此時(shí)則需要強(qiáng)制寫(xiě)入輸入:w!完成寫(xiě)入動(dòng)作。然后再:q退出vim。
    2023-09-27.140342.png
  4. 最后一步,執(zhí)行git push -f
  5. 如果是一個(gè)多人合作的倉(cāng)庫(kù),建議別人把本地倉(cāng)庫(kù)刪除。重新clone 一份遠(yuǎn)程倉(cāng)庫(kù)到本地。
  6. git log 發(fā)現(xiàn)成功刪除了那一條記錄。

2.使用vim寫(xiě)一個(gè)test.txt文本文件。

進(jìn)入vim編輯器

$ vim

效果如圖:
眼睛注意兩個(gè)區(qū)域


image.png

文本編輯模式

$ i

此時(shí)輸入一個(gè) i 進(jìn)入了插入文本模式


image.png
$ 輸入內(nèi)容
image.png
$ 按下 Esc鍵
image.png

進(jìn)入命令行模式,注意,這里輸入法必須是英文模式下,才能輸入進(jìn)去這個(gè)冒號(hào)

$ :

然后,保存內(nèi)容到 test.txt文件中。

$ :w test.txt  然后回車(chē)
image.png

然后回車(chē)后:

image.png

然后再次進(jìn)入命令行模式

$ :      

再輸入 q ,然后回車(chē)退出vim

$ :q

當(dāng)然,這個(gè)文件要是不想要,可以直接輸入 q! ,那么就直接退出vim。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容