您好,登錄后才能下訂單哦!
vim是一個向上兼容于vi的文本編輯器,可用于編輯各種純文本。它對編輯程序特別有用。
編輯模式:默認編輯文件進入的模式輸入模式:末行模式:內置的命令行接口
?#?vim?[options]?[file?..]+#:打開文件后,直接讓光標處于第#行的行首;+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行;
編輯模式:默認模式編輯模式?->?輸入模式:??i:insert,在光標所在處輸入;??a:?append,在光標在處后方輸入;??o:在光標所在處的下方打開一個新行;??I:在光標所在行的行首輸入;??A:在光標所在行的行尾輸入;??O:在光標所在處的上方打開一個新行;????????????????????輸入模式?->?編輯模式????ESC鍵????????????????????編輯模式?->?末行模式????:鍵????????????????????末行模式?->?編輯模式????ESC鍵
1.編輯模式下:??ZZ:保存并退出;??ZQ:不保存直接退出;2.進入末行模式:??:q?退出??:q!?強制退出,不保存此前的編輯操作??:wq?保存并退出;??:w,?:q??:x?保存并退出;??:w?/PATH/TO/SOMEFILE?保存到指定文件
字符間跳轉??h:左??j:下??k:上??l:右現在直接上下左右鍵#COMMAND:跳轉由#指定的個數的字符;
w:下一個單詞的詞首;e:當前或后一個單詞的詞尾;b:當前或前一個單詞的詞首;#COMMAND:跳轉由#指定的個數的單詞;
^:跳轉至行首的第一個非空白字符;0:跳轉至行首;$:跳轉至行尾;
#G:跳轉至由#指定的行;1G,?gg:第一行;G:最后一行;
)?下一句(?上一句
}?下一段{?上一段
Ctrl+f:向文件尾翻一屏Ctrl+b:向文件首部翻一屏Ctrl+d:向文件尾部翻半屏Ctrl+u:向文件首部翻半屏Enter:按行向后翻
H:頁首M:頁中間行L:頁底zt:將光標所在當前行移到屏幕頂端zz:將光標所在當前行移到屏幕中間zb:將光標所在當前行移到屏幕底端
默認模式??x:刪除光標所在處的字符;??#x:刪除光標所在處起始的#個字符;??xp:交換光標所在處的字符與其后面的字符的位置;????替換命令(replace):??r:替換光標所在處的字符;????rCHAR??~:大小寫切換
編輯模式刪除??d:刪除命令,可結合光標跳轉字符,實現范圍刪除;??d$:刪除光標所在位置到行尾的字符;??d^:刪除光標所在位置到非空行首的字符;??d0:刪除光標所在位置到行首的字符;????dw:刪除光標所在位置到下個單詞詞首的字符??de:刪除光標所在位置到當前單詞或下個單詞詞尾的字符??db:刪除光標所在位置到當前單詞或上一個單詞單首的字符??#COMMAND:????D:等同于d$??dd:刪除光標所在處的行;??#dd:刪除光標所處的行起始的共#行;
編輯模式粘貼??p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則,則粘貼至當前光標所在處的后方;??P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則,則粘貼至當前光標所在處的前方;
編輯模式復制??y:復制,工作行為相似于d命令;??y$:復制光標所在位置到行尾的字符??y^:復制光標所在位置到非空行首的字符??y0:復制光標所在位置到行首的字符??????????ye:復制標所在位置到當前單詞或下個單詞詞尾的字符??yw:復制光標所在位置到下個單詞詞首的字符??yb:復制光標所在位置到當前單詞或上一個單詞單首的字符??#COMMAND????????????yy:復制一整行??#yy:復制#行
編輯模式?-->?輸入模式,實現刪除操作;??c$:刪除光標所在位置到行尾的字符并且切換為輸入模式;??c^:刪除光標所在位置到非空行首的字符并且切換為輸入模式;??c0:刪除光標所在位置到行首的字符并且切換為輸入模式;??????????cb:刪除光標所在位置到當前單詞或上一個單詞單首的字符并且切換為輸入模式;??ce:刪除光標所在位置到當前單詞或下個單詞詞尾的字符并且切換為輸入模式;??cw:刪除光標所在位置到下個單詞詞首的字符并且切換為輸入模式;??#COMMAND????????????cc:刪除光標所在的行,并且切換為輸入模式;??#cc:刪除#行并且切換為輸入模式;
選定字符??v:按字符選定;??V:按行選定;??????結合編輯命令使用:d,?c,?y??????撤銷(undo)操作:????u:撤銷此前的操作;????#u:撤銷此前的#個操作;????????????撤銷此前的撤銷:????Ctrl+r??????????重復執行前一個編輯操作:????.??vim自帶的練習教程:vimtutor
內建的命令行接口
??:start_pos[,end_pos]??#:特定的第#行,例如5即第5行;??.:當前行;??$:最后一行;??#,#:指定行范圍,左側為起始行,右側為結束行;??#,+#:指定行范圍,左側為超始行絕對編號,右側為相對左側行號的偏移量;例如:3,+7??.,$-1:范圍為當前行指倒數第二行??1,$:范圍為第一行至最后一行??%:全文??/pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行;??/first/,$:從光標所在處起始,第一次由pat1匹配到的行開始,至最后一行中間的所有行??/pat1/,/pat2/:從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間的所有行;????????可同編輯命令一同使用,實現編輯操作:????d:地址定界后接d實現刪除該定界范圍內的行????y:地址定界后接d實現復制該定界范圍內的行????c:地址定界后接d實現替換該定界范圍內的行并且切換為輸入模式??????????w?/PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中;????r?/PATH/FROM/SOMEFILE:將指定的文件中的文本讀取并插入至指定位置;
模式匹配查找??/PATTERN:從當前光標所在處向文件尾部查找能夠被當前模式匹配的所有字符串;???PATTERN:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;??n:下一個,與命令方向相同;??N:上一個,與命令方向相反;
??s:末行模式的命令;??使用格式:????s/要查找的內容/替換為的內容/修飾符????要查找的內容:可使用正則表達式;????替換為的內容:不能使用正則表達式,但可以引用;????如果“要查找的內容”部分在模式中使用分組符號:在“替換為的內容”中使用后向引用;????直接引用查找模式匹配到的全部文本,要使用&符號;??修飾符:????i:忽略大小寫;????g:全局替換,意味著一行中如果匹配到多次,則均替換;??????????????可把分隔符替換為其它非常用字符:????????s@@@????????s###??????????示例:????%s@\<t\([[:alpha:]]\+\)\>@T\1@g????%s@\<t[[:alpha:]]\+\>@&er@g
??vim?FILE1?FILE2?...????????在文件間切換:????:next?下一個????:prev?上一個????:first??第一個????:last??最后一個????????退出所有文件:????:wqall?保存所有文件并退出;????:wall????:qall
窗口分割??-o:水平分割窗口??-O:垂直分割窗口????在窗口間切換:Ctrl+w,?ARROW??????注意:單個文件也可以分割為多個窗口進行查看:????Ctrl+w,?s:水平分割窗口????Ctrl+w,?v:垂直分割窗口
注意:在末行模式下的設定,僅對當前vim進程有效;??永久有效:????全局:/etc/vimrc????用戶個人:~/.vimrc??????1、行號????顯示:set?number,?簡寫為set?nu????取消顯示:set?nomber,?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??????獲取幫助:????:help????:help?subject
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。