西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程其它教程 → vi-vim常用命令大全

vi-vim常用命令大全

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2013/4/28 17:02:16字體大。A-A+

作者:西西點(diǎn)擊:1986次評論:0次標(biāo)簽: vim

  • 類型:電子資料大。83.2M語言:中文 評分:5.0
  • 標(biāo)簽:
立即下載

vi就是linux命令行下的最著名的編輯器之一,Vim常被稱作“程序員的編輯器”,其功能如此強(qiáng)大以致許多人認(rèn)為它就是個(gè)完整的IDE。不過現(xiàn)在實(shí)際使用的都是vim,它是vi的改進(jìn)版本,所以現(xiàn)在的vi基本上就是vim了。代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。和Emacs并列成為類Unix系統(tǒng)用戶最喜歡的編輯器。

1、簡介

在UNIX系統(tǒng)中,創(chuàng)建和修改配置文件、shell腳本、初始化文件、編寫程序都離不開VI。

1      vi[1]屬于兩個(gè)主要的UNIX規(guī)范:POSIX和單一UNIX規(guī)范。

2      vi編輯器由Bill Joy于1976年創(chuàng)建。

3      vi是一種面向屏幕的編輯器。

4      vi來源于另一個(gè)編輯器ex。

5      vim是vi的增強(qiáng)版。

2、使用幫助

學(xué)習(xí)vi,學(xué)會使用聯(lián)機(jī)手冊或幫助命令是非常重要的。Unix有兩個(gè)最重要的文檔資料系統(tǒng):Unix手冊和Info(GNU項(xiàng)目的官方文檔資料系統(tǒng))。

常用命令:

1      man vi     

2      vi --help

3      info vi

對于較長的說明頁,可使用分頁程序分頁顯示。常用的分頁程序有:less、more、pg。例如:man cp | less

查找說明書頁的其它方法(基于web):

1      使用google搜索:(一定要確保包含雙引號)

○    “man vi ”

○    “man pages” vi

   2 另外一種基于web的說明書頁的方法是xman,xman是一個(gè)基于GUI的程序,它充當(dāng)說明書頁瀏覽器。在命令行啟動xman:xman&。

Vi的幫助命令::help

3、模式和命令

3.1 輸入模式和命令模式

命令模式[2](command mode):所鍵入的鍵都被解釋成命令。

輸入模式(input mode):鍵入的任何內(nèi)容都直接插入到編輯緩沖區(qū)中。

當(dāng)離開輸入模式時(shí),使用Esc鍵切換到命令模式。

了解所處模式的方法:

       :set showmode

3.2 vi和ex命令

vi和ex是同一個(gè)程序的兩種不同的表現(xiàn)形式。也就是說可以同時(shí)使用vi和ex命令。

vi:

①大多數(shù)vi命令都是單字母雙字母的表現(xiàn)形式。

②vi鍵入時(shí)命令不回顯。

ex:

①ex命令比vi命令長。

②所有的ex命令都以一個(gè):(冒號)開頭。鍵入:后,vi就將光標(biāo)移動到命令行上(屏幕最底部)。

③ex命令的每個(gè)字符都將回顯。

④ex命令結(jié)束,必須按下鍵盤。


4、啟動與編輯vi-vim

4.1編輯一個(gè)文件

語法:vi 【-rR】 【file……】

常用命令:

1      vi file                 啟動vi,編輯指定的文件

2      vi -R file             以只讀模式啟動vi

3      view file              以只讀模式啟動vi (vi -R file等同于view file)

4      vim file                   啟動vim,編輯指定的文件

5      vim -C      file          以兼容模式啟動vi

4.2編輯多個(gè)文件

語法:vi a.txt b.txt c.txt

切換文件: :next

4.3 編輯技巧

編輯技巧:

1      vi +[num] file          打開文件,并將光標(biāo)置于第n行首

2      vi + file                   打開文件,并將光標(biāo)置于最后一行首

3      vi +/pattern file       打開文件,并將光標(biāo)置于第一個(gè)與pattern匹配的字符串

4      vi +?pattern file       編輯工作從匹配pattern的最后一行開始

5      vi -r file                 (-r 即recover,恢復(fù))

4.4 寫入文件

常用命令:

1      :w                      將數(shù)據(jù)寫入到原始文件

2      :w file                     將數(shù)據(jù)寫入到指定文件

3      :w >> file                將數(shù)據(jù)追加到指定文件

4      :r [filename]            在編輯的數(shù)據(jù)中,讀取另一個(gè)檔案的數(shù)據(jù),亦將檔案內(nèi)容加到游標(biāo)所在行的后面

5      :n1,n2 w [filename]      將n1到n2的內(nèi)容存儲成另一個(gè)檔案。

4.5 退出文件、停止vi

常用命令:

1      :q             退出文件

2      :q!            不保存數(shù)據(jù),強(qiáng)制退出

3      :wq           保存退出文件

4      shift+ZZ    停止vi

5      ZQ            無條件退出

4.6 vi與vim命令行常用選項(xiàng)

-b                     以二進(jìn)制模式編輯文件

-c command      啟動后立即運(yùn)行給定的ex命令

-d                     以diff模式運(yùn)行

-o[num]            啟動vim時(shí)打開num個(gè)窗口

-O[num]            啟動vim時(shí)打開num個(gè)水平排列

-r                      恢復(fù)模式

-R                     于只讀模式中編輯文件

-t tag                編輯包含tag的文件,并將光標(biāo)置于tag位置

-T type              設(shè)置可選終端類型


5 插入

輸入模式:

操作鍵說明
i 在當(dāng)前光標(biāo)位置前插入數(shù)據(jù)
a 在當(dāng)前光標(biāo)位置后插入數(shù)據(jù)
I 在當(dāng)前行開頭處插入數(shù)據(jù)
A 在當(dāng)前行末尾處插入數(shù)據(jù)
o 在當(dāng)前行下面出入一行
O 在當(dāng)前行上面插入一行

6、移動和跳轉(zhuǎn)

6.1獲取光標(biāo)當(dāng)前位置

獲取方式:^G

6.2 緩沖區(qū)移動

操作鍵說明
^F 向下移動一屏
^B 向上移動一屏
n^F 向下移動n屏
n^B 向上移動n屏
^D 向下移動半屏
^U 向上移動半屏
n^D 向下移動n行
n^U 向上移動n行
^E 向屏幕頂端多滾動一行
^L 向屏幕底端多滾動一行
zENTER 將光標(biāo)所在的行移動到屏幕頂端
z.將光標(biāo)所在的行移動到屏幕中間
z-將光標(biāo)所在的行移動到屏幕底端

6.3 光標(biāo)移動

操作鍵說明
h        將光標(biāo)向左移動一個(gè)位置
j      將光標(biāo)向下移動一個(gè)位置
k          將光標(biāo)向上移動一個(gè)位置
l        將光標(biāo)向右移動一個(gè)位置
- 將光標(biāo)移動到上一行的開頭
+      將光標(biāo)移動到下一行的開頭
^ 將光標(biāo)移動到當(dāng)前行的第一個(gè)非空格/制表符的字符上
數(shù)字0 將光標(biāo)移動到當(dāng)前行的開始
$ 將光標(biāo)移動到當(dāng)前行的末尾
w W 將光標(biāo)移動到下一個(gè)單詞的詞首(大寫字母,略過空格)
e E 將光標(biāo)移動到下一個(gè)單詞的詞尾(大寫字母,略過空格)
b B 將光標(biāo)移動到上一個(gè)單詞的詞首(大寫字母,略過空格)
 向前移動到下一個(gè)句子
 向后移動到上一個(gè)句子
{ 向前移動到下一個(gè)段落
} 向后移動到上一個(gè)段落
H 將光標(biāo)移動到屏幕頂部
M 將光標(biāo)移動到屏幕中間
L 將光標(biāo)移動到屏幕的最后一行
fcharacter 單字符搜索移動(f為搜索命令,character為要搜索的字符)
Fcharacter 單字符左方向搜索移動
% 已匹配一個(gè)括號為目的的移動

說明:

1.命令計(jì)數(shù):在移動命令前加數(shù)字,如3j,可實(shí)現(xiàn)向下移動三行。

   語法:ncommand   (n為數(shù)字,command為移動命令)

2. 規(guī)律:一個(gè)命令的大寫字母形式會做同樣的事情,但是方向相反。

6.4 行號跳轉(zhuǎn)

顯示行號:     :set number

關(guān)閉行號:     :set nonumber

命令說明
nG 、   :n 跳轉(zhuǎn)到第n行
1G 、 gg  、 :1 跳轉(zhuǎn)到編輯緩沖區(qū)的第一行
G   、  :$ 跳轉(zhuǎn)到編輯緩沖區(qū)最后一行

附加:

另一個(gè)移動到某行的辦法是:在命令 前加一個(gè)命令計(jì)數(shù),如 50% 會把光標(biāo)定位在文件中間。

6.5 跳轉(zhuǎn)到前一位置

返回前一位置:

a)      ``(兩個(gè)反引號)

b)      ‘’(兩個(gè)單引號)

6.6 使用名稱標(biāo)示任意行,進(jìn)行跳轉(zhuǎn)

           用不可見的名稱標(biāo)識任意行,當(dāng)需要時(shí)使用此名稱跳轉(zhuǎn)到這一行。

       可以鍵入m標(biāo)示這一行,后跟一個(gè)字母,這個(gè)字母就是這一行的名稱。例如:用”b“標(biāo)示這一行,可以鍵入mb。為了跳轉(zhuǎn)到這一行,可以鍵入一個(gè)反引號或單引號,后面跟這一行的名稱。如:`b 或 ’b


7 搜索

7.1搜索常用命令

向前搜索: /

向后搜索: ?

常用命令:

1      /           向前重復(fù)搜索

2      ?             向后重復(fù)搜索

3      /regex       向前搜索指定的正則表達(dá)式

4      ?regex     向后搜索指定的正則表達(dá)式

5      n              重復(fù)上一條/或?命令,搜索方向相同

6      N              重復(fù)上一條/或?命令,搜索方向相反

附: 

      命令歷史記錄:用上下箭頭來查找用過的搜索

7.2查找字符串便捷方式

*命令 : 將光標(biāo)定位于字符串,按下*鍵,vi將會取當(dāng)前光標(biāo)所在的字符串并將它作用目標(biāo)字符串進(jìn)行搜索。

#命令: 與*相反。

%:搜索與當(dāng)前花括號、圓括號、方括號成對的符號。

7.3 查找整個(gè)字符串

方法:

使用\<  \>進(jìn)行匹配。

例子:/\

8 文本改動

8.1替換之vi命令

r:精確替換一個(gè)字符(不進(jìn)入輸入模式)。

R:替換多個(gè)字符(以覆蓋方式替換)。(先將光標(biāo)移動到希望開始替換的位置,然后輸入R。切換到輸入模式,隨后鍵入的每個(gè)字符都將替換當(dāng)前行上的一個(gè)字符。)

s:允許使用多個(gè)字符替換一個(gè)單個(gè)的字符(以插入方式替換)。

C:允許替換從當(dāng)前光標(biāo)位置到本行末尾的所有字符。

 cc:以插入方式替換當(dāng)前整行。

cmove:以插入方式從當(dāng)前光標(biāo)處替換到move所給出的位置處。

8.2替換之ex命令_常用方法

ex命令:

語法::s/pattern/replace/   其中,pattern是替換的模式,replace是替換的文本。

使用方法總結(jié):

1      :s/pattern/replace/           替換當(dāng)前行

2      s/pattern/replace/g              替換當(dāng)前行所有

3      :lines/pattern/raplace/          替換指定行

4      :line,lines/pattern/replace/     替換指定范圍內(nèi)的行

5      :%s/pattern/replace/            替換所有行

6      :.,$s/pattern/replace/g          從當(dāng)前行末尾至編輯緩沖區(qū)的末尾進(jìn)行相同的替換

7      :line,.s/pattern/replace/g       從編輯緩沖區(qū)的指定位置到當(dāng)前行進(jìn)行相同的替換

說明 :

1      所有的ex命令都以:開頭。

2      :s只替換當(dāng)前行上該模式的第一個(gè)匹配項(xiàng)。

3      為了替換所有匹配項(xiàng),需在該命令的末尾鍵入字母g。例如::s/UNIX/linux/g

4      替換前進(jìn)行確認(rèn),可在命令末尾添加c。例如::s/UNIX/linux/cg

5      .點(diǎn)號代表當(dāng)前行。$代表緩沖區(qū)最后一行。%代表編輯緩沖區(qū)內(nèi)所有的行。

8.3 交換字符

交換兩個(gè)字符的位置:   xp

交換兩行的位置:ddp  

調(diào)換兩個(gè)單詞(光標(biāo)開始處于第一個(gè)單詞的左邊):deep


9、刪除

9.1 刪除命令

vi命令操作鍵
x 刪除當(dāng)前光標(biāo)處的字符
X 刪除光標(biāo)左邊的字符
D 刪除從當(dāng)前光標(biāo)到本行末尾的字符
J 刪除兩行之間的換行符 (亦可用于合并兩行)
dmove 刪除從當(dāng)前光標(biāo)到move所給位置的字符
dd 刪除當(dāng)前行
ex命令 
:lined 刪除指定行
:line,lined 刪除指定范圍內(nèi)的行

9.2 常用的刪除組合命令

說明:操作符命令+位移命令

1      nx                  刪除多個(gè)字符(n為刪除的字符個(gè)數(shù))       

2      dw                  刪除1個(gè)單詞

3      d10w               刪除10個(gè)單詞

4      d10W              刪除10個(gè)單詞,忽略標(biāo)點(diǎn)符號。

5      db                   向后刪除一個(gè)單詞

6      d2)                刪除兩個(gè)句子

7      d5}                  刪除5個(gè)段落

8      dG 或 :.,$d        刪除當(dāng)前行到編輯緩沖區(qū)末尾的所有行

9      dgg 或 d1G 或:1,.d       刪除當(dāng)前行到編輯緩沖區(qū)開頭的所有行

10    :1,$d 或 :%f                刪除整個(gè)編輯緩沖區(qū)

11    d/word                       刪除從光標(biāo)所在位置到單詞word的所有文本

12    .,/word/d         刪除從光標(biāo)所在位置到單詞word的所有文本

13    df x                 刪除至當(dāng)前行中x所在的位置

14    d^                   刪除至該行的開始處

9.3插入模式中刪除操作

^U                         刪除當(dāng)前行

^H                         刪除前一個(gè)字符

^W                        刪除前一個(gè)詞

9.4 撤銷或重復(fù)改變

vi命令:

1      u                     撤銷上一命令對編輯緩沖區(qū)的修改

2      U                     恢復(fù)當(dāng)前行(即一次撤銷對當(dāng)前行的全部操作)

3      .點(diǎn)號                重復(fù)上一命令對編輯緩沖區(qū)的修改

9.5 恢復(fù)刪除

語法:"1p(P) 

說明:

1      1為緩沖區(qū)的編號。

2      p在當(dāng)前行的下面插入,P在當(dāng)前行的上面插入。

9.6 復(fù)制上一次刪除

命令說明
p 復(fù)制上一次刪除的內(nèi)容,插入到光標(biāo)的后面/下面
P 復(fù)制上一次刪除的內(nèi)容,插入到光標(biāo)的前面/上面

10 復(fù)制

10.1 接出(復(fù)制單詞、句子、段落)

當(dāng)在不刪除文本的情況下將文本復(fù)制到無名緩沖區(qū)時(shí),稱為接出(yank)。(因此將命令命名為y、yy、Y)。

步驟:

1      使用y、yy、Y將文本由編輯緩沖區(qū)復(fù)制到無名緩沖區(qū)中,但不刪除原始文本。

2      將光標(biāo)移動到希望插入文本的位置。

3      使用P或p命令執(zhí)行插入。

常用命令操作鍵
yw 接出一個(gè)單詞
y10w 接出10個(gè)單詞
y10W 接出10個(gè)單詞,忽略標(biāo)點(diǎn)符號
yb 向后接出一個(gè)單詞
y2) 接出兩個(gè)句子
y2} 接出5個(gè)段落
yy 接出一行
10yy 接出10行
y$ 接出從當(dāng)前字符到本行末尾的的文本
y0 接出從當(dāng)前字符到這一行開頭之間的文本

10.2 復(fù)制與移動行

語法:

       :x,ycoz

       :x,ymz

說明:

1      x,y,z都是行號。x,y是源行,z是目標(biāo)行號。

2      源行x,y被復(fù)制或移動,插入到z行的下面。

3      :m刪除原始行,:co不刪除原始行。

例子:

1      :2co4        復(fù)制第2行,插入到第4行下面

2      :2,4co8            復(fù)制第2行到第4行,插入到第8行下面

3      :2m4        移動第2行,插入到第4行下面

4      :2,4m8             移動第2行到第4行,插入到第8行下面。


11 使用縮寫

要為經(jīng)常使用的單詞或表達(dá)式創(chuàng)建縮寫,可使用:ab命令。

1      創(chuàng)建縮寫,語法::ab [ short long ]

2      刪除縮寫,語法: :una short

12 命令補(bǔ)全與文本補(bǔ)全

命令補(bǔ)全:Tab

關(guān)鍵字補(bǔ)全:^N ^P

13 shell命令

14.1 執(zhí)行shell命令

1      :!command      暫停vi,執(zhí)行制定的shell命令

2      :!! pause vi      執(zhí)行上一條shell命令

3      :sh              暫停vi,啟動一個(gè)新的shell

4      :!csh           暫停vi,啟動一個(gè)新的c-shell

14.2 使用shell命令處理數(shù)據(jù)

1      n!! command          對n行數(shù)據(jù)執(zhí)行command

2      !move command    對當(dāng)前光標(biāo)至move所指定的位置的數(shù)據(jù)執(zhí)行command

3      !move fmt              格式化當(dāng)前光標(biāo)到move所指定的行


15、顯示與設(shè)置選項(xiàng)

15.1 顯示選項(xiàng)

1      語法:                    :set [option]

2      顯示所有選項(xiàng)的值: :set all

3      顯示一個(gè)選項(xiàng)的值: :set option?

15.2 設(shè)置選項(xiàng)

語法::set [no]option..... :set option[=value]...

15.3常用設(shè)置命令

設(shè)置行號顯示與否:             簡寫 :set nu  / :set no nu

設(shè)置自動縮進(jìn):            簡寫 :set ai / :set no ai

設(shè)置縮進(jìn)寬度:            簡寫 :set sw=4

設(shè)置大小寫忽略與否:   簡寫 :set ic / :set no ic

16、初始化文件與配置文件

16.1初始化文件

vi的初始化文件:.exrc

vim的初始化文件:vimrc

16.2配置文件

linux配置文件:             /usr/share/vim/vimrc

查找Windows配置文件:      scriptnames

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)