vim編輯器
vim,可謂文本編輯界的大哥,功能強大無比,是進階版的vi, vim 不但可以用不同顏色顯示文字內容,還能夠進行諸如 shell script, C program等程序編輯功能。
vim是一種模式化的編輯器 (vim自帶教程,命令行中輸入vimtutor即可)
vim基本模式:
命令模式(默認模式)
功能:移動光標,復制、輸入命令來完成等操作
輸入命令時沒有可視信息,直到命令輸入完成后系統自動執行
輸入模式(編輯模式)
功能:修改文本內容
擴展命令模式(內置命令行接口)
功能:查找替換、保存退出等
打開文件:
#vim [options] [file…]
+#:打開文件后光標自動跳轉到指定的行數 [root@CentOS 7 test]# vim +10 passwd//進入文件光標自動在文件的第10行 +/PATTERN:打開文件后,光標直接處于第一個被PATTERN匹配到的行的行 [root@CentOS 7 test]# vim +/^ftp passwd //打開文件光標在第一次匹配到以ftp開頭的行的行首
關閉文件:(擴展命令模式下)
命令(默認)模式下:
按shift+zz即可保存并退出,shift+zq即退出不保存。
擴展命令模式下:
q:退出不保存(未更改文件內容前) q!:強制退出不保存(用于已修改文件后) wq:保存并退出 x:保存并退出 //以上4個直接在擴展命令模式中的冒號輸入確認即可
w /path/to/somefile:將文件另存為到指定文件 編輯文件,在擴展命令模式下輸入保存地址即可,保存后可看到提示信息 :w /test/passwd2 //保存的地址 "/test/passwd2" [New] 39L, 2026C written //提示信息(新文件“/test/passwd2”寫入39行,2026個字節) r /path/form/some: 讀取指定文件內容到當前編輯文件 需要在正在編輯的文件中添加其他文件的內容,可在擴展命令模式下,輸入下面的命令即可導入 :r /etc/issue //在擴展命令行模式下導入/etc/issue文件內容到當前正在編輯的文件中
模式轉換:在進行模式轉換時的光標位置命令
命令模式——輸入模式
i: insert 在光標所在處輸入 I:在當前光標所在行的行首輸入 a: append, 在光標所在處后面輸入 A:在當前光標所在行的行尾輸入 o 在當前光標所在行的下方打開一個新行 O:在當前光標所在行的上方打開一個新行
光標跳轉:(命令(默認)模式下進行)
字符間跳轉:(在命令模式(默認)下直接輸入即可左右上下移動)
左(h)、右(l)、前(j)、后(k)
#(h/l/j/k):跳轉#個指定方向的字符 #10h //向左移動10個字符(直接在默認模式下輸入即可,沒有可視的信息,命令輸入完之后會自動執行)
單詞間跳轉: (命令(默認)模式下進行)
w:下一個單詞的詞首 e:當前或下一單詞的詞尾 b:當前或前一個單詞的詞首 # command:由#指定一次跳轉的單詞數 #(w/e/b): 指定跳轉單詞數 #5w //跳轉到5個單詞的最后一個單詞詞首
行首行尾跳轉:(命令(默認)模式下進行)
^:跳轉至行首的第一個非空字符 0:跳轉至行首,不識別空格直接到第一個字符 $:跳轉至行尾
行間跳轉:(命令(默認)模式下進行)
#G:跳轉至由#指定的行 #10G //跳轉到第10行 1G/gg:跳轉至第一行
Vim編輯命令:(命令(默認)模式下進行)
字符編輯:(命令(默認)模式下進行)
x:刪除光標所在處的字符 #x:刪除光標處起始指定的#個字符 xp:光標當前所在位置的字符與后面的字符轉換位置(兩個字符互換)
替換命令:(命令(默認)模式下進行)
r:替換光標處的字符
刪除命令:(命令(默認)模式下進行)
d:刪除命令,可結合光標跳轉來實現刪除 d $:刪除光標處向后的所有字符(行 d^:刪除光標處向前的所有字符(行) dw:刪除向后指定的多少個單詞 如:d3w //刪除3個單詞 de:刪除向后的單詞 db:刪除向前的單詞 dd:刪除當前的一整行 //3dd,刪除3行
復制命令:(命令(默認)模式下進行)
y:復制(復制,工作行為相當于d命令) y$,y^,yo,ye,yw,yb,#command yy:復制一整行
粘貼命令:(命令(默認)模式下進行)
p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方,否則,則粘貼在當前光標所在處的后面 P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方,否則,則粘貼在當前光標所在處的前面
可視化操作:(命令(默認)模式下進行)
v:按字符選定 V:按行選定
撤銷操作:(命令(默認)模式下進行)
u:撤銷此前的操作 #u:撤銷#次操作 #4u:撤銷4次 ctrl+r:撤銷此前的撤銷操作 . :重復執行前一個編輯命令
擴展命令模式:
1.地址定界:
:start_pos,end_pos #: 具體第#行,例如2表示第2行; #,#: 從左側#表示行起始,到右側#表示行結尾 #,+#: 從左側#表示的行起始,加上右側#表示的行數 : 2,+3 表示2到5行 .: 當前行 $: 最后一行 .,$-1 當前行到倒數第二行 %:全文, 相當于1,$ /pat1/,/pat2/ 從第一次被pat1模式匹配到的行開始,一直到第一次被 pat2匹配到的行結束 #,/pat/ /pat/,$ w file: 將范圍內的行另存至指定文件中 r file:在指定位置插入指定文件中的所有內容
查找
/PATTERN:從當前光標所在處向文件尾部查找 ?PATTERN:從當前光標所在處向文件首部查找 n:與命令同方向 N:與命令反方向
查找替換
s: 在擴展模式下完成查找替換操作 格式: s/要查找的內容/替換為的內容/修飾符 要查找的內容:可使用模式 替換為的內容:不能使用模式,但可以使用\1, \2, ... 等后向引用符號;還可以使用“ &引用前面查找時查找到的整個內容 修飾符: i: 忽略大小寫 g: 全局替換;默認情況下,每一行只替換第一次出現 gc:全局替換,每次替換前詢問 查找替換中的分隔符/可替換為其它字符,例如 s@/etc@/var@g s#/boot#/#i
vim的寄存器:
有26個命名寄存器和1個無命名寄存器,常存放不同的剪貼版內容,可以不同會話間共享。
用a, b,&,z表示,用寄存器表示,放在數字和命令之間如: 3"tyy 表示復制3行到t寄存器中"tp 表示將t寄存器內容粘貼未指定,將使用無命名寄存器
有10個數字寄存器,用0, 1, &, 9表示, 0存放最近復制內容, 1存放最近刪除內容。當新的文本變更和刪除時, 1轉存到2, 2轉存到3,以此類推。數字寄存器不能在不同會話間共享。
可視化模式:
允許選擇的文本塊 v 面向字符 V 面向行 ctrl-v 面向塊 可視化鍵可用于與移動鍵結合使用: w, ) , } ,箭頭等 突出顯示的文字可以被刪除,復制,變更,過濾,搜索/替換
多文件模式:
vim FILE1 FILE2 FILE3 …
:next 下一個 :prev 前一個 :first 第一個 :last 最后一個 :wall 保存所有 :qall 退出所有 :wqall
使用多個窗口
多文件分割
vim -o|-O FILE1 FILE2 ... -o: 水平分割 -O: 垂直分割 在窗口間切換: Ctrl+w, Arrow
單文件窗口分割:
Ctrl+w,s: split, 水平分割 Ctrl+w,v: vertical, 垂直分割 ctrl+w,q:取消相鄰窗口 ctrl+w,o:取消全部窗口 : wqall 退出
定制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 (5) 語法高亮 啟用: syntax on 禁用: syntax off (6) 忽略字符的大小寫 啟用: set ic 不忽略: set noic (7) 文件格式 啟用: fileformat=unix 不忽略: fileformat=dos (8) 設置文本寬度 :set textwidth=65 (vim only) :set wrapmargin=15 :help option-list :set or :set all
原創文章,作者:Lii,如若轉載,請注明出處:http://www.www58058.com/32086
給個贊