vim是一個相似vi的文本編輯器,不過在vi的基礎上增長了不少新特性,vim被公認爲類vi編輯器中最好用的一個。java
vim是vi發展出來的一個文本編輯器。編譯及錯誤跳轉等方便編程的功能豐富,在實際工做中被普遍使用。編程
和Emacs並列稱爲類Unix系統用戶最喜好的編輯器。vim
爲何須要學習vim?windows
全部的Linux系統都會內建vi文本編輯器,其餘的文本編輯器則不必定存在。編輯器
不少軟件的編輯接口都會主動調用vi,例如visudo、crontab等學習
vim可視爲vi的高級版本。字體
vim具備程序編輯的能力,能夠主動的以字體顏色辨別語法的正確性,方便程序開發。spa
Vim有三種模式,分別是通常模式、編輯模式、命令模式。.net
進入通常模式:命令行
[root@localhost ~]#vim test
進入編輯模式:
按下鍵盤上i鍵,進入編輯模式,編輯模式下除了「Esc鍵」都做爲輸入鍵。輸入hello vim,按Esc回到通常模式。
進入命令模式:
在通常模式下,輸入「:」,進入命令模式,「:wq」保存並退出。
以vim打開一個文件就直接進入通常模式(默認模式)
可使用上下左右移動光標來移動,也可使用刪除字符或刪除整行來處理文件內容,也可使用複製、粘貼來處理文件數據。但沒法任意編輯文件內容。好比說:我想寫一個123。
移動
h或←光標左移一個字符。若是是20h,表示左移20個字符。
j或↓光標下移一個字符 同上
k或↑光標上移一個字符 同上
l或→光標右移一個字符 同上
[Ctrl]+[f]屏幕向下移動一頁 Page Down!!
[Ctrl]+[b]屏幕向上移動一頁 Page Up !!
0或[Home]移動到此行最前面字符處!!
$或[End]移到光標所在行的行尾!!
H:光標移到當前屏幕最上方行的第一個字符!!
M:光標移到當前屏幕中間行的第一個字符!!
L:光標移動到當前屏幕最下方行第一個字符!!
G:移到此文件最後一行!!!
nG:移到第n行
gg:至關於1G,即移到第一行!!!
n[Enter]:光標下移n行
刪除
x:向後刪除一個字符
nx:向後刪除n個字符(n爲數字)
X:向前刪除一個字符
dd:刪除光標所在行的正行(!!!)
ndd:刪除光標所在行如下n行(n爲數字,包含當前行在內)
d1G/dgg:刪除光標所在行到第一行全部數據(包括所在的行)
dG:刪除光標所在行到最後一行(!!)
d$或d end:刪除光標所在處到同行最後一個字符(!!)
d0或d home:刪除光標所在處到同行第一個字符。(!!)
複製
yy:複製光標所在行(!!)
nyy:複製光標所在向下n行(n爲數字)
y1G:複製光標所在行到第一行全部數據
yG:複製光標所在行到最後一行全部數據
y$:複製光標所在處到同行最後一個字符
y0:複製光標所在處到同行第一個字符
p:將已複製的數據粘貼到光標所在下一行
P:將已複製的數據粘貼到光標所在上一行
u:復原前一個操做(相似於windows中的ctrl+z)!!!
替換
r:替換光標所在處字符一次。
R:一直替換光標所在處文字直到按下Esc(!!!)。
i:從光標所在處插入(!!!)
I:從所在行第一個非空白字符處插入(!!)
a:從光標所在下一個字符處插入
A:從光標所在行最後一個字符處插入(!!)
o:在光標所在處下一行插入新的一行(!!)
O:在光標所在處上一行插入新的一行(!!)
在通常模式中能夠刪除、複製、粘貼等,按下i、I、o、O、a、A、r(快速替換)、R等任何一個字母后進入編輯模式。並在左下方出現INSERT或REPLACE。
該模式下能夠輸入文件內容。按下<Esc>返回通常模式。
在通常模式當中,輸入:/?三個字符中的任何一個按鈕,就能夠將光標移動到最下面那一行。
在這個模式當中,能夠提供查詢、替換等功能。同時存盤(保存)、離開vi、顯示行號等等命令都是在此模式進行。
/word:向下查找單詞「word」(!!!)
?word:向上查找單詞「word」(!!!)
n:表示重複前一個查找操做。
N:與n相反(反向查找)。
:set nu 顯示行號
:set nonu 取消顯示行號
:s/word1/word2/g:在當前行將word1替換成word2(!!)
:%s/word1/word2/g:在當前文件將word1替換成word2(!!)
:n1,n2s/word1/word2/g:在n1到n2行查找word1替換成word2 (n一、n2爲數字)
:1,$ s/word1/word2/g:從第一行到最後一行查找word1替換成word2
:%s/word1/word2/gc:同上,在替換前確認是否替換。(!!!)只能單行確認,須要逐步確認。在該模式中,「y」確認更換,「n」否認更換,「a」所有替換,「q」退出,「l」表示單行替
換,並退出更換狀態。Ctrl+e向下換行,Ctrl+y向上換行。
:w [filename]:另存爲filename。
:r [filename]:讀取filename指定文件中的內容到光標所在的行。
:n1,n2 w [filename]:將n1到n2行另存爲filename。
:! command:臨時切換到命令行模式下執行command命令。
例如「:!find / -name Helllo.java」便可在vim當中查看/home下面以ls輸出的文件信息。
:wq:保存後退出。
:q:不保存退出(未改能夠離開,若是修改了須要q!強制離開)
:q!:強制退出,不保存修改。
:wq!:強制保存退出。
下一篇:Linux基礎之軟件包管理