插入: i 從光標當前位置開始插入 a 從光標當前位置的下一個字符開始插入 o 在光標位置的下行插入一個空行,再進行插入 O 在光標位置的上一行插入一個空行,再進行插入 I 從光標所在行的開頭開始插入正文 A 從光標所在行的末尾開始插入正文 esc=(ctrl+[) 文件保存與退出: :w 保存文件 :w :w! 強制保存文件 :q 退出 :q! 強制退出 :x = :wq 文件寫入與打開: :w filename 保存文件為給出的文件名 :w! filename 強制保存文件為給出的文件名 :f filename 將當前文件重命名為filename :r filename 插入文件內容到光標指定的位置 :e filename 編輯新文件(打開另一個文件進行編輯) :e! 放棄對文件的修改,并加裁原始的文件內容 復制粘貼: [n]x 刪除從光標開始的連續n個字符 [n]dd 刪除從光標開發的n行 [n]yy 復制從光標開始的n行 y$ 從光標位置復制在行尾 p 粘貼 gp 粘貼 u 撤消 U 撤消對一行的全部操作 ctrl+r 重做(反撤消) . 重復上次操作 yw 復制一個word dw 剪貼一個word cw 修改一個word D 剪貼光標到行尾 C 修改光標到行尾 選擇: v 按字符選擇 V 按行選擇 ctrl+v 按塊選擇 光標跳轉: h、j、k、l 左、下、上、右 H、M、L 屏幕最上邊、屏幕中間位置、屏幕最下邊 gg 跳到文件第一行 G 跳到文件最后一行 $ 跳到行末 0(數字0)跳到行首 [num]gg(或[n]G) 跳到文件第n行 [n]H 跳到屏幕第n行 fx 光標移動到本行之后第一此出現“x”的位置;如:fa ,移動到下一次a出現的位置 Fx 光標移動到本行之前一此出現“x”的位置;如:fa ,移動到上一次a出現的位置 % 在前后括號({}() )位置之間移動 :n 跳到第n行(同[n]G) w 光標向右移動一個字 W 光標移動到下的個空格之后 b 光標向左移動一個字 B 光標移動到上一個空格之后 num% 跳到文件num%處 , 如50% 編輯模式下按v 進入可視狀態進行內容選擇 [n]shift + > 所選內容向右移動一個tab [n]shift + < 所選內容向左移動一個tab 查找替換: /string 查找字符串 ,配合n(next)使用 * 向后搜索光標所在位置的一個word # 向前搜索光標所在位置的一個word /\ /xxx\> 查找以xxx結尾的字符串 /\ d/int main 從光標所在位置開始刪除,直到遇到int main :s/str1/str2 用str2替換行中首次出現的字符串str1 :s/str1/str2/g 用str2替換行中所有的字符串str1 :%s/str1/str2/g 用str2替換全文中所有的字符串str1,不詢問,強制替換 :%s/str1/str2/gc 用str2替換全文中所有的字符串str1,詢問 fd 查找本行第一個d字符 ; 下一個 , 上一個 vi: 打開或新建: vi :ed :fin[d] new 窗口操作: :sp(或ctrl+w+s): 打開一個新窗口,編輯相同的內容。 :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] 跳轉到第一個標簽 :tabl[ast] 跳轉到最后一個標簽 vim比較文件內容: vimdiff main.c main2.c vim設置: set number set nonumber set ignorecase #忽略大小寫 (查找字符串時) set noignorecase set ruler #顯示當前光標所在位置 set nuruler set hlsearch #高亮顯示 (查找字符串是,找到后高亮顯示) set nohlsearch set incsearch #在輸入字符串時就開發查找 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 .”產生tags文件。 可將ctags命令寫入makefile文件中 (2).在vim中設置tags文件“set tags=tags” (3).在vim中通過tag命令中轉到函數:tag main :tag {ident} “中轉到指定的標簽 :tags "顯示標簽 :Ctrl+] “跳轉到當前光標下的標簽(函數聲明處) :Ctrl+T “跳轉到標簽棧中較早的標簽(函數調用處) 在taglist串口中將光標移動到某個tag上,按空格鍵會在狀態欄上顯示原型 4. taglist :TlistOpen 打開taglisg :p "預覽taglist窗口中光標所在位置的tag。 ![]() :l "展開tag :+ "展開tag := "展開所有tag :- "折疊tag(不用shift) :* "折疊所有tag |