插入: i 從光標當前位置開始插入 a 從光標當前位置的下一個字符開始插入 o 在光標位置的下行插入一個空行,,再進行插入 O 在光標位置的上一行插入一個空行,,再進行插入 I 從光標所在行的開頭開始插入正文 A 從光標所在行的末尾開始插入正文 esc=(ctrl+[) 文件保存與退出: :w 保存文件 :w <filename> : 另存為 :w! 強制保存文件 :q 退出 :q! 強制退出 :x = :wq 文件寫入與打開: :w filename 保存文件為給出的文件名 :w! filename 強制保存文件為給出的文件名 :f filename 將當前文件重命名為filename :r filename 插入文件內(nèi)容到光標指定的位置 :e filename 編輯新文件(打開另一個文件進行編輯) :e! 放棄對文件的修改,,并加裁原始的文件內(nèi)容 復制粘貼: [n]x 刪除從光標開始的連續(xù)n個字符 [n]dd 刪除從光標開發(fā)的n行 [n]yy 復制從光標開始的n行 y$ 從光標位置復制在行尾 p 粘貼 gp 粘貼 u 撤消 U 撤消對一行的全部操作 ctrl+r 重做(反撤消) . 重復上次操作 yw 復制一個word dw 剪貼一個word cw 修改一個word D 剪貼光標到行尾 C 修改光標到行尾 選擇: v 按字符選擇 V 按行選擇 ctrl+v 按塊選擇 光標跳轉(zhuǎn): h,、j,、k,、l 左、下,、上,、右 H、M,、L 屏幕最上邊,、屏幕中間位置,、屏幕最下邊 gg 跳到文件第一行 G 跳到文件最后一行 $ 跳到行末 0(數(shù)字0)跳到行首 [num]gg(或[n]G) 跳到文件第n行 [n]H 跳到屏幕第n行 fx 光標移動到本行之后第一此出現(xiàn)“x”的位置,;如:fa ,移動到下一次a出現(xiàn)的位置 Fx 光標移動到本行之前一此出現(xiàn)“x”的位置,;如:fa ,,移動到上一次a出現(xiàn)的位置 % 在前后括號({}() )位置之間移動 :n 跳到第n行(同[n]G) w 光標向右移動一個字 W 光標移動到下的個空格之后 b 光標向左移動一個字 B 光標移動到上一個空格之后 num% 跳到文件num%處 , 如50% 編輯模式下按v 進入可視狀態(tài)進行內(nèi)容選擇 [n]shift + > 所選內(nèi)容向右移動一個tab [n]shift + < 所選內(nèi)容向左移動一個tab 查找替換: /string 查找字符串 ,,配合n(next)使用 * 向后搜索光標所在位置的一個word # 向前搜索光標所在位置的一個word /\<xxx 查找以xxx開頭的字符串 /xxx\> 查找以xxx結(jié)尾的字符串 /\<xxx\> 完全匹配查找 d/int main 從光標所在位置開始刪除,,直到遇到int main :s/str1/str2 用str2替換行中首次出現(xiàn)的字符串str1 :s/str1/str2/g 用str2替換行中所有的字符串str1 :%s/str1/str2/g 用str2替換全文中所有的字符串str1,不詢問,強制替換 :%s/str1/str2/gc 用str2替換全文中所有的字符串str1,,詢問 fd 查找本行第一個d字符 ,; 下一個 , 上一個 vi: 打開或新建: vi <filename> #命令行 :ed <filename> #最后一行模式 :fin[d] <path/file> #在路徑path中查找文件,,然后編輯它 new <file> # 在新窗口中編輯文件 窗口操作: :sp(或ctrl+w+s): 打開一個新窗口,,編輯相同的內(nèi)容,。 :new(或ctrl+W+n): 打開一個空的北新窗口。 ctrl+w+w: 在多個窗口間切換 J 刪除行末的換行符,,將下行與本行合并為一行 滾屏: ctrl+u[p] 向下滾半屏 ctrl+d[own] 向上滾半屏 ctrl+f[ront] 向下滾一屏 ctrl+b[ack] 向上滾一屏 ctrl+e 向下滾一行 ctrl+y 向上滾一行 zz 將光標所在的行放在屏幕中間 zt 將光標所在的行放在屏幕第一行 top zb 將光標所在的行放在屏幕最后一行 botton Go 跳到文件尾部去插入 標簽: :tabe [file] 打開新標簽并在新標簽中編輯file所指的文件 :[num] gt 在不同的標簽之間切換 num指的是第幾個標簽 :tabo 關閉所有其它的標簽頁 :tabs 列出標簽頁和它們包含的窗口 :tabfir[st] 跳轉(zhuǎn)到第一個標簽 :tabl[ast] 跳轉(zhuǎn)到最后一個標簽 vim比較文件內(nèi)容: vimdiff main.c main2.c vim設置: set number set nonumber set ignorecase #忽略大小寫 (查找字符串時) set noignorecase set ruler #顯示當前光標所在位置 set nuruler set hlsearch #高亮顯示 (查找字符串是,,找到后高亮顯示) set nohlsearch set incsearch #在輸入字符串時就開發(fā)查找 set noincsearch syn on #高亮顯示 set backspace=2 #backspace可用 編程編: 1. 打開include 的文件: (1) 光標放在文件名上,按 ctrl+w f ,,在一個水平分割的窗口中打開,。 (2) 光標放在文件名上,按gf,, 在同一個窗口中打開,。 2. 通過find命令打開文件: (1)先通過set path設置查找的目錄: set path=.,./**,/usr/include 表示在當前目錄,當前目錄下的所有子目錄,,和/usr/include目錄下進行查找 (2)設置好目錄后在vi下用:find filename即可查找并打開文件信盈達企鵝要妖氣嗚嗚吧久零就要,。 3. ctags (1).在項目目錄下用“ctags -R .”產(chǎn)生tags文件。 可將ctags命令寫入makefile文件中 (2).在vim中設置tags文件“set tags=tags” (3).在vim中通過tag命令中轉(zhuǎn)到函數(shù):tag main :tag {ident} “中轉(zhuǎn)到指定的標簽 :tags "顯示標簽 :Ctrl+] “跳轉(zhuǎn)到當前光標下的標簽(函數(shù)聲明處) :Ctrl+T “跳轉(zhuǎn)到標簽棧中較早的標簽(函數(shù)調(diào)用處) 在taglist串口中將光標移動到某個tag上,,按空格鍵會在狀態(tài)欄上顯示原型 4. taglist :TlistOpen 打開taglisg :p "預覽taglist窗口中光標所在位置的tag,。  "在新窗口中打開光標所在位置的tag :l "展開tag :+ "展開tag := "展開所有tag :- "折疊tag(不用shift) :* "折疊所有tag 6. MiniBufExplorer 此插件會使窗口上顯示一個buff清單,可以在該窗口上來選擇打開某個buf文件 <Tab> :跳到下一個buffer名上 <shift+Tab>:跳到上一個buffer名上
4 K+ Z0 G8 _# Y |