vi vim 刪除命令

2021-08-07 17:51:52 字數 4734 閱讀 8186

刪除一行: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 刪除到下一句的開...