您好,登錄后才能下訂單哦!
Vim實用技巧有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一、Vim解決問題的方式
A.結識.命令
1..命令可以讓我們重復上次的修改,它是vim中最為強大的多面手
2..命令是一個很小的宏(macro)
B.不要自我重復
1.$移動到行尾
2.a命令在當前光標之后添加內容
3.A命令在當前行的結尾添加內容,相當于$a
C.以退為近
1.f{char}讓vim查找下一處指定字符出現的位置
2.;命令重復查找上次f命令所查找的字符
D.執行、重復、回退
1.vim會記住我們的操作,并使最常用的操作觸手可及,可以很方便地重復執行它們
2.u鍵撤銷上次的修改
3.,鍵反射查找上次f{char}所查找的字符
E.查找并手動替換
1.*進行查找,一是光標會跳到下一個匹配項上,二是所有出現這個詞的地方都會被高亮顯示出來。如果沒有高亮,運行:set hls
2.cw命令刪除從光標位置到音訊結尾間的字符,并進入插入模式
3.n會查找下一個單詞,*nn會遍歷所有匹配項,從而跳回到本次查找的起點
F.結識.范式
1.理想模式:用一鍵移動,另一鍵執行
二、普通模式
A.把撤銷單元切成塊
1.在vim中,我們可以自己控制撤銷命令的粒度。從進入插入模式開始,走到返回普通模式為止,在此期間輸入或刪除的任何內容都被當成一次修改。
2.在插入模式中使用up/down/left/right會重置修改狀態
B.構造可重復的修改
1.db命令刪除從光標起始位置到單詞開頭的內容,但會原封不動地留下最后一個字符
2.x刪除當前字符
3.b把光標移到單詞的開頭
4.dw命令刪掉整個單詞
5.daw刪除整個單詞及相關聯的空格
C.用次數做簡單的算術運算
1.yyp復制行,cw修改字符
2.c+x,找到第一數字做減法,c+a找到第一個數字做加法
3.vim會把0開頭的數字當成8進制,set nrformats=,把所有數字當成十進制
D.能夠重復,就別用次數
1.操作符+動作命令=操作
d{motion},可以dl、daw或dap,它作用的范圍由動作命令決定,c{motion}、y{motion}以及其他一些命令也類似,被統稱為操作符(operator)
一個操作符被連續調用兩次時,會作用于當前行。如dd、>>,gu例外,使用guu,全部小寫
三、插入模式
A.在插入模式中可即時更正錯誤
1.c+h刪除前一個字符,c+w刪除前一個單詞,c+u刪除至行首
B.返回普通模式
1.esc、c+[切換到普通模式,c+o切換到插入-普通模式,可以執行一個普通命令
C.不離開插入模式,粘貼寄存器中的文本
1.yt,復制到逗號的文本
2.c+r{register},把復制的文本粘貼到光標處,{register}是想要插入的寄存器的名字
3.<c+r><c+p>{register}按原義插入寄存器內的文本,并修正任何不必要的縮進
D.隨時隨地做運算
1.<c+r>=
E.用字符編碼插入非常用字符
1.<c+v>{code},{code}是要插入字符的編碼
2.<c+k>{char1}{char2},插入以二合字母表示的字符
F.用替換模式替換已有文本
1.R命令可以由普通模式進入替換模式
2.gR虛擬替換模式(Virtual Replace mode)
3.單次版本的替換模式,r{char}和gr{char}
四、可視模式
A.選擇高亮選區
1.v激活面向字符的可視模式,V激活面向行的可視模式,<c+v>激活面向列塊的可視模式,gv重選上次的高亮選區
B.只要可能,最好用操作符命令,而不是可視命令
1.vit命令可被解讀 為高亮選中標簽內部的內容(visually select inside the tag)
2.當一條可視模式命令被重復執行時,它會影響相同數量的文本
C.用面向列塊的可視模式編輯表格數據
1.<c+v>進入列塊可視模式
2.i,a在光標處字符前后插入,I,A在行首和行尾插入
五、命令行模式
A.在一行或多個連續行上執行命令
1.:[range]p,顯示并定位到行,可以混合搭配行號、位置標記以及查找模式,也可以對它們加以偏移
B.使用’:t’和’:m’命令復制和移動行
1.:[range]copy{address},把[range]的行復制到{address},{address}為.復制到當前行下方,為空復制到[range]下方
2.簡寫:co或:t,yyp命令會使用寄存器,:t不會
3.:[range]move{address},簡寫:m,移動行
C.在指定范圍上執行普通模式命令
1.:’<,’>normal,為“對高亮選區中的每一行,對其執行普通模式下的命令”
2.%代表下個文件范圍
D.重復上次的Ex命令
1.使用@:重復上次一命令,運行運一次后就可以用@@
2.寄存器總是保存著最后執行的命令行命令
E.自動補全Ex命令
1.也可以使用<Tab>自動補全
2.<c+d>顯示可用的補全列表
F.回溯歷史命令
1.可以使用<c+p>、<c+n>代替上下鍵,可以使用q:顯示命令行窗口
2.在命令行模式下可以使用<c+f>切換到命令行窗口中
G.運行shell命令
1.:!{cmd}各用于執行一次命令,:shell啟動一個交互的shell會話
2.<c+z>掛起Vim,fg喚醒
六、管理多個文件
A.用緩沖區列表管理打開的文件
1.:ls顯示所有載入內存中的緩沖區列表,:bnext可以切換到下一個緩沖區
2.:bprev和:bnext在列表中反向或正向移動;:bfirst和:blast分別跳到列表的開頭和結尾;使用:buffer {bufname|N}直接跳轉;:bufdo允許在:ls列出的所有緩沖區上執行Ex命令;
3.:bdelete命令刪除緩沖區,只是簡單地把該文件在內存中的映像刪掉
B.用參數列表將緩沖區分組
1.:args輸出記錄在啟動時作為參數傳遞給Vim的文件列表
2.:qall!不對未保存的修改進行檢查;:wall把所有改變的緩沖區寫入硬盤
C.將工作區切分成窗口
1.<c+w>s,<c+w>v,水平和垂直切分
2.<c+w>w循環切換窗口
3.:close關閉當前活動窗口,:only關閉除當前活動窗口以外的窗口
D.用標簽頁將窗口分組
1.:lock{path}可以設置當前窗口的本地工作目錄;:tabedit {filename}可以撕開一個新的標簽頁;
2.{N}gt命令在標簽頁間切換,“跳到標簽頁{N}”;gT功能反向;
3.用:tabmove [N]可以重排列標簽頁
七、打開及保存文件
A.用:edit命令打開文件
1.:pwd查看當前工作目錄
2.:edit {filename}打開指定文件
3.%:h,%代表活動緩沖區的完整路徑,:h修飾符會去除文件名但保留路徑中的其他部分
B.使用:find撕開文件
1.**通配會會匹配目錄下所有子目錄
2.:et path=,指定目錄
C.使用netrw管理文件系統
1.vim .可以查看當前目錄,回車可以打開文件
2.:edit縮寫:e
3.:Explore(:E)打開文件管理器,并顯示活動緩沖區所在的目錄
3.:Sexplore及:Vexplore,在一個再來水平切分窗口及垂直切分窗口打開文件管理器
D.把文件保存到不存在的目錄中
1.<c+g>顯示當前文件的文件名及狀態
2.!make dir來進行補救
八、用動作命令在文檔中移動
A.讓手指保持在本位行上
1.h左移一列,l右移一列,j下移一行,k上移一行
2.只用h和l來解決“差一錯誤”(off-by-one errors)。也就是說,只有在距目標差一兩個字符時,才用這兩個鍵。
B.區分實際行與屏幕行
1.gj、gk向下、向上移動一個屏幕行
2.g0、g^、g$,移動到屏幕行的行首、第一個非空白字符、行尾
C.基于單詞移動
1.w正向移動到下一單詞的開頭,b反向移動到當前單詞/上一單詞的開頭,e下向移動到當前 單詞/下一單詞的結尾,ge反向移動到上一單詞的結尾
D.對字符進行查找
1.f{char}命令會在光標位置與當前行行尾之間查找指定的字符,如果找到了就會把光標移到此字符上;如果未能找到,則保持光標不動
2.;命令重復f{char}命令,,反向重復F{char}命令
3.t{char},T{char}正/反向移動到下一個{char}所在之處的前一個字符上
E.通過查找進行移動
1./{char}<CR>查找命令
2.n下移,N上移
F.用精確的文本對象選擇選區
1.Vim的文本對象由兩個字符組成,第一個字符永遠是i或是a。以i開頭的文本對象會選擇分隔符內部的文本,而以a開頭的文本對象則會選擇包括分隔符在內的整個文本。
a)或ab,一對圓括號
i)或ib,圓括號內部
a}或aB,一對花括號
i}或iB,花括號內部
a],一對方括號
i],方括號內部
a>,i>,a',i’,a”,i”,a`,I`,at(一對xml標簽),it(xml標簽內部)
2.每當在命令語法里看到{motion}時,你也可以在這個地方使用文本對象,常見的例子包括d{motion}、c{motion}和y{motion}
G.刪除周邊,修改內部
1.iw當前單詞,aw當前單詞及一個空格,iW當前字串,aW當前字串及一個空格,is當前句子,as當前句子及一個空格,ip當前段落,ap當前段落及一個空行
2.一般來說,d{motion}命令和aw、as和ap配合起來使用比較好,而c{motion}命令和iw及類似的文本對象一起用效果會更好
H.設置位置標記,以便快速跳回
1.m{a-zA-Z}命令會用先定的字母標記當前光標所在位置,小寫位置標記只在每個緩沖區里局部可見,而大寫位置標記則全局可見
2.`{mark}命令跳到位置標記所在行,并把光標置于該行第一個非空白字符上
3.自動標記位置:``當前文件中上次跳轉動作之前的位置,`.上次修改的地方,`^上次插入的地方,`[上次修改或復制的起始位置,`]上次修改或復制的結束位置,`<上次高這選區的起始位置,`>上次高亮選區的結束位置
I.在匹配括號間跳轉
1.%命令允許我們在一組開、閉括號間跳轉,可作用于()、{}以及[]
九、在文件間跳轉
A.遍歷跳轉列表
1.:jumps查看跳轉列表
2.<C-o>、<C-i>命令,前進或后退跳轉
B.遍歷改變列表
1.:changes可以查看改變列表
C.跳轉到光標下的文件
1.gf命令打開文件
2.:set suffixesadd+=..指定打開文件的擴展名
3.:set path設置目錄
十、復制與粘貼
A.深入理解Vim寄存器
1.可以使用”{register}來指定寄存器名
2.黑洞寄存大貴,用下劃線”_
B.用寄存器中的內容替換高亮選區的文本
1.在可視模式下使用p命令時,Vim將用我們指定的寄存器內容來替換高亮選區中的文本
十一、宏
A.宏的讀取與執行
1.q{register}錄制及結束
2.reg {register}可以查看宏
3.使用@{register}執行指定宏的內容,也可以使用@@來重復最近調用過的宏
B.規范光標位置、直達目標以及中止宏
1.在錄制一個宏時,要確保每條命令都可被重復執行
2.規范光標的位置、用可重復的動作命令直達目標、當動作命令失敗時,宏將中止執行
C.加次數回放宏
1.{number}@q
D.給宏追加命令
1.使用qA,大寫的{register}即可追加
十二、按模式匹配及按原義匹配
A.調整查找模式的大小寫敏感性
1.使用元字符\c和\C,可以覆蓋Vim缺省的大小寫敏感設置。
B.按正則表達式查找時,使用\v模式開頭
1.\v模式開關使得Vim的正則表達式引擎表現得更像是Perl、Python或者Ruby。
C.按原義查找文本時,使用\V原義開關
D.使用括號捕獲子匹配
十三、查找
A.結識查找命令
1./正向查找,?反向查找
2.n跳轉到下一處,N跳轉到上一處
B.高亮查找匹配
1.:set hlsearch高亮,:set nohlsearch不高亮
C.在執行查找前預覽第一處匹配
1.:set incsearch預覽第一處匹配
D.將光標偏移到查找匹配的結尾
1./{search}/e
十四、替換
A.結識substitutedtute命令
1.:[range]s[ubstitute]/{pattern}/{string}/[flags]
十五、global命令
A.結識global命令
1.:[range]global[!]/{pattern}/[cmd]
看完上述內容,你們掌握Vim實用技巧有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。