{//命令模式
// 移動(dòng)光標(biāo)的基本指令
h:左
j: 下
k: 上
l: 右
w:移動(dòng)光標(biāo)向前跳動(dòng)一個(gè)詞,移動(dòng)到詞首
b:與w相反
e:可以移到下一個(gè)單詞的詞末,而 "ge" 則移動(dòng)到前一個(gè)單詞的末尾
$:把光標(biāo)移動(dòng)到當(dāng)前行行尾
^:把光標(biāo)移動(dòng)到當(dāng)前行的第一個(gè)非空字符
%:是一個(gè)非常方便的命令了:它能匹配一對(duì)括號(hào)。如果光標(biāo)在 "(" 上,它移動(dòng)到對(duì)應(yīng)的 ")" 上,反之,如果它在")" 上,它移動(dòng)到 "(" 上
G:移動(dòng)到指定的行,"33G" 把你送到 33 行,單獨(dú)按"G"移動(dòng)到全文結(jié)尾
0:(零) 命令則移到文章的開頭
]:移到文件開始位置
]:移到文件結(jié)束位置
#l:光標(biāo)移到該行的第#個(gè)位置,如:5l,56l
f/F:?jiǎn)巫址檎颐睿?fx" 往右移動(dòng)到 x 字符上,"Fx" 往左移動(dòng)到 x 字符上
t/T:?jiǎn)巫址檎颐睿?tx" 往右移動(dòng)到 x 字符前,"Tx" 往左移動(dòng)到 x 字符前
ctrl + b:屏幕往“后”移動(dòng)一頁
ctrl + f:屏幕往“前”移動(dòng)一頁
ctrl + u:屏幕往“后”移動(dòng)半頁
ctrl + d:屏幕往“前”移動(dòng)半頁
ctrl + g:顯示當(dāng)前光標(biāo)位置
H:移動(dòng)到視窗的第一行
M:移動(dòng)到視窗的中間行
L:移動(dòng)到視窗的最后行
n-:減號(hào)移動(dòng)到上一行的第一個(gè)非空白字符前面加上數(shù)字可以指定移動(dòng)到以上 n 行
n+:加號(hào)移動(dòng)到下一行的第一個(gè)非空白字符前面加上數(shù)字可以指定移動(dòng)到以下 n 行
n(:左括號(hào)移動(dòng)到句子的最前面前面加上數(shù)字可以指定往前移動(dòng) n 個(gè)句子
n):右括號(hào)移動(dòng)到下個(gè)句子的最前面前面加上數(shù)字可以指定往后移動(dòng) n 個(gè)句子
n{:左括弧移動(dòng)到段落的最前面前面加上數(shù)字可以指定往前移動(dòng) n 個(gè)段落
n}:右括弧移動(dòng)到下個(gè)段落的最前面前面加上數(shù)字可以指定往后移動(dòng) n 個(gè)段落
// 插入
i: 插入,當(dāng)前位置插入
CTRL + A 插入最近插入的文本
CTRL + W 刪除光標(biāo)前的單詞
// 新增 (append)
a:從光標(biāo)所在位置後面開始新增資料,光標(biāo)後的資料隨新增資料向後移動(dòng)
A: 從光標(biāo)所在列最後面的地方開始新增資料
// 插入 (insert)
i:從光標(biāo)所在位置前面開始插入資料,光標(biāo)後的資料隨新增資料向後移動(dòng)
I:從光標(biāo)所在列的第一個(gè)非空白字元前面開始插入資料
// 開始 (open)
o:在光標(biāo)所在列下新增一列并進(jìn)入輸入模式
O: 在光標(biāo)所在列上方新增一列并進(jìn)入輸入模式
// 刪除與修改文件的命令:
x:刪除光標(biāo)所在字符,15x 刪除15個(gè)字符
X:刪除光標(biāo)所在位置的“前面”一個(gè)字符,15X刪除光標(biāo)前面的15個(gè)字符
r:修改光標(biāo)所在字元,r 後接著要修正的字符
R:進(jìn)入取替換狀態(tài),新增文字會(huì)覆蓋原先文字,直到按 [ESC] 回到指令模式下為止
s:刪除光標(biāo)所在字元,并進(jìn)入輸入模式
S:刪除光標(biāo)所在的列,并進(jìn)入輸入模式
dd:刪除光標(biāo)所在的列,3dd 刪除3行
cw:更改光標(biāo)所在處的字到字尾處
c#w:例如:c3w 表示更改3個(gè)字
// 復(fù)制粘貼
yw:將光標(biāo)所在之處到字尾的字符復(fù)制到緩沖區(qū)中,3yw 復(fù)制3個(gè)字到緩沖區(qū)
yy: 復(fù)制當(dāng)前行 "10yy" 復(fù)制10行
p: 粘貼
// 撤銷輸入內(nèi)容
u:只能撤銷一步
//刷新屏幕顯示
Ctrl + l
// 重復(fù)上一命令
.
}
{//底行模式
// 退出
:e! 重載
:w 保存
:q 推出
:wq 存盤并退出
:x 同上
:X 加密保存
// 顯示行號(hào)
:set nu
// 撤銷顯示行號(hào)
:set nonu
//退到外殼程序
:sh[ell]
// 查找
/關(guān)鍵字 向右查找
?關(guān)鍵字 向左查找
注:
如果第一次找的關(guān)鍵字不是您想要的,可以一直按n會(huì)往后尋找到您要的關(guān)鍵字為止
// 查找過程中忽略大小寫
:set ic 英文猜測(cè)是 ignore case
// 恢復(fù)默認(rèn)配置
:set noic
// 讀文件到當(dāng)前位置
:r file1 英文猜測(cè)是read
// 插入指定行
:line# r filename
// 編輯多個(gè)文件
vi file1 file2 file3 鍵入:n進(jìn)入下一個(gè)文件, 進(jìn)入下一個(gè)文件,不保存對(duì)當(dāng)前文件的修改,鍵入:n!
// 刪除指定行
:#,#d 例::2,5d 刪除2至5行
//替換
:s/關(guān)鍵字/替換內(nèi)容/g %s為全文替換
替換/時(shí)要用\轉(zhuǎn)義
:%s/^M//g : 刪除DOS方式的回車^M 注意:“^M”不是“^”加上“M”,而是“Ctrl+v”和“Ctrl+M”生成。
:10,20s/abc/www/g 將10-20行里的abc替換為www
:g/^s*$/d : 刪除所有空行
// 跳轉(zhuǎn)
:# #號(hào)表示一個(gè)數(shù)字,例:15,再回車,就會(huì)跳到文章的第15行
// 開啟目錄瀏覽器
:Ex 注意首字母E是大寫的
:Sex 在一個(gè)分割的窗口中開啟目錄瀏覽器
// 大小寫轉(zhuǎn)換
guu 行小寫
gUU 行大寫
// 把整個(gè)文章全部小寫(ft!bt!)
ggguG
// 跳到最后修改的那一行
'. 跳到最后修改的那一行
`. 不僅跳到最后修改的那一行,還要定位到修改點(diǎn)
// 命令歷史的窗口
q/ 搜索命令歷史的窗口
q: 命令行命令歷史的窗口
}
刪除重復(fù)行的函數(shù)
function! Del()
if getline(".") == getline(line(".") - 1)
norm dd
endif
endfunction
:g/^/ call Del() #使用該函數(shù)的一個(gè)例子
命令行執(zhí)行vi命令:
vi -e -c ':%s/GB2312/UTF-8/g' -c ' :x!' rep.sh 命令行執(zhí)行文本替換.