1. 程式人生 > >學習筆記第十七節課

學習筆記第十七節課

作業

進入編輯模式。
  • 編輯模式就是進入一個可以編輯文本文檔的模式。
  • 技術分享圖片
  • i是進入編輯模式,同樣shift+i也可以,而且shift+i可以直接把光標定位到行首進去編輯模式。
  • o也可以進去編輯模式,是在所在行的下一行進去編輯模式。也就是相當於直接按了回車。
  • shift+o是所在行的上一行進入編輯模式。
  • a也可以進入編輯模式,a進入編輯模式後會向當前光標所在位置向後移動一格。 shift+a 是移動到行末去。

vim命令模式

技術分享圖片

  • /+要搜索的字符串,就會高亮顯示所有的帶有要搜索的字符串。 然後按n可以向後繼續查找。shift+n向前繼續查找。
  • 技術分享圖片
  • 也可以?+要搜索的字符串。這個按n是向前查找,shift+n向後查找。
  • 技術分享圖片
  • 替換的功能很實用,比如從一個機器上cp到另一個機器上一個文件,到了這臺機器上ip地址不一樣了,就需要去更換,但是不可能一個個去換的,所以可以用替換的功能。
  • 替換的寫法:從哪個行數開始+,+到那個行數結束+s/要更換的源字符串/要更換的字符串/+g(s的意思是表示要替換了。) (g是更換所有的意思,不加g的話,一行中如果有兩個相同的字符串,只會更改前一個。)
  • 比如替換dnsmasq為yingxin(:1,100s/dnsamsq/yingxin/g)
  • 技術分享圖片
  • 回車後就替換完成了。
  • 技術分享圖片
  • 按:再按方向鍵 可以調出你之前輸入的命令,和在命令行的用法一樣。
  • 技術分享圖片
  • 上面說到不加g會導致一行中相同的兩個字符串,只替換前一個,試一下。
  • 第五行有兩個yingxin 我們把yingxin換回dnsmasq ,不加g
  • 技術分享圖片
  • 技術分享圖片
  • 然後5+G 到第五行,發現第二個沒有更換成dnsmasq。
  • 技術分享圖片
  • 也可以不指定行數,全部替換,是 :1,$s/dnsmasq/yingxin/g
  • 技術分享圖片
  • 技術分享圖片
  • 再次搜索dnsmasq 就沒有了。
  • 技術分享圖片
  • 如果遇到帶有/的字符串,會和命令中的/有沖突,系統會判定你這個也是命令中的一部分。就會產生混亂。
  • 技術分享圖片
  • 技術分享圖片
  • 遇到這種情況可以加一個反斜杠 \ 讓系統識別不到/
  • 技術分享圖片
  • 技術分享圖片
  • 這樣覺得看著很奇怪的話,也可以用#替換/ 或者用@符號也可以替換。
  • 技術分享圖片
  • 技術分享圖片
  • wq保存並退出。wq! 強制保存退出 (只適用於root用戶)
  • q不保存退出。 q! 強制退出。(只適用於root用戶)
  • w保存。 w! 強制保存。(只適用於root用戶)
  • set nu 顯示行號
  • set nonu 不顯示行號。
  • 如果不想高亮顯示,可以用nohl取消掉。
  • 技術分享圖片
  • :x也可以保存退出 ,在更改文件後用x和wq是一樣的。如果是文件打開了沒有做任何操作,wq保存退出會更改mtime,系統會認定你做了操作。 但是x不會,沒做就是沒做。

vim實踐

技術分享圖片
技術分享圖片
技術分享圖片

學習筆記第十七節課