vi / vim 刪除以及其它命令

 

 

刪除一行:ddhtml

 

刪除一個單詞/光標以後的單詞剩餘部分:dwvim

 

刪除當前字符:x緩存

 

光標以後的該行部分:d$.net

 

 

文本刪除htm

dd 刪除一行對象

d$ 刪除以當前字符開始的一行字符blog

 

ndd 刪除以當前行開始的n行ip

dw 刪除以當前字符開始的一個字get

ndw 刪除以當前字符開始的n個字it

 

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{ 刪除到某個段落的開始位置
d7{ 刪除到當前段落起始位置以前的第7個段落位置
dd 刪除當前行
d/text 刪除從文本中出現「text」中所指定字樣的位置,
一直向前直到下一個該字樣所出現的位置(但不包括該字樣)之間的內容
dfc 刪除從文本中出現字符「c」的位置,一直向前直到下一個該字符所出現的位置(包括該字符)之間的內容
dtc 刪除當前行直到下一個字符「c」所出現位置之間的內容
D 刪除到某一行的結尾
d$ 刪除到某一行的結尾
5dd 刪除從當前行所開始的5行內容
dL 刪除直到屏幕上最後一行的內容
dH 刪除直到屏幕上第一行的內容
dG 刪除直到工做緩存區結尾的內容
d1G 刪除直到工做緩存區開始的內容

 

 

在Vi 中移動光標

  k        上
h   l    左  右
  j        下

^        移動到該行第一個非空格的字符處
w        向前移動一個單詞,將符號或標點看成單詞處理
W        向前移動一個單詞,不把符號或標點看成單詞處理
b        向後移動一個單詞,把符號或標點看成單詞處理
B        向後移動一個單詞,不把符號或標點看成單詞處理
(        光標移至句首
)        光標移至句尾
{        光標移至段落開頭
}        光標移至段落結尾
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 xxx  設置XXX選項。

行合併

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

 

 

 

from:http://dsec.pku.edu.cn/~jinlong/vi/Vi.html

 

from:http://www.caole.net/diary/vim.html#sec-1

相關文章
相關標籤/搜索