刪除一行:dd
刪除乙個單詞/游標之後的單詞剩餘部分:dw
刪除當前字元:x
游標之後的該行部分:d$
文字刪除
dd 刪除一行
d$ 刪除以當前字元開始的一行字元
ndd 刪除以當前行開始的n行
dw 刪除以當前字元開始的乙個字
ndw 刪除以當前字元開始的n個字
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 游標移至段落結尾
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命令
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 *** 設定***選項。
行合併j 把下面一行合併到本行後面
vi中查詢及替換命令
/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 關閉增量查詢
在vi中刪除
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
在vi中操作frame
c-w c-n 增加frame
c-w c-c 減少frame
c-w c-w 切換frame
c-w c-r 交換兩個frame
vim中的塊操作
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鍵貼上
vi的選項設定
all 列出所有選項設定情況
term 設定終端型別
ignorance 在搜尋中忽略大小寫
list 顯示製表位(ctrl+i)和行尾標誌($)
number 顯示行號
report 顯示由面向行的命令修改過的數目
terse 顯示簡短的警告資訊
warn 在轉到別的檔案時若沒儲存當前檔案則顯示no write資訊
nomagic 允許在搜尋模式中,使用前面不帶「\」的特殊字元
nowrapscan 禁止vi在搜尋到達檔案兩端時,又從另一端開始
mesg 允許vi顯示其他使用者用write寫到自己終端上的資訊
tips
對**自動格式化 gg=g
在vi/vim中,跳到檔案首尾快捷鍵:
檔案開始:shift + g
檔案結束:g g
vi vim 刪除以及其它命令
刪除一行 dd 刪除乙個單詞 游標之後的單詞剩餘部分 dw 刪除當前字元 x 游標之後的該行部分 d 文字刪除 dd 刪除一行 d 刪除以當前字元開始的一行字元 ndd 刪除以當前行開始的n行 dw 刪除以當前字元開始的乙個字 ndw 刪除以當前字元開始的n個字 d 與d 同義 d 刪除到下一句的開...
vi vim 刪除以及其它命令
from 刪除一行 dd 刪除乙個單詞 游標之後的單詞剩餘部分 dw 刪除當前字元 x 游標之後的該行部分 d 文字刪除 dd 刪除一行 d 刪除以當前字元開始的一行字元 ndd 刪除以當前行開始的n行 dw 刪除以當前字元開始的乙個字 ndw 刪除以當前字元開始的n個字 d 與d 同義 d 刪除到...
vi vim 刪除以及其它命令
刪除一行 dd 刪除乙個單詞 游標之後的單詞剩餘部分 dw 刪除當前字元 x 游標之後的該行部分 d 文字刪除 dd 刪除一行 d 刪除以當前字元開始的一行字元 ndd 刪除以當前行開始的n行 dw 刪除以當前字元開始的乙個字 ndw 刪除以當前字元開始的n個字 d 與d 同義 d 刪除到下一句的開...