Vi 最初是由 Bill Joy 在 1976 年編碼實現的。而 Vim (Vi IMproved) 則是改進的 Vi,由 Bram Moolenaar 在 1991 年開發併發布。Vi/Vim 是全部 Unix/Linux 操做系統默認配備的編輯器。因其強大的功能和高效的操做,Vi/Vim 也成爲衆多 Unix/Linux 用戶、管理員必須掌握並熟練使用的編輯工具之一。尤爲是在沒有圖形界面的狀況下,更是離不開 Vi/Vim。Vi/Vim 命令很是多、用法極爲靈活,掌握起來有必定的難度。詳細介紹 Vi/Vim 使用方法的文章有不少,於是本文就不一一述及 Vi/Vim 的諸多功能及命令。本文做者將結合本身的使用經驗,分七個方面着重介紹哪些原則、途徑或命令能快速提升 Vi/Vim 文件編輯效率,從而達到事半功倍的效果。本文述及的途徑或命令均只針對系統默認配置的 Vi/Vim。關於 Vi/Vim 各類定製後的功能不在本文討論範圍之列。vim
2.文本編輯器的做用bash
Linux系統中的配置文件以文本文件的形式保存
Linux管理員須要經過編輯配置文件進行系統管理併發
行編輯器與全屏幕編輯器
編輯器
字符界面編輯器與圖形界面編輯器ide
---------------------------------------------------------
文本編輯器經常使用分類:
工具
vim:Linux學習者須要掌握的第一個文本編輯器,大多數Linux系統中缺省使用的文本編輯器 學習
gedit:GNOME圖形環境中的文本編輯器編碼
1.複製:
spa
yy (複製光標所在的一行) nyy (複製多行,包括光標所在行) yw (複製一個單詞) y$ (將光標所在位置到行尾複製) y^ (將光標所在位置到行首複製)
2.剪切-刪除:操作系統
dd (剪切光標或刪除當前所在行) ndd (剪切/刪除多行,包括光標所在行) dw (刪除/刪除當前單詞從光標開始的部分但不進入插入模式) :1,10d 刪除1-10行 :11,$d 刪除11行及之後全部的行 :1,$d 刪除全部行 dl 刪除當前字符, dl=x dh 刪除前一個字符 dj 刪除上一行 dk 刪除下一行 10d 刪除當前行開始的10行。 D 刪除當前字符至行尾。D=d$ d$ 刪除當前字符以後的全部字符(本行)
注:剪切不粘貼就是刪除,因此dd也是刪除的意思
3.粘貼
p (小寫)將最後一個刪除或複製文本放在當前字符 P (大寫)將最後一個刪除或複製文本放在當前字符以前
4.文本搜索
/ 正向查找(從上往下找,起始位置:光標所在行) ? 反向查找(從下往上找,起始位置:光標所在行) n 查找下一個 N 查找上一個
5.光標移動
h 左 j 下 k 上 l 右 0 快速將光標移動到行首(Home 代替) $ 快速將光標移動到行尾(End 代替) G 將光標移動到尾行 gg 將光標移動到首行(1G 代替) nG 將光標移動到n行 w 將光標向後移動一個單詞
6.撤消與重作
r 替換一個字符 u 撤銷 ctrl r 反撤銷
7.輸入模式
i 在光標所在位置原地進入 a 在光標所在位置向後退一個字符進入 A 退到行尾進入 o 在光標所在行下面插一個新行進入 O 在光標所在行上面插一個新行進入 x 刪除光標位置的字符 c 更改當前字符並進入插入模式 s 替換光標位置的字符並進入插入 ^p 惟一性不齊(vi不支持,vim支持(vi的升級版))
8.末行模式
:w 保存 :w! 強行保存 :w filename 另存爲 :q 退出 :q! 不保存退出 :wq! 強行保存退出 :ZQ 無條件退出 :ZZ 存盤並退出 :wq 存盤並退出
9.查找-替換
:s/old/new/ 將光標所在行第一個找到的old換成new :s/number/CHINA/g 將光標所在行全部找到的old換成new :2,5s/number/CHINA/g 將光標全部找到的old換成new :1,$s/number/CHINA/g 全文裏的number換成CHINA :%s/number/CHINA/g 全文裏的number換成CHINA :% s/number/CHINA/gc 問答的方式問換不換
10.外部命令
:set ic 忽略大小寫 :set noic 大小寫敏感 :set nu 顯示行號 :set nonu 取消行號 :set ai 設置自動縮進 :set no ai 取消自動縮進設置 :set sw=4 設置縮進寬度爲 4
11.快捷鍵
跳到指定行,冒號+行號,回車,好比跳到240行就是 :240回車。另外一個方法是行號+G,好比230G跳到230行。 Ctrl + e 向下滾動一行 Ctrl + y 向上滾動一行 Ctrl + d 向下滾動半屏 Ctrl + u 向上滾動半屏 Ctrl + f 向下滾動一屏 Ctrl + b 向上滾動一屏
12.註釋命令
#開始的行爲註釋,因此要註釋某些行,只需在行首加入#3,5 s/^/#/g 註釋第3-5行 3,5 s/^#//g 解除3-5行的註釋 1,$ s/^/#/g 註釋整個文檔。 :%s/^/#/g 註釋整個文檔,此法更快。
13.幫助命令
:help or F1 顯示整個幫助 :help xxx 顯示xxx的幫助,好比 :help i, :help CTRL-[(即Ctrl+[的幫助)。 :help 'number' Vim選項的幫助用單引號括起 :help <Esc> 特殊鍵的幫助用<>擴起 :help -t Vim啓動參數的幫助用- :help i_<Esc> 插入模式下Esc的幫助,某個模式下的幫助用模式_主題的模式 幫助文件中位於||之間的內容是超連接,能夠用Ctrl+]進入連接,Ctrl+o(Ctrl + t)返回
14.結束語:
上面是vim最經常使用的命令。 我建議初學者天天都學1到2個新的命令。 在兩到三週後,你會感到vim的強大的。 有時候,學習VIM就像是在死背一些東西。 幸運的是,vim有不少很不錯的工具和優秀的文檔。 運行vimtutor直到你熟悉了那些基本命令。 你會學習到諸如 !, 目錄,寄存器,插件等不少其它的功能。
學習vim就像學彈鋼琴同樣,一旦學會,受益無窮。