vi編輯器:全屏的文本編輯器
vi:visual interface,可視化界面;
S.U.N:Bill Joy,vi,sparc,sunos(solaris);
vim:vi iMproved
vim相對於vi來說有更多的新特性:
1.支持語法高亮/着色的顯示
2.支持更多的命令
3.歷史記錄
vi:模式化文本編譯器
模式:
編輯模式(命令模式),默認工作模式;
插入模式(輸入模式),文本信息的自由編輯;在左下角有“Insert”標記
ex模式(末行模式),對於編輯器本身某些屬性和功能的設定;也可以進行文本的編輯操作
其他輔助模式:
替換模式:輸入的信息直接替換光標所在位置的內容
可視化模式:
vi/vim的操作:
一.打開vi/vim的操作界面
1.vi/vim命令
2.vim file:
1)file存在,就直接使用vim編輯器打開此文件,默認是將光標放置於該文件的起始位置,即:第一行的第一個字符;
2)file不存在,就直接以新建文件的方式打開;若執行保存命令,則文件會被寫入磁盤;若不保存,則文件會消失
3.vim +# file:
在打開指定文件時,將光標直接定位在文件的第#行的行首;如果給定的數字比文件的行數要大,則光標直接停留在最後一行的行首
4.vim + file:
在打開指定文件時,直接將光標定位在文件的最後一行的行首
5.vim +/PATTERN/:
在打開指定文件時,將光標定位在首次被PATTERN匹配到行的行首
二.關閉vi/vim的操作界面:
ex模式中的操作:
:q 直接關閉vim編輯器,不保存修改內容
:q!直接關閉vim編輯器,強制退出但不保存修改的內容
:wq 保存已修改的內容,並關閉vim編輯器
:wq!對於無權更改的文件強制保存,並且在強制保存之後強制關閉vim編輯器
編輯模式中的操作:
ZZ:保存並關閉vim編輯器
ZQ:不保存已經修改的內容,直接關閉vim編輯器
三.在vim編輯模式中,光標的移動方式:
編輯模式中的光標移動操作
1.逐字符移動:
1)Left Arrow或者Right Arrow
2)h:光標向左移動 L:光標向右移動
2.逐字移動:
w:移動光標至下一個字的字首
e:移動光標至當前字或下一個字的字尾
b:移動光標至前一個字的字首
3.行內光標跳轉
0:絕對行首
^:相對行首
$:絕對行尾
4.行間跳轉:
1)Up Arrow或者Down Arrow
2)j:向下移動一行;k:向上移動一行
3)#G:直接將光標移動至第#行行首;
4)G:直接將光標移動到文檔的最後一行
5)gg:直接將光標移動至文檔的第一行
ex模式中的光標移動:
:#:直接將光標移動至指定行號“#”的行首
:1:直接將光標移動至文檔的第一行行首
:$:直接將光標移動至文檔的最後一行行首
四.翻頁:
PageDown 或 PageUp可以實現翻頁
^+f:向下翻一頁 向前翻一頁
^+b:向上翻一頁 向後翻一頁
^+d:向下翻半頁
^+u:向上翻半頁
五.刪除字符:
編輯模式中操作:
1.逐字符刪除:
x:刪除光標所在位置的字符
X:刪除光標所在位置的左側的一個字符
2.刪除光標移動過程中經過的所有內容
d:刪除光標移動過程中經過的內容
dd:刪除光標所在行
ex模式中的操作:
:d:刪除光標所在行;相當於:.d:其中“.”指的是當前行
:#d:刪除第#行
:m,nd:刪除從第m行開始,到第n行結束中間的所有行
:m,+nd:刪除從第m行開始,及其後面n行的內容
:.,+nd:刪除從當前光標所在行開始,及其後面n行的內容
:.,$d:刪除從當前光標所在行開始,到文檔末尾的所有內容;
注意:在vim的操作中,所有的刪除操作,同時意味着
六.複製命令
編輯模式中的操作:
y:刪除光標移動過程中經過的所有內容
yh,yl,yj,yk,yArrow,yw,ye,yb,yG,ygg,y0,y$,y^
yy:複製當前光標所在行
ex模式中的複製:
:y :複製光標所在行;相當於:.d ;其中"."指的是當前行;
:#y :複製第#行;
:m,ny :複製從第m行開始,到第n行結束中間的所有行;
:m,+ny :複製從第m行開始,及其後面n行的內容;
:.,+ny :複製從當前光標所在行開始,及其後面n行的內容;
:.,$y :複製從當前光標所在行開始,到文檔末尾的所有內容;
七.粘貼命令
編輯模式中的操作:
p(Lower):如果是行內的複製或剪切操作,在光標右側完成粘貼;如果是多行的複製或剪切操作,在光標的下方完成粘貼;
P(Upper):如果是行內的複製或剪切操作,在光標左側完成粘貼;如果是多行的複製或剪切操作,在光標的上方完成粘貼;
ex模式的操作: “:p”
八.模式切換:
編輯模式(命令模式)被稱爲vi編輯器的基礎工作模式;所有其他模式之間進行切換的中轉站
1.編輯模式-->ex模式:
“:”:表示進入ex模式並完成命令的執行
“/”或者“?”:開啓ex模式中的匹配查找功能
/默認是自上而下的查找順序
?默認是自下而上的查找順序
n和N命令在各個匹配的關鍵字之間跳轉:
n:順序查找
N:倒敘查找
2.ex模式-->編輯模式
雙擊ESC鍵
enter鍵
Backspace鍵
3.編輯模式-->輸入模式(插入模式)
i,I,a,A,o,O,s,S,C,cc
i:在光標所在位置的左側開始插入
I:在行首開始插入
a:在光標所在位置的右側開始插入
A:在行尾開始插入
o:在光標所在行的下方插入一個新行
O:在光標所在行的上方插入一個新行
s:刪除光標所在位置的字符,在光標左側插入
S:刪除光標所在行,在行首開始輸入
C:刪除光標所在位置直到行尾,並且在行位開始輸入
cc:相當於S命令
4.輸入模式-->編輯模式
ESC鍵
5.編輯模式-->替換模式
R:進入替換模式
6.替換模式-->編輯模式
ESC鍵
7.編輯模式-->可視化模式
v:按照字符爲單位進行矩形選取
V:按照行爲單位進行矩形選取
注意:
1)在選取完成之後,可以使用d命令進行刪除也可以使用y命令進行復制
2)只要選取完成,即立刻返回編輯模式
注意:所有的其他模式都只能和編輯模式相互切換:如果兩種非編輯模式之間試圖切換,則必須經過編輯模式
九.替換命令
r:不進入輸入模式而替換光標所在位置的字符
十.撤銷命令:
U:撤銷當前行內的操作
u:撤銷此前的一次編輯操作
^+r:撤銷最後一次被撤銷的操作
十一.重複之前的一次編輯操作
.
十二.多文檔編輯:
1.vim file1 file2 file3...
:next 查看或編輯後一個文檔
:prev 查看或編輯前一個文檔
:first 查看或編輯第一個文檔
:last 查看或編輯最後一個文檔
2.vim -o| -O file1 file2 file3...
-o:水平打開多個窗口
^+w,up arrow|down arrow:多個窗口間切換
-O:垂直打開多個窗口
^+w,left arrow|right arrow:多個窗口間切換:
十三.ex模式中的常用命令
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.開啓或關閉語法着色的功能
:syntax on
:syntax off
5.開啓或關閉查找高亮顯示
:set hlsearch
:set nohlsearch(簡稱爲:nohl)
6.另存爲
:w /path/to/somewhere
:m,nw /path/to/somewhere
7.從其他文件直接讀取內容並添加到當前文件中
:r /path/from/somefile
8.與shell交互,調用shell命令
:!COMMAND