vi的基本操作
-
如果只鍵入vi,沒有檔案名,也能進入vi,退出命令時輸入檔案名才能 被存入磁盤,
-
vi +行號 檔案名進入vi后,游標處于特定某行上,如果去掉“+”號后面數字,游標處于檔案最末行 -
vi +/模式字串 檔案名模式識別匹配,在命令中指定一個字串,進入vi后,游標處于檔案中第一個與指定模式串相匹配那行,所有匹配的字串被高亮, -
:set nohlsearch末行模式下,取消高亮顯示 -
vi 需要打開檔案的通配符可以編輯多個檔案,在vi命令中寫入要操作的檔案即可,例如:vi *.c打開當前目錄下所有C檔案,- 檔案之間切換
Ctrl + 6下一個檔案:bn下一個檔案:bp上一個檔案
- 檔案之間切換
-
vi +/main *.h *.c打開程式的所有源檔案,并且將顯示位置定位在main函式 -
文本插入操作:
-
插入文本命令
i將文本插入游標前I將文本插入當前行的行首
-
追加文本命令
a將新文本追加到游標當前所在位置之后A將新文本追加到所在行行尾
-
空行插入命令
-
o在游標所在行下一行插入一個空行,游標置于該行行首 -
O在游標所在行上一行插入一個空行,游標置于該行行首
-
-
-
文本洗掉操作(命令模式下):
x洗掉游標處的字符,在x之前加上一個數字n,則洗掉從游標所在位置開始向右的n 個字符X洗掉游標前面的字符,在x之前加上一個數字n,則洗掉從游標前面那個字符開始向 左的n個字符dd洗掉游標所在整行,在dd前加入一個數字n,洗掉當前行及其后n-1行的內容D或d$洗掉從游標所在處開始到行尾的內容d0洗掉從游標前一個字符開始到行首的內容dw洗掉一個單詞,若游標在某詞中間,從游標所在位置開始刪至詞尾,dw之前加上n,表示洗掉n個指定的單詞d(洗掉到上一句開始的所有字符d)洗掉到下一句開始的所有字符d{洗掉到上一段開始的所有字符d}洗掉到下一段開始的所有字符d<CR>洗掉包括當前行在內的兩行字符
-
文本復制操作:
yy復制游標所在的整行,在yy前加一個數字n,可復制當前行及其后n-1行內容,Y或y$復制從游標所在處到行尾的內容yw復制一個單詞,若游標在某單詞中間,則從游標所在位置開始復制到詞尾,在yw前加一個數字n,表示復制n個指定的單詞,y)復制到下一句開始的所有字符y}復制到下一段開始的所有字符y<CR>復制包括當前行在內的兩行內容
-
文本粘貼命令:
p粘貼當前緩沖區的內容
-
文本選擇命令:
v命令列下進行文本選擇,起始處按v進入塊選擇模式,然后移動到塊尾,之間部分被高亮顯示V文本第一行按V,然后移動游標到塊的最后一行,之間所有行被高亮顯示
-
撤銷命令:
u撤銷上一次所做的操作,多次使用u命令會一步一步依次撤銷先前做過的操作U一次性撤銷自上次移動到當前行所做過的所有操作,再使用一次U則撤銷先前U命令所做的操作,恢復被撤銷的內容
-
重復命令:
.文本編輯時碰到機械地重復一些操作,可以讓用戶方便地再執行一次前面剛完成的某個復雜命令
-
推出vi操作:
:q
-
:q!無論檔案是否改變都會強行推出vi編輯器:w 新檔案名vi保存當前編輯檔案,但并不退出,而是繼續等待用戶輸入命令,使用命令時,可以再給當前編輯檔案起一個新的檔案名,相當于該檔案另存為一個新的檔案
-
:w!新檔案名命令與上面相同,不同的是,即使指定的新檔案存在,編輯器也會用當前檔案對其進行替換:wqvi將先保存檔案,然后退出vi回傳shell
-
:x若當前檔案曾被修改過,則vi會保存該檔案,否則vi直接退出,不保存該檔案
vi增強操作
-
替換命令:
r將當前游標所指的字符替換為提供的字符,可以在該命令前加上數字n,表示從當前字符開始的n個字符替換為提供的字符R讓vim進入replace模式,此模式下,每個鍵入的字符都會替換當前游標字符,鍵入結束該模式
-
游標移動:
- 基本游標移動命令
h向左移動一個字符l向右移動一個字符j向下移一行k向上移一行
- 按行移動游標
H將游標移至當前螢屏的第一行,而不是整個檔案的第一行,H命令之前加上數字n,則將游標移至第n行行首M該命令將游標移至螢屏顯示檔案的中間的行首,若螢屏已經充滿,則移動到螢屏的中間行L游標移至螢屏顯示檔案的最底行的行首,L命令之前加上數字n,游標移至從螢屏底部算起第n行的行首G全文范圍內移動游標,此時游標移動范圍不再受螢屏的限制
- 按字移動游標
w和Ww將游標右移至下一個字的字首,W指兩個空格之間的任何內容e和Ee如果游標起始位置處于字內,則游標移至本字字尾,如果游標在字尾,則移動到下一個字的字尾,E所指的字是指兩個空格之間的內容b和Bb如果游標處于字內,則將游標移至本字字首,如果處于字首,則將游標移至上一個字字首,
- 按句移動游標
(將游標移至上一個句子的開頭)將游標移至下一個句子的開頭
- 按段移動游標(段是被定義以一個空白行開始和結束的片段)
{將游標向前移至上一個段的開頭}將游標向后移至下一個段的開頭
- 文本行的移動
>將指定的正文行向右移動,通常是右移8個空格,指定的數字是需要移動的行數目,并不是要右移的空格數,通常將代碼整體右移,例>3 回車<效果與上述相同,方向相反>>將游標所在行右移8個空格,如果在>>命令之前給出數字n,則表示游標當前行及其下面的n-1行都右移8個空格<<效果與上述相同,方向相反
- 文本的異行行動(末行模式)
m允許用戶將某一行的文本內容移動到指定位置,使用方法imj,把第i行移至第j行下方
- 螢屏滾動
Ctrl+u將螢屏向前(檔案頭方向)翻滾半屏Ctal+d將螢屏向后(檔案尾方向)翻滾半屏Ctrl+f將螢屏向檔案尾方向翻滾一整屏Ctrl+b將螢屏向檔案首方向翻滾一整屏- 可以在命令之前加上一個數字n,表示螢屏向前或者向后翻滾n行,或者螢屏向前或者向后翻滾n頁,
- 查找命令(末行模式)
/string/命令從游標處開始向后尋找字串string?string?命令從游標處開始向后尋找字串stringn重復上一條命令,繼續向下檢索N重復上一條檢索命令,但檢索方向和上一次相反g/string使游標停止在第一個檢索到string串的首行
- 替換命令
:[range]/s/s1/s2/[option][range]表示檢索范圍,省略時表示當前行“1,10”表示第1行到第10行“%”表示整個檔案“.,$”從當前行到檔案尾
s為替換命令,s1是要被替換的串,s2為替換的串[option]/g表示在全域檔案中進行替換,/c表示在每次替換之前需要用戶進行確認,省略時僅對每行第一個匹配串進行替換\<word替換以word開始的單詞的word部分- 例如,
%s/\<int/char表示以int開始的單詞的int部分換成char
- 例如,
- 視窗的切分
:split 檔案名split也可以簡寫為sp,這時視窗切分為上下兩半,下部分對應原來檔案,上半部分對應新打開檔案,Ctal+w,然后j移動游標到下一個視窗Ctral+w,然后k移動游標到上一個視窗Ctral+w,然后q關閉當前視窗Ctral+w,然后w移動游標到另一個視窗
- 設定環境
:set nu (nonu)顯示行號(或者不顯示行號):set hlsearch (nohlsearch)設定搜尋字串反白顯示(或者不反白顯示):set autoindent顯示程式語法自動縮進:set backup (nobackup)自動存盤備份檔案(或者不自動備份檔案):set all顯示所有的選項:syntax on (off)實作程式語法高亮顯示(或者不高亮顯示):set ignorecase (noignorecase)忽略大小寫(或者區分大小寫)
- 基本游標移動命令
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/116705.html
標籤:Linux
上一篇:CentOS 鏡像
