1. 程式人生 > >week2(4)vi與vim編輯器

week2(4)vi與vim編輯器

一、vi 與vim 1.所有的 Unix Like 系統都會內建 vi 文字編輯器,其他的文字編輯器則不一定會存在;很多個別軟體的編輯介面都會主動呼叫 vi (例如未來會談到的crontab, visudo, edquota 等指令);vim 具有程式編輯的能力,可以主動的以字型顏色辨別語法癿正確性,方便程式設計;因為程式簡單,編輯速度相當快速。 vi基本分為三個模式: 一般模式:以vi開啟一個檔案直接進入一般模式,可進行刪除、複製、貼上等操作,無法編輯檔案內容 編輯模式:按下“a,A,i,I,r,R”任意一個字母進入編輯模式,在介面左下方出現“insert”或“replace”要回到一般模式,按下“esc”即可。 命令列模式:輸入“、/ ?”將游標移到最下面一行,提供查詢資料的操作,讀取、儲存、大量替換字元、離開vi、顯示行號等。 例:編輯f2,按i可以插入,編輯完內容按“esc”在地下一行輸入“:wq” 在這裡插入圖片描述

2.快捷鍵操作 1)h或“home”游標向左移一個字元 l或“end”游標向右移一個字元 j或“pgdn”游標向左移一個字元 k或“pgup”游標向左移一個字元 2)Ctrl+f 向下翻動一頁 Ctrl+d向下翻動半頁 Ctrl+b向上翻動一頁 Ctrl+u向上翻動半頁 3) 0或者“home”移動到行首,“^”移動到行首第一個非空白字元,'end,1GggG4/word"word"nwordwordwordNword5dd
dwdedbnddnyyxXpPd1Gy1GdGyGd0yd'或者“end”,移動到行尾 1G或gg跳到檔案的行首,G跳到檔案的行尾 4)/word向下查詢"word"字串 n向下查詢word 字串 ?word向上查詢“word”字串 N向上查詢word 字串 5)dd刪除一整行,dw刪除當前單詞,de從一個單詞當前位置往後刪除這個單詞,db從一個單詞當前位置往前刪除這個單詞,ndd刪除游標所在的向下幾行,nyy複製游標所在的向下幾行 x在一行字向後刪除一個字元,X向前刪除一個字元 p將以複製的資料在游標下一行貼上,P將以複製的資料在游標上一行貼上 d1G 刪除游標所在到第一行的所有資料,y1G 複製游標所在到第一行的所有資料 dG 刪除游標所在到最後一行的所有資料, yG 複製游標所在到最後一行的所有資料 d0刪除游標所在處到該行的最前面一個字元,y複製游標所在處到該行行首的所有資料 d
刪除游標所在處到該行的最後一個字元 , y$ 複製游標所在處到該行行尾的所有資料 6) i從游標所在處插入,I當前所在行的第一個非空格符開始插入 a當前游標所在的下一個字元處開始插入,A當前游標所在的最後一個字元處開始插入 o當前游標所在行的下一行處開始插入O當前游標所在行的上一行處開始插入 r替換游標所在的那一個字元一次,R一直替換游標所在的文字 7) :w —編輯的資料寫入硬碟檔案 :w!—檔案為只讀時,強制寫入檔案 :wq—儲存後離開 :q!—強制離開不儲存檔案 :q—離開vi ZZ—檔案沒有改動不儲存離開,檔案改動儲存離開 :w filename —編輯的資料儲存為另一個檔案 :r filename—在編輯的資料中,讀入另一個檔案資料 :e filename 在當前檔案直接開啟一個新的檔案 進行編輯 :n1,n2 w filename 將n1到n2的內容儲存成filename檔案 :! command 暫時離開vi到命令列模式執行command的顯示結果 : set nu 顯示行號;:set nonu 取消行號 8) 在這裡插入圖片描述

例:vi /etc/passwd
s /old /new 當前行中查詢到的第一個字元“old”替換為“new” 1)將第一行的root替換為tom : s /root/tom 在這裡插入圖片描述 2) : s /old/new/g 當前行查詢到的所有字串“old”替換為“new” 將第六行的sync全部替換為root 6G跳到第六行 : s /sync/root/g 在這裡插入圖片描述
   3)    :# ,# s.old/new/g在行號“#,#”範圍內替換所有的“old”為“new”
      第一到六行nologin替換為login
      :1,6 s /nologin/login/g
       ![在這裡插入圖片描述](https://img-blog.csdn.net/20181011152055901?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmd4aWFveWFuMTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
   4)      :% s/old/new/g在這整個檔案範圍內 替換所有的“old”為“new”
         :% s/nologin/login/g
       ![在這裡插入圖片描述](https://img-blog.csdn.net/2018101115261626?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmd4aWFveWFuMTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
  5)     :  s /old/new/c 對每個替換動作提示使用者進行確認
     :   s /root/tom/c
       ![在這裡插入圖片描述](https://img-blog.csdn.net/20181011153209203?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmd4aWFveWFuMTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

9)以單詞為單位移動 w: 移至下一個單詞的詞首 e: 跳至當前或下一個單詞的詞尾 b: 跳至當前或前一個單詞的詞首 10)顯示忽略或區分字元大小寫 :set ignorecase :set ic :set noic 11)設定自動縮排 :set autoindent :set ai :set noai 12)查詢到的文字高亮顯示或取消 :set hlsearch :set nohlsearch 13)語法高亮 :syntax on :syntax off