linux利器!一分鐘帶你瞭解VIM的前世今生
在一些關於文字編輯器的問題中,我都會提到Vim在文字編輯方面是無編輯器能出其右的,包括Vim的宿敵Emacs,在這方面都無法望Vim項背。
經過這幾天的學習,大家應該知道,linux是一個跟文字檔案打交道的系統,那麼如何去跟這樣一個系統打交道呢?我們就要學會如何去新建檔案、刪除檔案、修改檔案等等,那麼做這些操作就需要一個文字編輯工具。而在linux中最經典最流行的文字編輯工具就是vi/vim;本文將會給大家詳細講述如何在linux作業系統下使用vi/vim 文字編輯器,一分鐘瞭解vi/vim的前世今生。
首先我們要知道的是vi/vim是什麼?
vi編輯器是linux和unix上最基本的文字編輯器,工作在字元模式下。由於不需要圖形介面,vi是效率很高的文字編輯器。儘管在linux上也有很多圖形介面的編輯器可用,但vi在系統和伺服器管理中的功能是那些圖形編輯器所無法比擬的。
vi編輯器可以執行輸出、刪除、查詢、替換、塊操作等眾多文字操作,而且使用者可以根據自己的需要對其進行定製,這是其他編輯程式所沒有的。
Vim是從 vi 發展出來的一個文字編輯器。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。
對vim已經有了基礎瞭解的你們,肯定也想知道它的特點吧!它有三個大眾所能瞭解到的特點!
vi/vim是一種純文字編輯器,它不像word可以排版,可以調整字型大小,可以改變字型
vi/vim只是一個文字編輯工具,它只能對文字的內容進行操作
vi是一個全螢幕的文字編輯器,在編輯文字時它將佔據整個螢幕
雖然不能像Word文件一樣調整字型、改變大小但是優勢
1.全鍵盤操作、快捷鍵的組合,使效率大大提高,
2.啟動快,輕便快捷
3.擴充套件多,足夠用
在linux vi/vim 文字編輯器裡有三種模式:命令模式,輸入模式和末行模式。這三者模式的區別是什麼呢?
命令模式:是vi/vim 編輯器進入後的預設模式,比如說你想編輯檔案,那麼就需要輸入“i”,讓當前模式變為插入模式或者輸入模式,這樣你就可以編輯這個文字了。歷史故事的成語,還可以讓使用者執行命令,比如複製行、貼上行。
輸入模式:顧名思義就是要對本文做輸入的操作,也就是說可以對檔案做出更改操作。
末行模式:用於查詢文字、儲存修改。
其中我們需要重點了解到的是他們之間的轉換模式,這可不簡單
命令模式-->輸入模式-->命令模式
命令模式-->末行模式-->命令模式
命令模式-->輸入模式
i:insert,在當前游標所在字元的前面,轉為輸入模式
I:大寫的i,在當前游標所在行的行首轉換為輸入模式
a:append,在當前游標所在字元的後面轉換為輸入模式
A:在當前游標所在行的行尾轉換為輸入模式
o:open,在當前游標所在行的下方新建一行並轉為輸入模式
O:大寫的o,不是數字0,在當前游標所在行的上方新建一行並轉換為輸入模式
輸入模式-->命令模式
ESC
命令模式-->末行模式
:
末行模式-->命令模式
ESC ESC
示意圖▲
瞭解完它的幾大模式和三大特點後,我們就開始進行操作了!文字編輯方式正確開啟的姿勢你有Get到嗎?(多圖預警!!!)
開啟檔案方式:檔案開啟後預設處於命令模式下
vim filename//開啟檔案
vim +n filename//開啟檔案並定位到第n行
vim +/pattern filename//開啟檔案並定位到第一次被/pattern匹配到的內容行首
關閉檔案方式:末行模式關閉檔案
命令>意義
q>退出 wq>儲存並退出
q! >不儲存退出 w>儲存但不退出
w! >強行儲存 wq!>強行儲存並退出
x>強行儲存並退出
命令模式關閉檔案:ZZ
移動游標
逐字元移動
h:向左移動一個字元
l:向右移動一個字元
j:向下移動一個字元
k:向上移動一個字元
#h:向左移動#個字元
#l:向右移動#個字元
#j:向下移動#個字元
#k:向上移動#個字元
以單詞為單位移動
w:移動到下一個單詞的詞首
e:跳至當前或下一個單詞的詞尾
b:跳至當前或上一個單詞的詞首
#w:以當前游標為起點跳至第#個單詞的詞首
#e:以當前游標為起點跳至第#個單詞的詞尾
#b:以當前游標為起點跳至第#個單詞的詞首
行內跳轉
0:數字0,跳轉到絕對行首
:跳轉到行首的第一個非空白字元
$:跳轉到絕對行尾
行間跳轉
gg:跳轉到第一行
G:跳轉到最後一行
#gg:跳轉到第#行
#G:跳轉到第#行
句子間跳轉
(:左小括號,跳轉到上一個句子
):右小括號,跳轉到下一個句子
段落間跳轉
{:左大括號,跳轉到上一個段落
}:右大括號,跳轉到下一個段落
翻屏
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
ctrl+d:向下翻半屏
ctrl+u:向上翻半屏
字元編輯
編輯命令<意義
x<刪除游標所在處的單個字元
#x<刪除游標所在處及其向後共#個字元 xp<交換游標所在處的字元及其後面字元的位置
刪除命令:d
命令模式下d命令常與跳轉命令組合使用,如
d$:表示刪除當前游標所在位置到行尾的內容
d:表示刪除當前游標所在位置到第一個行首非空白字元位置的內容
d0:表示刪除當前游標所在位置到絕對行首的內容
#d跳轉符:刪除跳轉符指定範圍內的#個,例如 #dw #de #db
dd:刪除當前游標所在行整行
#dd:刪除包括當前游標所在行在內的#行
D:刪除當前游標所在行的內容,保留空行
末行模式下d命令的使用
語法::StartADD,EndADDd
這裡的StartADD與EndADD是指一個範圍,例如:
1,5d:表示刪除第1到第5行
範圍表示方法:
表示方法<意義
.<游標所在當前行 $<最後一行
+#<游標所在行往後#行
$-#<倒數第#行 %<全文
複製命令:yy
貼上命令:p
p:小寫p
若刪除或複製的為整行內容,則貼上至游標所在行的下方
若刪除或複製的為非整行,則貼上至游標所在字元的後面
P:大寫p
若刪除或複製的為整行內容,則貼上至游標所在行的上方
若刪除或複製的為非整行,則貼上至游標所在字元的前面
替換:r
R:替換模式,替換多個字元
r#:將當前游標的字元替換為#,這裡的#可以是任何字元
撤銷編輯:u
u:撤銷前一次的編輯操作,連線u命令可以撤銷此前的n次編輯操作
#u:直接撤銷此前的#次編輯操作
ctrl+r:還原最近一次的撤銷操作
重複前一次編輯操作:.
視覺化模式:
視覺化模式下可以對選取的內容進行前面講的所有編輯操作
v:按字元選取內容
V:按矩形塊(行)選取內容
文字查詢:
/pattern:從上往下查詢匹配的內容
?pattern:從下往上查詢匹配的內容
n:從上往下查詢匹配到的內容的下一條
N:從下往上查詢匹配到的內容的下一條
查詢並替換:s
s命令只能在末行模式下使用
語法:
ADDR1,ADDR2 s/pattern/string/gi
1,5 s/abc/def/g:
表示把第一行到第五行的所有abc替換為def
末行模式下顯示或取消顯示行號:
set nu:顯示行號
set nonu:取消顯示行號
VIM Text Editor
最經典實用的上古神器
如果你是一位 IT 界人士,需要或將要與 Linux 系統打交道,那麼學習好 Vim 的操作絕對能讓你的工作輕鬆百倍!!因為很多時候, Linux 作為伺服器是不會開啟圖形介面,當需要遠端操作時,你只能利用 SSH“命令字元式”的 Shell 介面對其進行操作,這時如果你需要修改伺服器上的網頁程式碼或配置檔案,VI 或 VIM 命令就是你最佳最方便也是最強大的夥伴了!相信我,學好 數理化 VIM,走遍天下也不怕……