i命令模式中可用的移動(dòng)鍵:
h---將光標(biāo)向左移一個(gè)字符 j---將光標(biāo)向下移一個(gè)字符 k---將光標(biāo)向上移一個(gè)字符 l---將光標(biāo)向右移一個(gè)字符 w---將光標(biāo)向前移一個(gè)單詞 b---將光標(biāo)向后移一個(gè)單詞 e---將光標(biāo)移到下一個(gè)單詞之后 0---將光標(biāo)移到行首 $---將光標(biāo)移到行末 )---將光標(biāo)移到下一句句首 (---將光標(biāo)移到上一句句首 }---將光標(biāo)移到下一段開始處 {---將光標(biāo)移到下一段開始處 G---將光標(biāo)移到當(dāng)前文檔的底部 ^---將光標(biāo)移到行內(nèi)非空格的第一個(gè)字符 H---將光標(biāo)移到屏幕上第一行 L---將光標(biāo)移到屏幕上最后一行 在vi中滾動(dòng)屏幕: a然后按回車----將光標(biāo)所在的那一行移至屏幕頂部 z然后按"-"---將光標(biāo)所在的那一行移至屏幕底部 z然后按"."---將光標(biāo)所在的那一行移至屏幕中部 Ctrl+u------向上滾動(dòng)半屏 Ctrl+d------向下滾動(dòng)半屏 Ctrl+f------向前滾動(dòng)全屏 Ctrl+b------向后滾動(dòng)全屏 Ctrl+e------向下滾動(dòng)一行 Ctrl+y------向上滾動(dòng)一行 vi的文本編輯命令: D------從光標(biāo)定位的行末刪除文本 dd------行刪除光標(biāo)定位的當(dāng)前行 ndd-----n代表即將刪除的行數(shù)。例如5dd命令不僅會(huì)把當(dāng)前行刪除,還會(huì)把緊隨其后的4行也刪除 rc------c代表字符。光標(biāo)下方的字符將被替換為r后面的字符 R------R后鍵入的文本將改寫當(dāng)前文本,從光標(biāo)所在位置開始,一直到按下Escape返回命令模式為止 S------刪除當(dāng)前行,并開始在當(dāng)前的空白行插入文本 x------刪除光標(biāo)下方的字符,并將字符右移填空 X------刪除光標(biāo)前的字符,并移動(dòng)字符,令光標(biāo)下方的字符來(lái)填空 ~------更改光標(biāo)下方的字母的大小寫 J------將當(dāng)前行和前一行連接起來(lái),并刪除因此而來(lái)的空行 vi中的文件操作: ZZ------保存對(duì)當(dāng)前文件的更改,然后退出vi :wq-----保存對(duì)當(dāng)前文件的更改,然后退出vi(和ZZ一樣) :w------保存對(duì)當(dāng)前文件的更改 :w!-----保存對(duì)當(dāng)前文件的更改,如果有同名文件存在的話,就改寫他 :q------退出vi。如果有未保存的更改,vi將發(fā)出抱怨,并"拒絕"退出 :q!-----退出vi,即使還有尚未保存的更改。所有未保存的更改將被丟失 :e filename-把指定文件載入vi進(jìn)行編輯。如果指定文件不存在,將創(chuàng)建一個(gè)新文件 :e!-----丟失所有更改,并從硬盤中重載已保存的文件 vi中的查找和替換命令 /pattern--------pattern(樣式)指代的是要查找的內(nèi)容。vi將在文件中向前查找與指定內(nèi)容匹配的第一樣式 /-----------重復(fù)上一次查找,在文件中查找下一個(gè)匹配樣式 pattern--------pattern(樣式)指代的是要查找的內(nèi)容。vi將在文件中向后查找與指定內(nèi)容匹配的第一樣式 -----------重復(fù)上一次查找,在文件中查找與上一次查找內(nèi)容匹配的樣式 %-----------把當(dāng)前光標(biāo)移至匹配的圓括號(hào)或方括號(hào)。對(duì)程序員來(lái)說(shuō),該命令非常有用 :s/pattern1/pattern2--用pattern2替換當(dāng)前行中與pattern1匹配的每個(gè)內(nèi)容 :%s/pattern1/pattern2--用pattern2替換整個(gè)文件中與pattern1匹配的每個(gè)內(nèi)容 在vi中復(fù)制文本 命令 復(fù)制操作 yy 將當(dāng)前行的內(nèi)容放入臨時(shí)緩沖區(qū) nyy 將n行的內(nèi)容放入臨時(shí)緩沖區(qū) p 將臨時(shí)緩沖區(qū)中的文本放入光標(biāo)后 P 將臨時(shí)緩沖區(qū)中的文本放入光標(biāo)前 "(a-z)nyy 復(fù)制n行放入名字為圓括號(hào)內(nèi)的可命名緩沖區(qū),省略n表示當(dāng)前行 "(a-z)ndd 刪除n行放入名字為圓括號(hào)內(nèi)的可命名緩沖區(qū),省略n表示當(dāng)前行 "(a-z)p 將名字為圓括號(hào)的可命名緩沖區(qū)的內(nèi)容放入當(dāng)前行后 "(a-z)P 將名字為圓括號(hào)的可命名緩沖區(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中的宏與縮寫 (避免使用控制鍵和符號(hào),不要使用字符K、V、g、q、v、*、=和功能鍵) 選項(xiàng) 作用 :map key command_seq 定義一個(gè)鍵來(lái)運(yùn)行command_seq,如:map e ea,無(wú)論什么時(shí)候都可以e移到一個(gè)字的末尾來(lái)追加文本 :map 在狀態(tài)行顯示所有已定義的宏 :umap key 刪除該鍵的宏 :ab string1 string2 定義一個(gè)縮寫,使得當(dāng)插入string1時(shí),用string2替換string1。當(dāng)要插入文本時(shí),鍵入string1然后按Esc鍵,系統(tǒng)就插入了string2 :ab 顯示所有縮寫 :una string 取消string的縮寫 在vi中縮進(jìn)文本 選項(xiàng) 作用 ^i(ctrl+i)或tab 插入文本時(shí),插入移動(dòng)的寬度,移動(dòng)寬度是事先定義好的 :set ai 打開自動(dòng)縮進(jìn) :set sw=n 將移動(dòng)寬度設(shè)置為n個(gè)字符 n<< 使n行都向左移動(dòng)一個(gè)寬度 n>> 使n行都向右移動(dòng)一個(gè)寬度,例如3>>就將接下來(lái)的三行每行都向右移動(dòng)一個(gè)移動(dòng)寬度 split:分割一個(gè)窗口 :split file.c :為另一個(gè)文件file.c分隔窗口 :nsplit file.c: 為另一個(gè)文件file.c分隔窗口,并指定其行數(shù) CTRL+W在窗口中切換 :close:關(guān)閉當(dāng)前窗口 v:進(jìn)入visual 模式 【ESC】退出 |
|