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/gc】 功能同上,只不過每次替換時都會讓用戶確認

【x,X】 x為向后刪除一個字符,相當于[Delete],X為向前刪除一個字符,相當于[Backspace]
【dd】 刪除光標所在的一整行
【ndd】 刪除光標所在的向下n行

【yy】 復制光標所在的那一行
【nyy】 復制光標所在的向下n行
【p,P】 p為將已經復制的數據在光標下一行粘貼;P為將已經復制的數據在光標上一行粘貼

【u】 撤消上一個操作
【[Ctrl] + r】 多次撤消
【.】 這是小數點鍵,重復上一個操作

一般模式切換到編輯模式的操作

進入插入模式(6個命令)

【i】 從目前光標所在處插入
【I】 從目前光標
【a】 從當前光標所在的下一個字符處開始插入
【A】 從光標所在行的最后一個字符處開始插入
【o】 英文小寫字母o,在目前光標所在行的下一行處插入新的一行并開始插入
【O】 英文大寫字母O,在目前光標所在行的上一行處插入新的一行并開始插入

進入替換模式(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
然后編輯這個文件,常用的配置如下:

"雙引號后面的內容為注釋
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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容