vim/vi是unix/linux下極爲廣泛的一種文本編輯器, 大部分機器上都有 vi , 在不一樣的機器上經常使用不一樣的變種軟件 其中 vim 比較好用也用得比較普遍 vim 是 Vi IMproved 的縮寫, 表示更好的 vi 本文就說些其中比較有用, 比較經常使用的命令, 若能熟練運用這些命令, 那麼會發現編輯文件很大幫助,尤爲是作開發的人員,能快速的提升開發效率。linux
全屏文本編輯器:shell
vi:Visual Interfacevim
vim:VI iMproved編輯器
它是一種模式化編輯器:有不少工做模式,主要用到其三:ide
1.編輯模式(命令模式)--> 默認的工做模式學習
2.末行模式spa
3.插入模式(輸入模式)unix
(另外還有替換模式、可視化模式)blog
下面介紹一下vim的基本操做:開發
1、打開(文件)方式:
1.vi/vim:直接打開界面,如圖
2.vim FILE: FILE存在時,打開並將光標默認放置在第一行第一個字符;FLIE不存在,則以新 文件的方式打開,若保存,文件被建立,不保存文件消失;
3.vim +# FILE 打開文件的時候光標在第#行;
4.vim + FILE :光標定位在最後一行;
5.vim +/PATTERN/:打開文件,將光標定位在首次被PATTERN匹配的行的行首位置;即只完成首 次匹配。
2、關閉方式:
末行模式的關閉:
:q 直接關閉不保存改變的內容;
:wq 保存並退出;
:w 保存修改的內容
:q! 強制退出
:wq! 對於root來講,一些只讀文件的修改能夠強制保存退出;
編輯模式的關閉;
ZZ:保存並退出;
ZQ:不保存退出;
3、在vim編輯模式中,移動光標;
1.逐字符移動:
1).ARROW
2).hjkl:左下上右
2.逐字移動:
w:移動到下一個字的字首;
e:移動到字尾
b:移動到上一個字的字首;
3.行內跳轉;
0:絕對行首;
^:相對行首;
$:絕對行尾;
4.行間跳轉:
#G:直接移動至第#行;
G:直接移動至文檔的最後一行;
gg:第一行第一個字符;
末行模式光標的移動
:#直接移動至第#行
:$最後一行
4、翻頁/翻屏:
Ctrl+f:向下翻一屏
Ctrl+b:上翻一屏
Ctrl+d:下半屏
Ctrl+u:上半屏
5、逐字符刪除:
x:刪除光標所在位置的字符;
X:刪除光標所在位置左側的單個字符;
6、編輯模式中的萬能刪除命令;
d:刪除光標通過的全部內容;例如dG:刪除了所在行到最後一行的全部內容;
dd:刪除光標所在行,前能夠加#,表示刪除共#行;
末行模式下:
:d
:#d
:m,nd(從第m到第n行刪除)
:.,$(當前行.到末尾行$刪除)
:m,+nd(從m開始再刪除n行)
7、編輯模式中的粘貼命令;
p:向右向下進行粘貼;
P:向左向上進行粘貼;
8、編輯模式中的複製命令:
y:相似d;複製光標所通過的全部內容;
9、模式的切換;
1.編輯模式到末行模式:
:輸入命令
/和 ?:進行查找,n和N,順序和逆序查找;
/:自上而下
?:自下而上
2.末行模式到編輯模式:
ESC鍵
Enter鍵
Backspace鍵
3.編輯模式到輸入模式:
I:Insert 至行首並進入輸入模式;
i:insert 光標所在位置前面插入信息;
A:apend;光標移動至行尾並進入輸入模式;
a:在光標所在位置的後面插入字符;
O:Otherline光標所在行的上面插入新行
o: 下面插入新行;
cc:刪除整行內容以後進入輸入模式;
C: 從光標所在位置刪除至行尾進入輸入模式;
s:刪除光標後的一個字符,進入輸入模式;
S:刪除整行進入輸入模式;
4.輸入模式到編輯模式:
ESC鍵
5.編輯模式到替換模式:
R:進入
6.替換模式到編輯模式:
ESC鍵
7.編輯模式到可視化模式;
v:按照字符爲單位進行矩形選取;
V:按照行爲單位進行矩形選取;
選取後可執行復制刪除操做;
完成操做後返回到編輯模式;
注意:全部模式切換必須經由編輯模式,兩種非編輯模式之間沒法直接切換;
10、替換命令;
r:替換光標所在位置的一個字符;
11、 撤銷編輯操做
u:撤銷一次此前的編輯操做
Ctrl+r:撤銷最近的一次撤銷操做
12、重複以前的一次編輯操做;
.
十3、特殊的末行命令:
1.顯示和取消行編號:
:set number-->set nu
:set nonumber-->set nonu
2.開啓或者關閉字符大小寫的區分;
:set ignorecase-->set ic
:set noignorecase-->set noic
3.開啓或關閉自動縮進功能:
:set autoindent--set ai
:set noautoindent--set noai
4.開啓或關閉查找高亮顯示:
:set hlsearch 無簡寫
:set nohlsearch--nohl
5.開啓和關閉語法着色:
:syntax off
:syntax on
十4、內容替換
查找替換
/pattern 向後搜索字符串pattern
?pattern 向前搜索字符串pattern
n 下一個匹配(若是是/搜索,則是向下的下一個,?搜索則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜索整個文件,將全部的old替換爲new
:%s/old/new/gc 搜索整個文件,將全部的old替換爲new,每次都要你確認是否替換
十六:使用vim編輯多個文件:
1.直接打開:vim FILE1 FILE2 FILE3 ...
:next 查看編輯後一個文檔的內容
:prev 查看編輯前一個文檔
:first 查看編輯第一個文檔
:last 查看編輯最後一個文檔
2.vim -o|-O FILE1 FILE2 ...
選項:
-o:水平
-O:垂直
光標在窗口間的切換: Ctrl+w,ARROW;#Ctrl+w,Arrow
Ctrl+w,s:水平分屏顯示;
Ctrl+w,v:垂直分屏顯示;
:wa 保存all
:qa 退出all
十七:將其餘文件的內容填充至當前文件中
末行模式下 :r /PATH/TO/SOMEFILE
十八:與shell交互
:! COMMAND
十九:部分另存爲
:w /PATH/TO/SOMEFILE 所有另存爲;
:m,nw /PATH/TO/SOMEFILE 從m到n行另存爲;
:.,$w /PATH/TO/SOMEFILE 光標所在行到末尾另存爲;
vim還有不少命令,這些命令均可以經過「vimtutor」這一命令得到幫助文檔,來幫助學習;