Linux虛擬機(CentOS5)學習筆記(三)之Vim

六.編輯器之神–vim編輯器

一、vi介紹

vi編輯器是所有Unix及Linux系統下標準的編輯器,類似於windows系統下的notepad(記事本)編輯器,由於在Unix及Linux系統的任何版本,Vi編輯器是完全相同的,因此可以在其他任何介紹vi的地方都能進一步瞭解它,Vi也是Linux中最基本的文本編輯器,學會它後,我們將在Linux的世界裏暢行無阻,尤其是在終端中。

關於vim:

vi和vim都是Linux中的編輯器,不同的是,vim比較高級,可以視爲vi的升級版本。vi使用於文本編輯,但是vim更適用於coding(編程)。

Vim重點是光標的移動,模式切換,刪除,查找替換,複製,粘貼,撤銷命令的使用。

二、vim三種模式

Vim中存在三種模式(大衆的認知):命令模式、編輯模式(輸入模式)、末行模式(尾行模式)

命令模式:在該模式下是不能對文件直接編輯,可以輸入快捷鍵進行一些操作(刪除行,複製行,移動光標,粘貼等等)【打開文件之後默認進入的模式】;

編輯模式:在該模式可以對文件的內容進行編輯;

末行模式:可以在末行輸入命令來對文件進行操作(搜索、替換、保存、退出、撤銷、高亮等等);

Vim的打開文件的方式(4種,要求掌握的就前三種):

#vim  文件路徑          作用:打開指定的文件

#vim    +數字   文件的路徑  作用:打開指定的文件,並且將光標移動到指定行

#vim    +/關鍵詞  文件的路徑  作用:打開指定的文件,並且高亮顯示關鍵詞

#vim    文件路徑1 文件路徑2 文件路徑3  作用:同時打開多個文件

重點:先複製出一個/etc/passwd文件,複製當前家目錄下

後續一切vim命令都是基/root/passwd文件進行操作。

退出方式:輸入:q按下回車即可

三、命令模式

注意:該模式是打開文件的第一個看到的模式(打開文件即可進入)

1、光標移動

1.1光標移動到行首

按鍵:shift+6 或 ^(T字母上面的6,不要按小鍵盤的6)

1.2光標移動到行尾

按鍵:shift+4 或 $(R字母的左上角的4,不是小鍵盤的4)

正則表達式 *(通配符)^(開始)$(結尾)

1.3光標移動到首行

按鍵:gg

1.4光標移動到末行

按鍵:G

1.5翻屏

向上翻屏:按鍵ctrl+b(before)或PgUp

向下翻屏:按鍵ctrl+f(after)或PgDn

2、複製操作

2.1複製光標所在行

按鍵:yy

粘貼:在想要粘貼的地方按下p鍵

2.2以光標所在行爲準(包含當前行),向下複製指定的行數

按鍵:數字yy

2.3可視化複製

按鍵:ctrl+v,然後按下上下左右方向鍵來選中需要複製的區塊,按下yy鍵進行復制,最後按下p鍵粘貼

3、剪切/刪除

3.1剪切/刪除光標所在行

按鍵:dd(刪除之後下一行上移)注意:dd嚴格意義上說是剪切命令,但是如果剪切了不粘貼就是刪除的效果。

3.2剪切/刪除光標所在行爲準(包含當前行),向下刪除/剪切指定的行

按鍵:數字dd(刪除之後下一行上移)

3.3剪切/刪除光標所在的當前行,但是刪除之後下一行不上移

按鍵:D(刪除之後當前行會變成空白行)

4、撤銷/恢復

撤銷:輸入 :u或者u(undo)

恢復:ctrl+r 恢復(取消)之前的撤銷

5、擴展1:光標的快速移動

①快速將光標移動到指定的行按鍵:數字G

②以當前光標爲準向上/向下移動n行按鍵:數字↑,數字↓

③以當前光標爲準向左/向右移動n字符按鍵:數字←,數字→

④末行模式下的快速移動方式:移動到指定的行按鍵:輸入英文“:”,其後輸入行數數字,按下回車

四、模式間的相互切換(重點)

框圖

五. 末行模式

命令模式下按“:”或“/(表示查找)”進入末行模式;

退出末行模式:

  • 一下esc

  • 兩下esc(一下和兩下的區別是速度問題)

  • 刪除末行命令和冒號,即退出末行模式

  • 保存操作
    輸入:“:w”保存文件
    輸入:“:w 路徑”另存爲

  • 退出(quit)
    輸入:“:q”退出文件

  • 保存並退出
    輸入:“:wq”保存並且退出

  • 強制(!)

    輸入:“:q!”表示強制退出,剛纔做的修改操作不做保存

  • 調用外部命令(瞭解)

    輸入:“:!外部命令”

    當外部命令執行結束之後按下任意鍵回到vim編輯器打開的內容

  • 搜索/查找
    輸入:“/關鍵詞”

    在搜索結果中切換上/下一個結果:N/n

    如果需要取消高亮,則需要輸入:“:nohl”【no highlight】

  • 替換

    :s/搜索的關鍵詞/新的內容      替換光標所在行的第一處符合條件的內容
    :s/搜索的關鍵詞/新的內容/g    替換光標所在行的全部符合條件的內容
    :%s/搜索的關鍵詞/新的內容     替換整個文檔中每行第一個符合條件的內容
    :%s/搜索的關鍵詞/新的內容/g   替換整個文檔的符合條件的內容
    
    • %表示整個文件
    • g表示全局(global)
  • 顯示行號
    輸入:“:set nu”[number]
    如果想取消顯示,則輸入:“:set nonu”

  • 擴展2:使用vim同時打開多個文件,在末行模式下進行切換文件查看當前已經打開的文件名稱:“:files”

    在%a的位置有2種顯示可能
    %a:a=active,表示當前正在打開的文件;
    #:表示上一個打開的文件
    
    • 切換文件的方式:
      a.如果需要指定切換文件的名稱,則可以輸入:“:open 已經打開的文件名”

      b.可以通過其他命令來切換上一個文件/下一個文件

      輸入:“:bn”切換到下一個文件(back next)
      輸入:“:be”切換到上一個文件(back prev)
      

六. 編輯模式

編輯模式

重點看前2個進入方式:i(insert)、a(after)。
退出方式:按下esc鍵

七、實用功能

1、代碼着色

如何控制着色顯示與否?
顯示:“:syntax on” syntax:語法
關閉顯示:“:syntax off”

2、vim中計算器的使用
當在編輯文件的時候突然需要使用計算器去計算一些公式,則此時需要用計算器,但是需要退出,vim自身集成了一個簡易的計算器。
a.進入編輯模式

b.按下按鍵“ctrl+R”,然後輸入“=”,此時光標會變到最後一行

c.輸入需要計算的內容,按下回車

八. 擴展

1、vim的配置(重點)

  • Vim是一款編輯器,編輯器也是有配置文件的。

  • Vim配置有三種情況:

    • a.在文件打開的時候在末行模式下輸入的配置(臨時的)
    • b.個人配置文件(~/.vimrc,如果沒有可以自行新建一個)
    • c.全局配置文件(vim自帶,/etc/vimrc)
  • 新建好個人配置文件之後進入編輯

  • 在配置文件中進行配置

    • 比如顯示行號:set nu
    • 配置好之後vim打開文件就會永遠顯示行號
  • 問題:如果某個配置項,在個人配置文件與全局配置文件產生衝突的時候應該以誰爲準?

    • 測試步驟:在兩個配置文件中針對同一個配置項設置不同的值
    • 先在全局的配置中設置不顯示行號,在個人的配置文件中設置顯示行號,觀察結果最後顯示行號:說明以個人爲準
    • 先在全局中配置顯示行號,在個人中設置不顯示行號,觀察結果最後的顯示是不顯示行號,說明以個人爲準
    • 結論:如果針對同一個配置項,個人配置文件中存在,則以個人配置文件爲準,如果個人配置文件中不存在這一項,則以全局配置文件爲準。

2、異常退出

什麼是異常退出:在編輯文件之後並沒有正常的去wq(保存退出),而是遇到突然關閉終端或者斷電的情況,則會顯示下面的效果,這個情況稱之爲異常退出;

yichang

解決辦法:將交換文件(在編程過程中產生的臨時文件)刪除掉即可

delete

3、別名機制

作用:相當於創建一些屬於自己的自定義命令
例如:在windows下有cls命令,在Linux下可能因爲沒有這個命令而不習慣清屏。現在可以通過別名機制來解決這個問題,可以自己創造出cls命令別名機制依靠一個別名映射文件:~/.bashrc
#vim ~/.bashrc

bashrc

注意:如果想新創造的命令生效,必須要重新登錄當前用戶。

4、退出方式

回顧:之前vim中退出編輯的文件可以使用“:q”或者“:wa”。

除了上面的這個語法之外,vim還支持另外一個保存退出方法“:x”。

說明:

  • “:x”在文件沒有修改的情況下,表示直接退出,在文件修改的情況下表示保存並退出;

  • 如果文件沒有被修改,但是使用wa進行退出的話,則文件的修改時間會被更新;但是果文件沒有被修改,使用x進行退出的話,則文件修改時間不會被更新的;主要是會混淆用戶對文件的修改時間的認定。

  • 因此建議以後使用“:x”來進行對文件的保存退出。
    但是:==不要使用X,不要使用X,不要使用X。==X表示對文件進行加密操作.


先寫到這裏,其他筆記請查看後續博文~
學習筆記一:基本命令
學習筆記二:基本命令
學習筆記三:Vim
學習筆記四:自有服務
學習筆記五:自有服務
學習筆記六:權限管理
學習筆記七:網絡基礎
學習筆記八:Shell基礎
學習筆記九:Mysql基礎
知識來源:
Linux學習網站
CentOS6.5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章