Linux系統 vi/vim編輯器常用命令與用法總結
(一)vi/vim是什麼? Linux世界幾乎所有的配置檔案都是以純文字形式存在的,而在所有的Linux發行版系統上都有vi編輯器,因此利用簡單的文字編輯軟體就能夠輕鬆地修改系統的各種配置了,非常方便。vi就是一種功能強大的文字編輯器,而vim則是高階版的vi,不但可以用不同顏色顯示文字內容,還能進行諸如shell指令碼、C語言程式編輯等功能,可以作為程式編輯器。
(二)為什麼要學習vi/vim? 首先所有的Linux發行版系統上都會預設內建vi編輯器,而不一定帶有其他文字編輯器,非常通用;其次,很多軟體的編輯介面都會預設呼叫vi;第三,vi具有程式編輯的能力;最後,vi程式簡單,編輯速度相當快速。
(三)vi的三種模式及各個模式之間的轉換關係
(四)一般模式常用操作 【h(或向左方向鍵)】 游標左移一個字元 【j(或向下方向鍵)】 游標下移一個字元 【k(或向上方向鍵)】 游標上移一個字元 【l(或向右方向鍵)】 游標右移一個字元
【[Ctrl] + f】 螢幕向下移動一頁(相當於Page Down鍵) 【[Ctrl] + b】 螢幕向上移動一頁(相當於Page Up鍵)
【[0]或[Home]】 游標移動到當前行的最前面 【[$]或[End]】 游標移動到當前行的末尾
【G】 游標移動到檔案的最後一行(第一個字元處) 【nG】 n為數字(下同),移動到當前檔案中第n行 【gg】 移動到檔案的第一行,相當於"1G" 【n[Enter]】 游標向下移動n行
【/word】 在檔案中查詢內容為word的字串(向下查詢) 【?word】 在檔案中查詢內容為word的字串(向上查詢) 【[n]】 表示重複查詢動作,即查詢下一個 【[N]】 反向查詢下一個 【:n1,n2s/word1/word2/g】 n1、n2為數字,在第n1行到第n2行之間查詢word1字串,並將其替換成word2 【:1,s/word1/word2/g】從第一行(第n行同理)到最後一行查詢word1註冊,並將其替換成word2【:1,s/word1/word2/g】從第一行(第n行同理)到最後一行查詢word1註冊,並將其替換成word2【:1,s/word1/word2/gc】 功能同上,只不過每次替換時都會讓使用者確認
【x,X】 x為向後刪除一個字元,相當於[Delete],X為向前刪除一個字元,相當於[Backspace] 【dd】 刪除游標所在的一整行 【ndd】 刪除游標所在的向下n行
【yy】 複製游標所在的那一行 【nyy】 複製游標所在的向下n行 【p,P】 p為將已經複製的資料在游標下一行貼上;P為將已經複製的資料在游標上一行貼上
【u】 撤消上一個操作 【[Ctrl] + r】 多次撤消 【.】 這是小數點鍵,重複上一個操作
五)一般模式切換到編輯模式的操作1、進入插入模式(6個命令) 【i】 從目前游標所在處插入 【I】 從目前游標 【a】 從當前游標所在的下一個字元處開始插入 【A】 從游標所在行的最後一個字元處開始插入 【o】 英文小寫字母o,在目前游標所在行的下一行處插入新的一行並開始插入 【O】 英文大寫字母O,在目前游標所在行的上一行處插入新的一行並開始插入
2、進入替換模式(2個命令) 【r】 只會替換游標所在的那一個字元一次 【R】 會一直替換游標所在字元,直到按下[ESC]鍵為止 【[ESC]】 退出編輯模式回到一般模式
(六)一般模式切換到命令列模式 【:w】 儲存檔案 【:w!】 若檔案為只讀,強制儲存檔案 【:q】 離開vi 【:q!】 不儲存強制離開vi 【:wq】 儲存後離開 【:wq!】 強制儲存後離開 【:! command】 暫時離開vi到命令列下執行一個命令後的顯示結果 【:set nu】 顯示行號 【:set nonu】 取消顯示行號 【:w newfile】 另存為 【:set fileencoding】 檢視當前檔案編碼格式 【:set fileencoding=utf-8】 設定當前檔案編碼格式為utf-8,也可以設定成其他編碼格式 【:set fileformat】 檢視當前檔案的斷行格式(dos\windows,unix或macintosh) 【:set fileformat=unix】 將當前檔案的斷行格式設定為unix格式
(七)檔案恢復模式 【[O]pen Read-Only】 以只讀方式開啟檔案 【[E]dit anyway】 用正常方式開啟檔案,不會載入暫存檔案內容 【[R]ecover】 載入暫存檔案內容 【[D]elete it】 用正常方式開啟檔案並刪除暫存檔案 【[Q]uit】 按下q就離開vi,不進行其他操作 【[A]bort】 與quit功能類似
(八)塊選擇(一般模式下用) 【v,V】 v:將游標經過的地方反白選擇;V:將游標經過的行反白選擇 【[Ctrl] + v】 塊選擇,可用長方形的方式選擇文字 【y】 將反白的地方複製到剪貼簿 【d】 將反白的內容刪除
(九)多檔案編輯 【vim file1 file2】 同時開啟兩個檔案 【:n】 編輯下一個檔案 【:N】 編輯上一個檔案 【:files】 列出當前用vim開啟的所有檔案
(十)多視窗功能 【:sp [filename]】 開啟一個新視窗,顯示新檔案,若只輸入:sp,則兩視窗顯示同一個檔案 【[Ctrl] + w + j】 游標移動到下方視窗 【[Ctrl] + w + k】 游標移動到上方視窗 【[Ctrl] + w + q】 離開當前視窗
(十一)vim配置檔案 vim的配置檔案為/etc/vimrc,但一般不建議直接修改這個檔案,而是在使用者根目錄下建立一個新的隱藏檔案: vim ~/.vimrc 然後編輯這個檔案,常用的配置如下: bash "雙引號後面的內容為註釋 set nu "顯示行號 set hlsearch "查詢的字串反白顯示 set backspace=2 "可隨時用退格鍵進行刪除 set autoindent "自動縮排 set ruler "在最下方一行顯示狀態 set showmode "在左下角顯示模式 set bg=dark "顯示不同的底色,還可以為light syntax on "語法檢驗,顏色顯示
(十二)Dos與Linux的斷行字元(檔案轉化) dos2unix [-kn] file [newfile] unix2dos [-kn] file [newfile] -k:保留該檔案原本的mtime時間格式 -n:保留原本舊檔案,將轉換後的內容輸出到新檔案
(十三)語系編碼轉化 iconv --list 列出iconv支援的語系編碼 iconv -f 原本編碼 -t 新編碼 filename [-o new file] -f:from,後接原本的編碼格式 -t:to,後接新編碼格式 -o file:可選引數,建立新檔案
例:將/tmp/a.txt從big5編碼格式轉換成utf8編碼格式: iconv -f big5 -t utf8 /tmp/a.txt -o new.txt