VI常用命令總結

2021-05-21 18:00:54 字數 4770 閱讀 6656

vim有3中主要的模式:

1.normal mode:當進入vim時,預設的模式就是normal mode。在此模式下,無法輸入任何文字,不過可以利用按鍵命令來執行許多操作命令,例如移動游標位置、複製、刪除。

2.insert mode:進入vim輸入a、i、或o鍵。即可進入insert mode,此模式下可以輸入文字內容。

3.command-line mode:在norma lmode中輸入「:」即會進入command-line mode,在此模式下,可以做一些與輸入文字無關的事,例如搜尋字串、儲存檔案或結束編輯等。

在normal mode下:

在command-line mode下:

e 檔案的路徑及名稱:開啟指定檔案

vi的常用操作命令

輸入模式命令

在游標後輸入文字

在當前行末尾輸入文字

在游標前輸入文字

在當前行開始輸入文字

在當前行後輸入新一行

在當前行前輸入新一行

還原u:按此鍵就是在執行undo命令,可取消前一次的操作

^r:按此鍵就是執行redo命令,可以恢復剛才undo的操作

游標移動命令

fx 往右移動到 x 字元上

fx 往左移動到 x 字元上

tx 往右移動到 x 字元前

tx 往左移動到 x 字元後

(注意:以上四個命令中,其中x是鍵入的字元)

; 分號,配合 f 和 t 使用,重複一次

, 逗號,配合 f 和 t 使用,反方向重複一次

% - 移至匹配的括號

shift +g 跳到檔案尾

xp 交換兩個字元位置

ddp 上下兩行調換

:g/^/m0/ 把檔案內容反轉

刪除操作命令

刪除游標所在的字元

刪除游標所在的單詞

刪除游標至行尾的所有字元

同刪除當前行

可在刪除命令前加上數字,如<5x>表示刪除5行。

nd:n為數字,如按3d,再按下↑鍵,則刪除游標上方的3行,再包括本身1行,共刪除4行。若按下↓鍵,則刪除游標下方3行再包括本身1行,共4行。

ndd:若按3dd鍵,表示刪除當前游標位置的1行和下面的2行。

x:刪除游標所在位置的前乙個字元,與d+←鍵一樣

nx:按4x鍵,表示刪除游標位置後的3個字元和游標本身所在的字元

nx:按4x鍵,表示刪除游標位置之前的4個字元(不包括游標的字元)

拷貝與貼上命令

/yw 將游標所在單詞拷入剪貼簿

y$ 將游標至行尾的字元拷入剪貼簿

y 同yy 將當前行拷入剪貼簿

p 將剪貼簿中的內容貼上在游標後

p 將剪貼簿中的內容貼上在游標前

nyy:其中n為數字鍵,表示要複製的行數,若按3yy,則連同游標所在的位置的一行,與下面2行一起複製

yw:可複製游標所在位置到整個單詞結束的字元

nyw:n表示要複製的單詞數目,若按3yw,則會將目前游標所在位置到單詞結束,以及後面的2個字一起複製

改變與替換操作命令

替換游標所在的字元

替換字串行

替換乙個單詞

同替換游標所在的前一字元

替換自游標位置至行尾的所有字元

同替換當前行

全文替換:「g/被替換字串/s//替換字串/g」

>>

<<

查詢命令

向前查詢abc

<?abc> 向後查詢abc

向前繼續查詢 將游標移到下乙個找到的字串上

向後繼續查詢 將游標移到上乙個找到的字串上

r:替換游標所在的位置的字元。修改內容不一定要進入insert mode,在normal mode中,只要將游標移到要更改的字元上,然後按r鍵,就可以輸入要查詢的字元了。

r:連續替換游標所在的位置的字元,按esc鍵停止替換

cc:按cc鍵可以替換游標所在的那一行

替換字串: 當要將文章中的某乙個字串全部替換時(例如將所有的temp替換成tmp),使用「:g/temp/s//tmp/g」或「:1,$stemp/tmp /g」命令,可立刻將所有的「temp」替換成「tmp」字串。如果不是所有的「temp」字串都要替換時,可用「:g/temp/s//tmp /gc」或「:1/,$stemp/tmp/gc」命令。則找到每乙個「temp」字串時,都會將整行顯示在螢幕的下方,可輸入「y」或「n」決定是否要替換。

檔案編輯、儲存及退出vi命令

:q 不包存退出

:q! 不儲存強制性退出

:w 儲存編輯

:wfilename 存入檔案filename中

:w!filename 強制性存入檔案filename中

:wq / :x / zz 儲存退出

編輯數個檔案(利用vi filename(s))進入vi後)

:args 顯示編輯名單中的各個檔名

:n 讀入編輯名單中的下乙個檔案

:rew 讀入編輯名單中的第乙個檔案

:e# 讀入編輯名單內的前乙個檔案

:e file  讀入另乙個檔案進vi(此檔案可不在編輯名單內),

若原檔案經修改還沒有存檔,則應先以: w 存檔。

:e! file 強迫讀入另乙個檔案進入vi,原檔案不作存檔動作。

:!command 暫時退出vi並執行shell指令,執行完畢後再回到vi。

:sh 暫時退出vi到系統下,結束時按ctrl + d則回到vi。

vi filename 進入vi並讀入指定名稱的檔案(新、舊檔案均可)。

vi +n filename 進入vi並且由檔案的第幾行開始。

vi +filename 進入vi並且由檔案的最後一行開始。

vi + /word filename  進入vi並且由檔案的word這個字開始。

vi filename( s ) 進入vi並且將各指定檔案列入名單內,第乙個檔案先讀入。

清理掉dos文字中的^m,可以在:1,$s/^m//g,其中^是用ctrl+v上去的m是回車形成的

正規表示式

在查詢、替換命令 使用以下正規表示式元字元,功能強大。

也可用在:g/命令中

& 代表最近匹配串

~ 代表最近替換串

. 任一字元

^ 行首 或 表示 非

$ 行末

/< 詞首

/> 詞尾

* 0次或多次

/( /) 分節指定與其中正則式匹配的部分,在替換時候可以用 /1 /2 /3 ... 引用匹配部分

表示選擇

- 表示範圍 ,例如 [0-9]代表數字,[a-z]代表小寫字母 [^0-9a-za-z] 代表非數字和大小寫字母

/ 前面部分的從 m 次 至 n 次出現,m n 為數值

/ 精確m次出現

/ 大於等於m次出現

2.把c++語言裡 //注釋 修改為 /* */ 格式

:%s//(.*/)$*/1/*///g

3.在建儲存過程的sql文字裡,在每個create procedure procname()

前加上drop procedure procname ; [ ]裡輸入的是乙個空格和tab鍵。

:%s/^[ ]*[cc][rr][ee][aa][tt][ee][ ]*[pp][rr][oo][cc][ee][dd][uu][rr][ee][

]*/([^()*/]/drop procedure /1;ctrl_vctrl_mcreate procedure /1/g

巨集命令

首先,巨集的實質是將命令儲存在暫存器中,如下是錯誤的

qa "ayw

q 暫存器a衝突,巨集挺有用的

vi的配置檔案

另一方面,使用者可以在主目錄中建立.exrc環境檔案,用set打入

選項,每次呼叫vi時,就會讀入.exrc中的指令與設定。下面是

.exrc環境檔案的例項:

set wrapmarging=8

set showmode

set autoindent

set number

vim配置檔案:

set nobackup

set directory=$vim/swp "there stores all vim swap files

set ignorecase smartcase "/c to force vim to search case sensibly.

set linebreak "let vim don't split a word when linewrap, note: line doesn't be split really

if has('multi_byte_ime')

highlight cursor guibg=green guifg=none

highlight cursorim guibg=purple guifg=none

endif

set autoindent

set smartindent

set tabstop=4 "treat as four spaces, stores instead of spaces

set shiftwidth=4 "be used only when "<<" command is pressed

"turn off ime when insert mode and search mode

set iminsert=0

set imsearch=-1

vi常用命令整總結

進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處 vi r...

vi常用命令

1.在進行編寫 時,在格式對起上很有用 第一行,vim使用自動對起,也就是把當前行的對起格式應用到下一行 第二行,依據上面的對起格式,智慧型的選擇對起方式,對於類似c語言編寫上很有用 set autoindent set smartindent c語言對齊方式,最好用它 set cindent 2....

vi常用命令

一 vi的三種模式 3 命令列模式 從一般模式按下 時進入命令列模式。注意 編輯模式和命令列模式不能互相切換,只能通過一般模式切換。二 三種模式常用按鍵說明 1 一般模式下的可用按鈕 最常用的 移動游標 移動游標 上下左右鍵 螢幕向上翻頁 pageup或者ctrl b 螢幕向下翻頁 pagedown...