刪除一行:ddhtml
刪除一個單詞/光標以後的單詞剩餘部分:dwvim
刪除當前字符:x緩存
光標以後的該行部分:d$.net
文本刪除htm
dd 刪除一行對象
d$ 刪除以當前字符開始的一行字符blog
ndd 刪除以當前行開始的n行ip
dw 刪除以當前字符開始的一個字get
ndw 刪除以當前字符開始的n個字it
D 與d$同義
d) 刪除到下一句的開始
d} 刪除到下一段的開始
d回車 刪除2行
ndw 或 ndW 刪除光標處開始及其後的 n-1 個字符。
d0 刪至行首。
d$ 刪至行尾。
ndd 刪除當前行及其後 n-1 行。
x 或 X 刪除一個字符。
Ctrl+u 刪除輸入方式下所輸入的文本。
^R 恢復u的操做
J 把下一行合併到當前行尾
V 選擇一行
^V 按下^V後便可進行矩形的選擇了
aw 選擇單詞
iw 內部單詞(無空格)
as 選擇句子
is 選擇句子(無空格)
ap 選擇段落
ip 選擇段落(無空格)
D 刪除到行尾
x,y 刪除與複製包含高亮區
dl 刪除當前字符(與x命令功能相同)
d0 刪除到某一行的開始位置
d^ 刪除到某一行的第一個字符位置(不包括空格或TAB字符)
dw 刪除到某個單詞的結尾位置
d3w 刪除到第三個單詞的結尾位置
db 刪除到某個單詞的開始位置
dW 刪除到某個以空格做爲分隔符的單詞的結尾位置
dB 刪除到某個以空格做爲分隔符的單詞的開始位置
d7B 刪除到前面7個以空格做爲分隔符的單詞的開始位置
d) 刪除到某個語句的結尾位置
d4) 刪除到第四個語句的結尾位置
d( 刪除到某個語句的開始位置
d) 刪除到某個段落的結尾位置
d{ 刪除到某個段落的開始位置
d7{ 刪除到當前段落起始位置以前的第7個段落位置
dd 刪除當前行
d/text 刪除從文本中出現「text」中所指定字樣的位置,
一直向前直到下一個該字樣所出現的位置(但不包括該字樣)之間的內容
dfc 刪除從文本中出現字符「c」的位置,一直向前直到下一個該字符所出現的位置(包括該字符)之間的內容
dtc 刪除當前行直到下一個字符「c」所出現位置之間的內容
D 刪除到某一行的結尾
d$ 刪除到某一行的結尾
5dd 刪除從當前行所開始的5行內容
dL 刪除直到屏幕上最後一行的內容
dH 刪除直到屏幕上第一行的內容
dG 刪除直到工做緩存區結尾的內容
d1G 刪除直到工做緩存區開始的內容
k 上 h l 左 右 j 下 ^ 移動到該行第一個非空格的字符處 w 向前移動一個單詞,將符號或標點看成單詞處理 W 向前移動一個單詞,不把符號或標點看成單詞處理 b 向後移動一個單詞,把符號或標點看成單詞處理 B 向後移動一個單詞,不把符號或標點看成單詞處理 ( 光標移至句首 ) 光標移至句尾 { 光標移至段落開頭 } 光標移至段落結尾 H 光標移至屏幕頂行 M 光標移至屏幕中間行 L 光標移至屏幕最後行 0 到行首 $ 到行尾 gg 到頁首 G 到頁末 行號+G 跳轉到指定行 n+ 光標下移n行 n- 光標上移n行 Ctrl+g 查詢當前行信息和當前文件信息 fx 向右跳到本行字符x處(x能夠是任何字符) Fx 向左跳到本行字符x處(x能夠是任何字符) tx 和fx相同,區別是跳到字符x前 Tx 和Fx相同,區別是跳到字符x後 C-b 向上滾動一屏 C-f 向下滾動一屏 C-u 向上滾動半屏 C-d 向下滾動半屏 C-y 向上滾動一行 C-e 向下滾動一行 nz 將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
vi filename 打開或新建文件,並將光標置於第一行首 vi +n filename 打開文件,並將光標置於第n行首 vi + filename 打開文件,並將光標置於最後一行首 vi +/pattern filename 打開文件,並將光標置於第一個與pattern匹配的串處 vi -r filename 在上次正用vi編輯時發生系統崩潰,恢復filename vi filename ... filename 打開多個文件,依次進行編輯 ZZ 退出vi並保存 :q! 退出vi,不保存 :wq 退出vi並保存
. 重複上一次操做
C-n 匹配下一個關鍵字 C-p 匹配上一個關鍵字
o 在光標下方新開一行並將光標置於新行行首,進入插入模式。 O 同上,在光標上方。 a 在光標以後進入插入模式。 A 同上,在光標以前。 R 進入替換模式,直到按下Esc set xxx 設置XXX選項。
J 把下面一行合併到本行後面
/pattern 從光標開始處向文件尾搜索pattern ?pattern 從光標開始處向文件首搜索pattern n 在同一方向重複上一次搜索命令 N 在反方向上重複上一次搜索命令 % 查找配對的括號 :s/p1/p2/g 將當前行中全部p1均用p2替代,若要每一個替換都向用戶詢問則應該用gc選項 :n1,n2s/p1/p2/g 將第n1至n2行中全部p1均用p2替代 :g/p1/s//p2/g 將文件中全部p1均用p2替換 .*[]^%~$ 在Vi中具備特殊含義,若須要查找則應該加上轉義字符"\"
:set hlsearch 設置高亮 :set nohlsearch 關閉高亮 :nohlsearch 關閉當前已經設置的高亮
:set incsearch 設置增量查找 :set noincsearch 關閉增量查找
x 刪除當前光標下的字符 dw 刪除光標以後的單詞剩餘部分。 d$ 刪除光標以後的該行剩餘部分。 dd 刪除當前行。 c 功能和d相同,區別在於完成刪除操做後進入INSERT MODE cc 也是刪除當前行,而後進入INSERT MODE
rx 將當前光標下的字符更改成x(x爲任意字符) ~ 更改當前光標下的字符的大小寫
qcharacter 開始錄製宏,character爲a到z的任意字符 q 終止錄製宏 @character 調用先前錄製的宏
u 撤銷最後執行的命令 U 修正以前對該行的操做 Ctrl+R Redo
c-w c-n 增長frame c-w c-c 減小frame c-w c-w 切換frame c-w c-r 交換兩個frame
Vim支持多達26個剪貼板
選塊 先用v,C-v,V選擇一塊,而後用y複製,再用p粘貼。 yy 複製當前整行 nyy 複製當前行開始的n行內容 ?nyy 將光標當前行及其下n行的內容保存到寄存器?中,其中?爲一個字母,n爲一個數字 ?nyw 將光標當前行及其下n個詞保存到寄存器?中,其中?爲一個字母,n爲一個數字 ?nyl 將光標當前行及其下n個字符保存到寄存器?中,其中?爲一個字母,n爲一個數字 ?p 將寄存器?中的內容粘貼到光標位置以後。若是?是用yy複製的完整行, 則粘貼在光標所在行下面。這裏?能夠是一個字母,也能夠是一個數字 ?P 將寄存器a中的內容粘貼到光標位置以前。若是?是用yy複製的完整行, 則粘貼在光標所在行上面。這裏?能夠是一個字母,也能夠是一個數字 ay[motion] ay$ 複製光標位置到行末並保存在寄存器a中 ayft 複製光標位置到當前行第一個字母t並保存在寄存器a中
以上指令皆可去掉a工做,則y,p對未命名寄存器工做(全部d,c,x,y的對象都被保存在這裏)。
全部刪除的內容自動被保存,能夠用p鍵粘貼
all 列出全部選項設置狀況 term 設置終端類型 ignorance 在搜索中忽略大小寫 list 顯示製表位(Ctrl+I)和行尾標誌($) number 顯示行號 report 顯示由面向行的命令修改過的數目 terse 顯示簡短的警告信息 warn 在轉到別的文件時若沒保存當前文件則顯示NO write信息 nomagic 容許在搜索模式中,使用前面不帶「\」的特殊字符 nowrapscan 禁止vi在搜索到達文件兩端時,又從另外一端開始 mesg 容許vi顯示其餘用戶用write寫到本身終端上的信息
對代碼自動格式化 gg=G
在vi/vim中,跳到文件首尾快捷鍵:
文件開始:shift + g
文件結束:g g
from:http://dsec.pku.edu.cn/~jinlong/vi/Vi.html