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