VIM編輯器

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編輯器
一般模式: 
用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。 
VIM鍵盤圖
按鍵示意圖
常用操作圖

原創文章,作者:geekdeedy,如若轉載,請注明出處:http://www.www58058.com/77424

(0)
geekdeedygeekdeedy
上一篇 2017-06-03
下一篇 2017-06-04

相關推薦

  • Linux上文件管理類命令實例講解

    下面介紹三個文件cp, mv, rm管理命令: cp命令:copy,復制命令 命令格式: cp 源文件 目標文件 復制又分為單源復制和多源復制兩種情況: 單源復制 如果目標文件不存在,創建此文件,并復制數據流到此文件; [root@localhost tmp]# cp yum.log ok [root@localhost tmp]# ls -l total …

    Linux干貨 2018-02-28
  • 第十二周作業

    1、 請描述一次完整的http請求處理過程;  HTTP:超文本傳輸協議 完整的http請求過程 1)、建立TCP/IP連接:經過3次握手,建立連接或拒絕。 2)、瀏覽器向服務器發送HTTP請求。 3)、瀏覽器發送請求頭信息。 4)、服務器應答:服務器接受請求后,會回送應答。 5)、服務器發送應答頭信息。 6)、服務器向瀏覽器發送數據。 7)、服務…

    2017-05-17
  • Linux first day note book

    linux os setup

    2018-03-26
  • 第一周學習總結

    俗話說,好記性不如爛筆頭,在當今移動互聯網橫行的時代,爛筆頭就是網絡,而筆記本就是各種平臺。 作為一個IT人,有人突然問你計算機是啥,你可能不會像學文科的人一樣給他說,就是電腦啊。這時候就是凸顯IT知識技能的時候了,那么我下面就給您慢慢的道來。 在1946年美籍匈牙利人馮·諾依曼首次提出了自己的計算機體系理論,簡稱馮·諾依曼體系,主要是說計算機由五大基本部件…

    2017-12-14
  • BIND的編譯安裝\DNS的搭建及測試

    編譯安裝bind          1、下載bind: isc.org: bind-9.10 bind-9.11 bind-10          2、 #tar xvf bind-9.10.5.tar.gz       &nbs…

    2017-07-31
  • DNS簡單概念 一

    DNS簡單概念 一 DNS簡單概念 一 1 §·主機角色 1 §·DNS服務器的類型: 1 §·DNS中簡單術語 2 §·DNS中資源記錄及其類型 2 §·DNS域與區域 4 §·BIND安全設置 5 §·BIND高級設置BIND VIEW 6   §·主機角色 在網絡上不同的主機有不同的角色, 比如: DNS解析角色,郵件角色,網頁服務器 §·D…

    Linux干貨 2016-09-26
欧美性久久久久