linux 強大的編輯器之vi

   vi編輯器是一個處理ASCII數據的文本工具。大多數linux發行版都已經默認安裝了vi編輯器。vi是visual interface的縮寫vim是 visual interface improved即增強版的vi,vim默認支持代碼命令加亮,這樣使得文本更易看懂。vi有兩種配置文件一種是全局配置文件 /etc/vimrc,全局配置文件的設置對所有用戶都生效。另一種是用戶配置文件,這個配置文件需要自己手動去創建,如 touch ~/.vimrc,創建在用戶家目錄,並把它創建爲隱藏文件,在這裏的設置,只針對當前用戶自己生效。


1、vi的模式和模式之間的轉換

vi有三種模式,命令模式(command mode)也叫編輯模式、插入模式(Insert mode)和底行模式(last line mode)也叫末行模式,各個模式之間的關係如下圖所示:

vi默認打開就是編輯模式,編輯模式是不能對文本進行任何寫操作的。

(1)編輯模式---->輸入模式:可以如下操作

直接鍵入  i: insert,實現在當前光標所在處轉換爲輸入模式

          I: 在當前光標所在行的行首轉爲輸入模式

          a:append,實現在當前光標所在處字符後面轉換爲輸入模式

          A:在當前光標所在行的行尾轉爲輸入模式

          o:實現在當前光標所在行的下方新建一個空白行並轉換爲輸入模式

          O:在當前光標所在行的上方新建一行,並轉化爲輸入模式

(2)輸入模式----->編輯模式:

   按鍵盤的Esc鍵

(3)編輯模式----->末行模式

  鍵入 :

(4)末行模式----->編輯模式

 連續按兩下Esc鍵

2、編輯模式進行的操作

(1)光標的跳轉:

a)光標在字符間跳轉

    h:左  #h 向左側跳#個字符

    l:右

    j:下

    k:上

b)光標在單詞間跳轉

    w:後一個單詞的詞首

    e:跳至當前或下一個單詞詞尾

    b:跳至當前或前一個單詞詞首

c)光標在句子間跳轉

    ):下一句

    (:前一句

d)光標在段落間跳轉

    }:下一段

    {:前一段

e)光標在行間跳轉:

   1G,gg:跳到行首

    G:行尾

    #G:第n行,#表示行數

f)光標在行內跳轉:

    ^:行首的第一個非空白字符

    $:絕對行尾

    0:絕對行首

(2)翻屏操作

   ctrl+f:向文件尾部翻一屏相當於Pagedown操作

   ctrl+b:向文件首部翻一屏相對於Pageup操作

   ctrl+d:向文件尾部翻半屏

   ctrl+u:向文件首部翻半屏

(3)複製操作,也叫y(yank)操作

    yy:表示複製光標所在行

   #yy:表示複製包括光標所在行及以下#行,#表示數字

    y$:表示複製光標所在處至行尾

    y^:表示複製光標所在處至行首

(4)粘貼操作,也叫p(paste ,put)操作

  複製的是整行:

    p: 在當前光標所在行的下方粘貼;

    P:在當前光標所在行的上方粘貼

 複製的不是整行:

   p: 在當前光標所在處字符的後方粘貼;

   P:在當前光標所在處字符的前方粘貼;

(5)刪除操作,(x,d)

    x:刪除光標後面的單個字符

   #x:刪除光標後面的#個字符,#表示數字

   dw:刪除光標所在的單詞

   db:刪除光標所在處之前的單詞

   de:刪除光標所在處之後的單詞

   d^:刪除光標所在之前的所有字符單詞

   d$:刪除光標所在之後的所有字符單詞

   dd:刪除光標所在處的整行

   #dd:刪除包含光標處的下面幾行,#表示數字

(6)撤銷操作

  如果對之前失誤操作進行撤銷可按u鍵,撤銷之前的操作,默認可以撤回之前的50次操作。當你覺得之前的撤銷操作也需要撤銷,則按crtl+u鍵,對撤銷進行撤銷。

(7)查找操作,直接在編輯模式下輸入/或者?,然後接你要查找的字符

/keyword: 從當前光標所在處向文件尾部查找

?keyword:從當前光標所在處向文件首部查找

n: 下一個,跟查找命令相同的方向

N:前一個,跟查找命令相反的方向


3、輸入模式進行的操作

  當在編輯模式下鍵入(i,I,a,A,o,O)後,文件下方會有-- INSERT -- 字樣,表示現在處於輸入模式,輸入模式對輸入的任何字符都會直接輸入到文件中。


4、末行模式進行的操作

(1)保存退出的操作

  :w  保存

  :q  退出

  :x  保存退出

  :wall 所有的都保存,一般應用在同時打開多個頁面

  :qall 所有的都退出,一般應用在同時打開多個頁面

  :w!  強制保存

  :q!  強制退出

  :wq!  強制保存退出

  :x!   強制保存退出

(2)刪除的操作,在末行模式進行操作可以支持定界

    語法格式  開始行,結束行d

 :. 表示當前光標所在行

 :1 表示第一行

 :# 表示第#行,#表示數字

 :$ 表示最尾行

 :% 表示整個文本

 :1,$d 刪除第一行到最後一行

 :.$d 刪除當前光標直到最尾行

 :%d 刪除整個文本

 :1,+3d 刪除第一行和後面的三行,第一行也包括,所以是刪除四行

(3)查找操作,查找操作和在編輯模式下的查找操作一樣,支持模式匹配

/keyword: 從當前光標所在處向文件尾部查找

?keyword:從當前光標所在處向文件首部查找

n: 下一個,跟查找命令相同的方向

N:前一個,跟查找命令相反的方向

(4)修改替換操作,也支持模式匹配

語法格式

:地址定界s/查找模式/替換成的內容/gi

 /表示分隔符,可以爲@、#等特殊容易區別的符合

 g global全局的,i ignore 不區分大小寫

eg:

刪除行首開頭的#:
:%s@^#@@
刪除行首開頭的#及後面緊跟的空白字符;
:%s@^#[[:space:]]*@@
爲空白字符開頭的行的行首加上#;
:%s@^[[:space:]]@#&@
把down改成up;
:%s@down@up@g
爲指定範圍內的行的行首添加#;
:1,10s@^@#@g

5、窗口屬性定義,在末行模式 :(在末行模式直接輸入set可以看set的幫助命令),no代表取反的意思

顯示行號:

set nu

set nonu

自動縮進:

set autoindent,set ai

set noai

不區分大小寫

set ignorecase, set ic

set noic

顯示匹配的括號

set showmatch,set sm

set nosm

語法着色

syntax on

syntax off

搜索高亮顯示

set hlsearch

set nohlsearch  

可以直接把窗口定義的屬性寫到vim的配置文件中。


6、vim其它的支持

(1)vim可視化模式

visual模式

    v: 選中光標劃過的字符

    V:選中光標劃過的行,整行選取

    Esc, Esc:回到編輯模式

(2)同一文檔窗口分割:

   Ctrl+w,s: 水平分割      Ctrl+w, 箭頭(上下),表示切換

          在末行模式下輸入q退出

Ctrl+w,v: 垂直分割      Ctrl+w, 箭頭(左右),表示切換

     在末行模式下輸入q退出








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章