-
Vim編輯器使用詳解
-
vim介紹
-
為什么要學習vim
-
vim三種模式
-
vim工作模式(圖解)
-
vim如何打開文件
-
vim關閉文件
-
命令模式光標跳轉
-
字符間跳轉:
-
單詞間跳轉:
-
行首行尾跳轉:
-
行間移動:
-
VIM的命令模式下的命令:
-
字符編輯:
-
替換命令(r, replace)
-
刪除命令:
-
復制命令
-
粘貼命令(p, paste): :
-
其他相關的編輯操作:
-
翻屏操作:
-
查找操作:
-
VIM末行模式的操作:
-
地址定界
-
查找和替換
-
練習:
-
多文件模式:
-
窗口分隔模式:
-
定制vim的工作特性:
Vim編輯器使用詳解
vim介紹
在Linux系統中配置應用服務,實際上就是在修改它的配置文件(配置文件可能有多
個,其中包含不同的參數),而且日常工作中也一定免不了編寫文檔的事情吧,這
些都是要通過文本編輯器來完成的。在熱門Linux操作系統中都會默認安裝一款超好用的文本編輯器——名字叫“vim”,vim是vi編輯器的升級版。
為什么要學習vim
Vim能夠得到這么多廠商與用戶的認可,原因就是在Vim編輯器中有三種模式——命
令模式、末行模式和編輯模式,分別又有多種不同的命令快捷鍵組合,很大的提高
了工作效率,用習慣后會覺得非常的順手。要想在文本操作時更加高效率,我們必
需先搞清Vim編輯器的三種模式的操作不同與切換方法。
vim三種模式
命令模式
:控制光標移動,可對文本進行刪除、復制、粘貼等工作。輸入模式
:在一般模式中可以進行刪除、復制、貼上等等的動作,但是卻無法編輯文件內容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之后才會進入編輯模式。注意了!通常在 Linux 中,按下這些按鍵時,在畫面的左下方會出現『INSERT 或 REPLACE 』的字樣,此時才可以進行編輯。而如果要回到一般模式時, 則必須要按下『Esc』這個按鍵即可退出編輯模式。
末行模式
:在這個模式當中, 可以提供你『搜尋資料』的動作,而讀取、存盤、大量取代字符、離開 vi 、顯示行號等等的動作則是在此模式中達成的!
vim工作模式(圖解)
記住每次運行vim編輯器后都默認是“命令模式”,需要先進入到“輸入模式”后再進行編寫文檔的工作,而每次編輯完成需先返回到“命令模式”后再進入“末行模式”對文本的保存或退出操作。
vim如何打開文件
格式:vim [OPTION]… [FILE]…
[root@localhost ~]# vim +2 /etc/passwd //直接打開file, 光標在第二行
[root@localhost ~]# cp /etc/passwd passwd
[root@localhost ~]# echo "zabbix" >>passwd
[root@localhost ~]# vim -d /etc/passwd passwd //比較兩個文件
vim關閉文件
末行模式中: :q
退出 :q!
強制退出,丟棄做出的修改 :wq
保存退出 :x
保存退出
命令模式 ZZ:
保存退出 ZQ :
不保存退出
命令模式光標跳轉
字符間跳轉:
h
: 左 l
: 右 j
: 下 k
: 上
單詞間跳轉:
w :
下一個單詞的詞首 e :
當前或下一單詞的詞尾 b :
當前或前一個單詞的詞首
行首行尾跳轉:
^:
跳轉至行首的第一個非空白字符; 0:
跳轉至行首 $:
跳轉至行尾
行間移動:
G
:最后一行 1G, gg:
第一行
VIM的命令模式下的命令:
字符編輯:
x:
刪除光標處的字符; #x:
刪除光標處起始的# 個字符 xp:
交換光標所在處的字符及其后面字符的位置
替換命令(r, replace)
r:
替換光標所在處的字符
:s/root/admin/g
刪除命令:
d:
刪除命令, 可結合光標跳轉命令使用,來實現范圍刪除
例如:dw刪除一個單詞, dG刪除當前光標所在行到最后一行 d$:
刪除到行尾 d0:
刪除到行首 dd:
刪除光標所在的行 #dd :
多行刪除
復制命令
y:
復制, 工作命令相似d命令
例如:yw復制一個單詞 yy:
復制整行
粘貼命令(p, paste): :
p:
粘貼當前緩存區的內容, 如果緩存區中內容為整行內容,則內容粘貼在當前行的正下方, 否則粘貼至光標的后面 P:
粘貼當前緩存區的內容, 如果緩存區中內容為整行內容,則內容粘貼在當前行的正上方, 否則粘貼至光標的后面
其他相關的編輯操作:
v:
按字符選定 V:
按行選定
選定后結合編輯命令使用 u:
撤銷之前的編輯 Ctrl+r:
撤銷之前的撤銷
翻屏操作:
Ctrl+f:
向文件尾部翻一屏 Ctrl+b:
向文件首部翻一屏 Ctrl+d:
向文件尾部翻半屏 Ctrl+u:
向文件首部翻半屏
查找操作:
/PATTERN:
在全文搜索指定模式匹配的字符, 從光標的位置至文件尾部的順序 ?PATTERN:
在全文搜索指定模式匹配的字符, 從光標的位置至文件首部的順序 n:
與當前命令同方向, /PATTERN為往后翻 N:
與當前命令反方向
VIM末行模式的操作:
地址定界
注釋:以下命令不加:, 使用前須輸入:進入末行模式
start,end #:
具體第#行, 例如2表示第2行 #,#:
表示第#行到第#行, 例如2,10表示第2行到第10行
:2,10s/root/admin/g
#,+#:
表示左側的#表示起始, 加上右邊#表示的行數
:2,+9s/admin/root/g
.:
表示當前行 $:
表示最后一行 .,$-1:
表示當前行到倒數第2行 %:
表示全文, 相當于1,$
:%s/admin/root/g
/pat1/,/pat2/:
從第一個被匹配的pat1行開始,到第一個被匹配的pat2的行結束
:/admin/,/ftp/s/admin/root/g
使用方法:
后跟一個編輯命令
d:
刪除y:
復制w /path/to/somewhere:
將范圍內的行另存到指定文件r /path/to/somewhere:
在指定位置插入指定文件的所有內容
查找和替換
地址定界s/要查找的內容/替換的內容/修飾符
例如:替換全文的abc為123 %s/abc/123/gi
要查找的內容:可使用模式匹配
替換為的內容:不可使用模式, 但可以使用\1,\2等后向引用, 還可以使用&符號引用在前面找到的內容
修飾符: i:
忽略大小寫 g:
全局替換
查找替換的分隔符可替換為其他字符
例如::s/abc/123/g可替換成 :s@abc@123@g
練習:
1、復制/etc/grub2.cfg 至/tmp目錄, 用查找替換命令刪除/tmp/grub2.cfg文件中的行首的空白字符
%s/^[[:space:]]//
2、復制 /etc/rc.d/init.d/functions文件至/tmp目錄, 用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首添加一個#號
%s/^[[:space:]]/#&/
多文件模式:
vim FILE1 FILE2 FILE3...
在末行模式下輸入以下命令: :n
切換到下一個文件 :N
切換到上一個文件 wall
保存所有文件 qall
退出所有
窗口分隔模式:
vim -o|-O FILE1 FILE2...
-o:
水平分隔 -O:
垂直分隔
在窗口間切換:Ctrl+w+上下左右
單文件窗口分隔: Ctrl+w,s
split 水平分隔 Ctrl+w,v
vertical 垂直分隔
如下垂直分隔
定制vim的工作特性:
配置文件:
全局 /etc/vimrc
個人 ~/.vimrc末行模式下的配置只對當前vim進程有效
(1) 行號
顯示:set number, 簡寫為set nu
取消顯示:set nonumber, 簡寫為set nonu
(2) 括號匹配
匹配:set showmatch, 簡寫為set sm
取消:set nosm
(3) 自動縮進
啟用:set ai
禁用:set noai
(4) 高亮顯示
啟用:set hlsearch
禁用:set nohlsearch 簡寫 set noh
(5) 語法高亮
啟用:syntax on
禁用:syntax off
(6) 忽略字符大小寫
啟用:set ic
禁用:set noic
(7) 獲取幫助:
:help
:help subject
原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/43674