什么是VIM?
VIM類似于Vi編輯器, 它是一個功能強大、可高度定制的文本編輯器, 是一個純粹的自由軟件。注意:vi和vim不完全相同
為什么要使用VIM?
相信大多數人接觸Linux時使用的第一個文本編輯器都不是VIM,很多人看到VIM復雜的命令操作就望而祛步了, 從而選擇nano,gedit等較簡單的文本編輯器, 但是熟悉使用VIM之后你真的就不想回去了!
VIM的用法:
很多習慣使用Windows的朋友可能一開始難以接受VIM編輯器, 因為它實在是太"難"了, 純命令操作, 但是很多經常使用Linux的朋友一般能快速上手。
VIM如何打開文件:
vim [OPTION]... [FILE]...
如果不指定文件則進入以下界面
vim +2 /etc/passwd ##使用vim打開/etc/passwd文件并且使光標處在第二行
vim PATTERN /etc/passwd ## 使用vim打開/etc/passwd文件并且使光標處在指定模式匹配到的行上, 關于模式請自行查閱正則表達式的相應內容,這里不做闡述
VIM是一種模式化的編輯器, 分為以下4種模式:
命令模式:輸入相應指令完成文本的編輯
輸入模式:可直接輸入字符
末行模式:VIM內建的命令行接口,功能強大
可視化模式:可選定字符通過相應指令執行對選定字符的操作
模式轉換:
命令模式 –> 輸入模式
i:在所在光標前進入插入模式 a:在所在在光標后進入插入模式 o:在光標所在行下新建一行,并轉到插入模式 O;在光標所在行上新建一行,并轉到插入模式 I:直接跳到所在行的行首,并進入插入模式 A:直接跳大所在行的行尾,并進入插入模式
輸入模式 –> 編輯模式
按下ESC鍵退回到命令模式
命令模式 –> 末行模式
輸入: 進入末行模式
末行模式 –> 命令模式
按下ESC鍵退回命令模式, 可能有時候需要按兩下
關閉文件:
末行模式中: q:退出 w:保存 q!:強制退出 wq:保存退出 x:保存退出 命令模式下: ZZ:保存退出
光標跳轉:
字符間跳轉:
h:左 j:下 k:上 l:右 #COMMAND:指定一次跳轉的數量, 例如3h, 向左跳轉3個字符
單詞間跳轉:
w:后一個單詞的詞首 e:當前或下一個單詞的詞尾 b:當前或上一個單詞的詞首 #COMMAND:同樣可以通過#指定一次跳轉的數量
行首尾跳轉:
^:跳轉到當前行的第一個非空白字符 $:跳轉到當前行的尾部 0:跳轉到當前行的首部
行間移動:
#G:跳轉到指定行 G:跳轉到最后一行 gg,1G:跳轉到第一行
句間移動:
):下一句 (:上一句 #COMMAND:同樣可以通過#指定一次跳轉的數量
段間移動:
}:下一段 {:上一段 #COMMAND:同樣可以通過#制定一次跳轉的數量
VIM的命令模式下的命令:
字符編輯:
x:刪除當前光標所在的字符 #x:刪除當前光標起始處的#個字符 xp:交換和光標所在字符后的字符的位置
替換命令:
r:替換當前光標所在字符
刪除命令:
d:刪除命令, 可結合光標跳轉命令使用,來實現范圍刪除 例如:dw刪除一個單詞, dG刪除當前光標所在行到最后一行 dd:刪除整行 D:刪除光標當前所在行并保存當前行 #COMMAND:同樣可以通過#制定一次跳轉的數量
粘貼命令:
p:粘貼當前緩存區的內容, 如果緩存區中內容為整行內容,則內容粘貼在當前行的正下方, 否則粘貼至光標的后面 P:粘貼當前緩存區的內容, 如果緩存區中內容為整行內容,則內容粘貼在當前行的正上方, 否則粘貼至光標的后面
復制命令:
y:復制, 工作命令相似d命令 例如:yw復制一個單詞 yy:復制整行 #COMMAND:同樣可以通過#制定一次跳轉的數量
改變命令:
c:修改,可以使 命令模式 --> 輸入模式 cc:刪除行并輸入新內容 cw:刪除后一個單詞,并進入插入模式 ce,c^,c0...操作請自己嘗試, 這里不做闡述
其他相關的編輯操作:
v:按字符選定 V:按行選定 選定后結合編輯命令使用 u:撤銷之前的編輯 Ctrl+r:撤銷之前的撤銷 .:重復前一個編輯操作
翻屏操作:
Ctrl+f:向文件尾部翻一屏 Ctrl+b:向文件首部翻一屏 Ctrl+d:向文件尾部翻半屏 Ctrl+u:向文件首部翻半屏
查找操作:
/PATTERN:在全文搜索指定模式匹配的字符, 從光標的位置至文件尾部的順序 ?PATTERN:在全文搜索指定模式匹配的字符, 從光標的位置至文件首部的順序 n:與當前命令同方向, /PATTERN為往后翻 N:與當前命令反方向
VIM末行模式的操作:
(1) 地址定界
注釋:以下命令不加:, 使用前須輸入:進入末行模式 start,end #:具體第#行, 例如2表示第2行 #,#:表示第#行到第#行, 例如2,10表示第2行到第10行 #,+#:表示左側的#表示起始, 加上右邊#表示的行數 .:表示當前行 $:表示最后一行 .,$-1:表示當前行到倒數第2行 %:表示全文, 相當于1,$ /pat1/,/pat2/:從第一個被匹配的pat1行開始,到第一個被匹配的pat2的行結束 使用方法: 后跟一個編輯命令 d:刪除 y:復制 w /path/to/somewhere:將范圍內的行另存到指定文件 r /path/to/somewhere:在指定位置插入指定文件的所有內容
(2) 查找和替換
地址定界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...
在末行模式下輸入以下命令: firs:第一個 netx:下一個 prev:上一個 last:最后一個 wall 保存所有文件 qall 退出所有
窗口分隔模式:
vim -o|-O FILE1 FILE2... -o:水平分隔 -O:垂直分隔 在窗口間切換:Ctrl+w+上下左右 單文件窗口分隔: Ctrl+w,s split 水平分隔 Ctrl+w,v vertical 垂直分隔
如圖:為水平分隔
如圖:為垂直分隔
定制vim的工作特性:
我們可以通過修改VIM的配置文件來達到定制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
總結:
VIM是一個入門難,精通難的文本編輯器,諸多指令需要牢牢的記在心中,熟練使用可以提高效率
原創文章,作者:Net18-AnyISalIn,如若轉載,請注明出處:http://www.www58058.com/12057
不錯,層次清晰,內容豐滿。贊