現(xiàn)在想起來我最早寫的第一個程序是LF basic,,運行平臺是VAX,CPU是PDP-11,使用編輯器vi.vi是最好的編輯器,和東東交流一下,用Vi幾乎可以不用動鼠標(biāo),保護(hù)手腕. eclipse提供一個插件viPlugin版本是1.15.0,netbeans也不甘落后,也出了myvim. 現(xiàn)在總結(jié)vi快捷鍵使用 光標(biāo)控制命令
命令 光標(biāo)移動 h或^h 向左移一個字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一個字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一個字的開頭 W 移到下一個字的開頭,,忽略標(biāo)點符號 b 移到前一個字的開頭 B 移到前一個字的開頭,,忽略標(biāo)點符號 L 移到屏幕的最后一行 M 移到屏幕的中間一行 H 移到屏幕的第一行 e 移到下一個字的結(jié)尾 E 移到下一個字的結(jié)尾,,忽略標(biāo)點符號 ( 移到句子的開頭 ) 移到句子的結(jié)尾 { 移到段落的開頭 } 移到下一個段落的開頭 0或| 移到當(dāng)前行的第一列 n| 移到當(dāng)前行的第n列 ^ 移到當(dāng)前行的第一個非空字符 $ 移到當(dāng)前行的最后一個字符 +或return 移到下一行的第一個字符 - 移到前一行的第一個非空字符
在vi中添加文本
命令 插入動作 a 在光標(biāo)后插入文本 A 在當(dāng)前行插入文本 i 在光標(biāo)前插入文本 I 在當(dāng)前行前插入文本 o 在當(dāng)前行的下邊插入新行 O 在當(dāng)前行的上邊插入新行 escape 回到命令模式 ^v char 插入時忽略char的指定意義,,這是為了插入特殊字符
在vi中刪除文本
命令 刪除操作 x 刪除光標(biāo)處的字符,,可以在x前加上需要刪除的字符數(shù)目 nx 從當(dāng)前光標(biāo)處往后刪除n個字符 X 刪除光標(biāo)前的字符,,可以在X前加上需要刪除的字符數(shù)目 nX 從當(dāng)前光標(biāo)處往前刪除n個字符 dw 刪至下一個字的開頭 ndw 從當(dāng)前光標(biāo)處往后刪除n個字 dG 刪除行,,直到文件結(jié)束 dd 刪除整行 ndd 從當(dāng)前行開始往后刪除 db 刪除光標(biāo)前面的字 ndb 從當(dāng)前行開始往前刪除n字 :n,md 從第m行開始往前刪除n行 d或d$ 從光標(biāo)處刪除到行尾 dcursor_command 刪除至光標(biāo)命令處,如dG將從當(dāng)產(chǎn)膽行刪除至文件的末尾 ^h或backspace 插入時,,刪除前面的字符 ^w 插入時,刪除前面的字
修改vi文本
每個命令前面的數(shù)字表示該命令重復(fù)的次數(shù) 命令 替換操作 rchar 用char替換當(dāng)前字符 R text escape 用text替換當(dāng)前字符直到換下Esc鍵 stext escape 用text代替當(dāng)前字符 S或cctext escape 用text代替整行 cwtext escape 將當(dāng)前字改為text Ctext escape 將當(dāng)前行余下的改為text cG escape 修改至文件的末尾 ccursor_cmd text escape 從當(dāng)前位置處到光標(biāo)命令位置處都改為text
在vi中查找與替換
命令 查找與替換操作 /text 在文件中向前查找text text 在文件中向后查找text n 在同一方向重復(fù)查找 N 在相反方向重復(fù)查找 ftext 在當(dāng)前行向前查找text Ftext 在當(dāng)前行向后查找text ttext 在當(dāng)前行向前查找text,,并將光標(biāo)定位在text的第一個字符 Ttext 在當(dāng)前行向后查找text,并將光標(biāo)定位在text的第一個字符 :set ic 查找時忽略大小寫 :set noic 查找時對大小寫敏感 :s/oldtext/newtext 用newtext替換oldtext :m,ns/oldtext/newtext 在m行通過n,,用newtext替換oldtext & 重復(fù)最后的:s命令 :g/text1/s/text2/text3 查找包含text1的行,用text3替換text2 :g/text/command 在所有包含text的行運行command所表示的命令 :v/text/command 在所有不包含text的行運行command所表示的命令
在vi中復(fù)制文本
命令 復(fù)制操作 yy 將當(dāng)前行的內(nèi)容放入臨時緩沖區(qū) nyy 將n行的內(nèi)容放入臨時緩沖區(qū) p 將臨時緩沖區(qū)中的文本放入光標(biāo)后 P 將臨時緩沖區(qū)中的文本放入光標(biāo)前 "(a-z)nyy 復(fù)制n行放入名字為圓括號內(nèi)的可命名緩沖區(qū),,省略n表示當(dāng)前行 "(a-z)ndd 刪除n行放入名字為圓括號內(nèi)的可命名緩沖區(qū),,省略n表示當(dāng)前行 "(a-z)p 將名字為圓括號的可命名緩沖區(qū)的內(nèi)容放入當(dāng)前行后 "(a-z)P 將名字為圓括號的可命名緩沖區(qū)的內(nèi)容放入當(dāng)前行前
在vi中撤消與重復(fù)
命令 撤消操作 u 撤消最后一次修改 U 撤消當(dāng)前行的所有修改 . 重復(fù)最后一次修改 , 以相反的方向重復(fù)前面的f,、F、t或T查找命令 ; 重復(fù)前面的f,、F、t或T查找命令 "np 取回最后第n次的刪除(緩沖區(qū)中存有一定次數(shù)的刪除內(nèi)容,,一般為9) n 重復(fù)前面的/或?查找命令 N 以相反方向重復(fù)前面的/或?命令
保存文本和退出vi
命令 保存和/或退出操作 :w 保存文件但不退出vi :w file 將修改保存在file中但不退出vi :wq或ZZ或:x 保存文件并退出vi :q! 不保存文件,退出vi :e! 放棄所有修改,,從上次保存文件開始再編輯
vi中的選項
選項 作用 :set all 打印所有選項 :set nooption 關(guān)閉option選項 :set nu 每行前打印行號 :set showmode 顯示是輸入模式還是替換模式 :set noic 查找時忽略大小寫 :set list 顯示制表符(^I)和行尾符號 :set ts=8 為文本輸入設(shè)置tab stops :set window=n 設(shè)置文本窗口顯示n行
vi的狀態(tài)
選項 作用 :.= 打印當(dāng)前行的行號 := 打印文件中的行數(shù) ^g 顯示文件名,、當(dāng)前的行號、文件的總行數(shù)和文件位置的百分比 :l 使用字母"l"來顯示許多的特殊字符,,如制表符和換行符
在文本中定位段落和放置標(biāo)記
選項 作用 { 在第一列插入{來定義一個段落 [[ 回到段落的開頭處 ]] 向前移到下一個段落的開頭處 m(a-z) 用一個字母來標(biāo)記當(dāng)前位置,如用mz表示標(biāo)記z '(a-z) 將光標(biāo)移動到指定的標(biāo)記,,如用'z表示移動到z
在vi中連接行
選項 作用 J 將下一行連接到當(dāng)前行的末尾 nJ 連接后面n行
光標(biāo)放置與屏幕調(diào)整
選項 作用 H 將光標(biāo)移動到屏幕的頂行 nH 將光標(biāo)移動到屏幕頂行下的第n行 M 將光標(biāo)移動到屏幕的中間 L 將光標(biāo)移動到屏幕的底行 nL 將光標(biāo)移動到屏幕底行上的第n行 ^e(ctrl+e) 將屏幕上滾一行 ^y 將屏幕下滾一行 ^u 將屏幕上滾半頁 ^d 將屏幕下滾半頁 ^b 將屏幕上滾一頁 ^f 將屏幕下滾一頁 ^l 重繪屏幕 z-return 將當(dāng)前行置為屏幕的頂行 nz-return 將當(dāng)前行下的第n行置為屏幕的頂行 z. 將當(dāng)前行置為屏幕的中央 nz. 將當(dāng)前行上的第n行置為屏幕的中央 z- 將當(dāng)前行置為屏幕的底行 nz- 將當(dāng)前行上的第n行置為屏幕的底行
在vi中縮進(jìn)文本
選項 作用 ^i(ctrl+i)或tab 插入文本時,,插入移動的寬度,,移動寬度是事先定義好的 :set ai 打開自動縮進(jìn) :set sw=n 將移動寬度設(shè)置為n個字符 n<< 使n行都向左移動一個寬度 n>> 使n行都向右移動一個寬度,,例如3>>就將接下來的三行每行都向右移動一個移動寬度
idea里面常用的快捷鍵就是Ctrl+d,可惜eclipse和netbeans中沒有 使用vi,,先輸入yy,再輸入p
|