VIM是什么?
Vim是從VI發展出來的一個文本編輯器,擁有許多豐富的功能,便于編程開發,在程序員中被廣泛使用,是類Unix系統用戶最喜歡的功能強大的跨平臺文本文件編輯工具。
為什么要用VIM?
vi編輯器是所有類UNIX系統下標準的編輯器,他是我們使用Linux系統不能缺少的工具。對于所有類UNIX系統的任何版本,vi編輯器是完全相同的。而vim是從VI發展出來的一個文本編輯器,擁有更強大的功能,比如:VIM可以用多種顏色的方式來顯示一些特殊的信息,會依據文件擴展名或者是文件內的開頭信息, 判斷該文件的內容而自動的執行該程序的語法判斷式,再以顏色來顯示程序代碼與一般信息,目前大部分的Linux發行版本都以vim取代了vi。vim還加入了很多額外的功能,例如支持正則表達式的搜索、多文件編輯、塊復制等等。這對于我們在Linux上進行一些配置文件的修改工作時是很棒的功能。
VIM的使用方法
[root@localhost]# vim [OPTION]… FILE…
例如:
vim +# file: 打開文件后,直接讓光標處于第# 行的行首
vim +/ PATTERN file:打開文件后,直接讓光標處于第一個被PATTERN 匹配到的行的行首
vim –b file 二進制方式打開文件
vim –d file1 file2… 比較多個文件
vim -m file 只讀打開文件
ex file 或 或 vim –e 直接進入ex 模式
vim打開文件分兩種情況:
如果該文件存在,文件被打開并顯示內容,如果該文件不存在,當編輯后第一次存盤時創建它(如果該文件不存在且父目錄也不存在則會報錯且無法創建,這時可以把文件另存為其他路徑下)
VIM的操作模式
Vim編輯程序有三種操作模式,分別稱為 一般模式、編輯模式和命令模式,當運行Vim時,默認會進入一般模式(每個發行版叫法可能會有不同)。
一般模式:
用vim打開文件,會默認使用一般模式。在一般模式中,可以使用移動光標,復制、粘貼、刪除字符等操作處理文件內容。
一般模式的操作說明:
移動光標
h|←:光標向右移動一個字符
k|↑:光標向上移動一個字符
j|↓:光標向下移動一個字符
l|→:光標向左移動一個字符
+:光標移動到非空格符的下一行
-:光標移動到非空格符的上一行
n+Space:光標向右移動n個字符(n表示數字)
n+Enter:光標向下移動n行
0|Home:移動到這一行的最前面字符處,數字小鍵盤上的數字0無效
$|End:移動到這一行的最后面字符處
w:光標跳到下個字的開頭
e:光標跳到下個字的字尾
b:光標跳到上個字的開頭
H:光標移動到這個屏幕的最上方那一行的第一個字符
M:光標移動到這個屏幕的中間那一行的第一個字符
L:光標移動到這個屏幕的最下方那一行的第一個字符
G:移動到這個文件的最后一行
nG:移動到這個文件的第n行(可使用:set nu配合顯示行號)
gg:移動到這個文件的第一行,相當于1G
查找與替換
/word 向光標向下尋找一個名稱為word的字符串
?word 向光標向上尋找一個名稱為word的字符串
n 代表重復前一個查找的動作
N 為反向進行前一個查找動作
刪除、復制與粘貼
x|del:為向后刪除一個字符
X|backspace:為向前刪除一個字符
nx:連續向后刪除n個字符
dd:刪除光標所在一整行
ndd:刪除光標所在的向下n行
yy:復制光標所在的那一行
nyy:復制光標所在的向下n列
Y:相當于yy復制光標所在的那一行
p:將已復制的數據粘貼在光標下一行
P:將已復制的數據粘貼在光標上一行
J:將光標所在行與下一行合成一行
c:重復刪除多個數據
刪除復制粘貼等操作可以配合移動光標操作使用。
常用組合操作:
10cj:向下刪除10行、10ck:向上刪除10行
10ch:向左刪除10行、10cl:向右刪除10行
d1G:刪除光標所在行到第一行的所有數據
dG:刪除光標所在到最后一行的所有數據
d$:刪除光標所在處,到該行的最后一個字符
d0:刪除光標所在處,到該行的最前一個字符
yy:復制光標所在的那一行
nyy:復制光標所在的向下n列
y1G:復制光標所在行到第一行的所有數據
yG:復制光標所在行到最后一行的所有數據
y0:復制光標所在的那個字符到該行行首的所有數據
y$:復制光標所在的那個字符到該行行尾的所有數據
其他
u:恢復前一個操作
nu:恢復前幾個操作(n是數字)
U:撤銷光標所在行的更改(光標不能換行)
Ctrl+r:重做上一個操作
ctrl+b|PageDown:屏幕往下移動一頁
ctrl+f|PageUp:屏幕往上移動一頁
ctrl+d:屏幕向下移動半頁
ctrl+u:屏幕向上移動半頁
.:是重復前一個操作
n.:重復前一個操作n次(n是數字)
ZZ:若文件沒有更動,則不保存離開,若文件已經被更改過,則保存后離開
編輯模式:
編輯模式指可以使用修改、刪除、添加文件內容。在一般模式中按下i, I, o, O, a, A, r, R等任何一個字母之后才會進入編輯模式。在編輯模式下按下Esc即可退出編輯模式,回到一般模式。
i:為從目前光標所在處插入
I:為在目前所在行的第一個非空格符處開始插入
a:為從目前光標所在的下一個字符處開始插入
A:為從光標所在行的最后一個字符處開始插入
o:為在目前光標所在的下一行處插入新的一行
O:為在目前光標所在處的上一行插入新的一行
r:只會取代光標所在的那一個字符一次
R:會一直取代光標所在的文字,直到按下 ESC 為止
命令行模式:
命令行模式可以使用查找、讀取、保存、替換字符、退出、顯示行號等操作。
輸入 : / ? 三個中的任何一個字符即可進入命令行模式。同樣在命令模式下按Esc也可退出當前模式,回到一般模式。
:w 保存編輯的內容
:w!強制寫入該文件,但跟你對該文件的權限有關
:q 離開vi
:q! 不想保存修改強制離開
:wq 保存后離開
:x 保存后離開
:w filename 將編輯的數據保存成另一個文件(類似另存)
:r filename2 在編輯的數據中,讀入另一個文件的數據,即將filename2 這個文件的內容追加到光標所在行后面。
:n1,n2 w filename 將n1到n2的內容保存成filename這個文件。
:! command(:暫時離開vi 到命令行模式下執行command的顯示結果)
:n1,n2s/word1/word2/g
n1與n2為數字,在第n1與n2行之間查找word1這個字符串,并將該字符串替換為word2
:1,$s/word1/word2/g
從第一行到最后一行查找word1字符串,并將該字符串替換為word2
:1,$s/word1/word2/gc
從第一行到最后一行查找word1字符串,并將該字符串替換為word2 ,且在替換前提示用戶確認是否進行替換
VIM編輯器的其他功能
塊選擇
v:字符選擇,會將光標經過的地方反白選擇
V:行選擇,會將光標經過的行反白選擇
ctrl+v:塊選擇,可以用長方形的方式選擇資料(提制豎列)
y:將反白的地方復制
d:將反白的地方刪除
多文件編輯
大家在使用vim的時候,可能會碰到你需要復制一個文件中的某段到另外一個文件中,而vim不能夠在關閉的時候,把這段保留住。或者是用其它的方法復制。
vim file1 file2
:n編輯下一個文件
:N編輯上一個文件
:files列出目前這個vim編輯的所有文件
vim FILE1 FILE2 FILE3 …
:next 下一個
:prev 前一個
:first 第一個
:last 最后一個
:wall 保存所有
:qall 退出所有
:wqall保存并退出所有
多窗口功能
有兩個需要對照著看的文件
:sp filename開啟一個新窗口,如果有加 filename, 表示在新窗口開啟一個新文件,否則表示兩個窗口為同一個文件內容(同步顯示)。
ctrl+w+j&ctrl+w+↓:按鍵的按法是:先按ctrl不放,再依次按下w、方向鍵,則光標可移動到下方的窗口。
ctrl+w+k&ctrl+w+↑:同上,不過光標移動到上面的窗口。
ctrl+w+q:結束離開
vim的環境設定
VIM不僅僅功能強大,而且VIM還支持修改環境設定自定義,也可以在命令行模式下進行設定,永久環境設定可以在vim的環境配置文件~/.vimrc里修改。
vim的記錄會主動把用戶曾經做過的行為記錄下來在~/.viminfo
:set all(顯示目前所有的環境參數設置值)
:set nu |:set nonu(設置和取消行號)
:set hlsearch |:set nohlsearch(設置和取消高亮查找)
:set autoindent |:set noautoindent(設置和取消自動排版)
:set backup |:set nobackup(設置和取消自動保存備份)
:syntax on|:syntax off(是否開啟依據相關程序語法顯示不同的顏色)
:set ruler 開啟右下角狀態欄說明
:set showmode 顯示左下角的INSERT之類的狀態欄
:set 顯示與系統默認值不同的參數值
:set bg=dark/light 是否顯示不同的顏色色調
:set backspace={0,1,2}設置退格鍵功能,為2時可以刪任意字符。為0或1時僅可以刪除剛才輸入的字符。
VIM操作圖示
最后,我收集了幾張不錯的圖,分享出來幫助大家更快的來掌握vi/vim。
原創文章,作者:geekdeedy,如若轉載,請注明出處:http://www.www58058.com/77424