vim編輯器的用法

vim編輯器的用法

1、vi的基本概念

    vi可以分為三種模式,分別是命令模式(command mode)、輸入模式(Insert mode)和末行模式(last line mode),各模式的功能如下:

    1) 命令行模式command mode)

        控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入輸入或末行模式

    2) 輸入模式(Insert mode)

        只有在輸入模式下,才可以做文字輸入,按ESC鍵可回到命令模式。

    3) 末行模式(last line mode)

        將文件保存或退出vi,也可以設置編輯環境,如尋找字符串、列出行號……等。

2、模式間切換

    1)編輯模式–>輸入模式

        i: 在光標所在處的前方轉換為輸入模式

        a: 在光標所在的后方轉換為輸入模式

        o: 在光標所在行的下方新建一個空行并轉換為輸入模式

        I: 在光標所在行前方第一個非空白字符出之前轉為輸入模式

        A:在光標所在行后方最后一個非空白字符之后轉為輸入模式

        O: 光標所在行的上方新建一個空白行并轉為輸入模式

    2)輸入模式–>編輯模式

        按ESC鍵進行切換

    3)編輯模式–>末行模式

        按:進行切換

    4)末行模式–>編輯模式

        按ESC鍵稍等或按兩次ESC鍵進行切換

    5)末行模式<–>輸入模式

        必須先返回到編輯模式后,再進入到末行模式或輸入模式

        如:輸入–>編輯–>末行

            末行–>編輯–>輸入

3、打開及退出文件

    1)打開文件

      vim [option]… [FILE]…

    2)退出文件

        進入末行模式后,輸入相應的命令退出,具體如下:

         :q! 不保存退出

         :wq 保存退出

         : x 保存退出

         :wq! 強制保存退出

4、光標移動

    1)字符間移動

      h:向前移動

      j:向下移動

      k:向上移動

      l:向后移動

    2)單詞間移動

      w: 下一個單詞詞首

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

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

    3) 行內移動

      ^: 移動到行首第一個非空白字符

      0:移動到絕對行首

      $: 移動到絕對行尾

    4)句子間移動

        )移動到句末

       ( 移動到句首

    5)段落間移動

        } 移動到段尾

        { 移動到段首

    6)行間移動

        #G:移動到第#行行首

        G:移動到末行行首

        gg:移動到第一行

        G$: 移動到末行的行尾

        #+: 當前光標所在位置向下移動#行

        #-: 當前光標所在位置向上移動#行

        H:移動到文本的行首

        M:移動到文本的中間行

        L:移動到文本的末行

5、刪除命令

        x:刪除光標所在處的字符

        #x: 刪除從光標所在處開始向后的#個字符

        X: 刪除光標所在處前面一個字符

        #X:刪除光標處前面#個字符

        dd: 刪除光標所在行

        #dd: 刪除光標所在行向下的#行

        dgg:刪除光標所在行到第一行的所有字符

        dG: 刪除光標所在行到最后一行的所有字符

        d0: 刪除光標所在處到行首的所有字符

        d$: 刪除光標所在處到行尾的所有字符

        dw: 刪除光標處向后的一個單詞

        d#w: 刪除光標處向后的#w單詞

6、修改命令

        cw:刪除光標處向后的一個單詞,并進入輸入模式

        c$: 刪除光標處到行尾的所有字符,并進入輸入模式

        cc: 刪除光標所在上的所有字符,并進入輸入模式

7、復制

        yy: 復制光標所在行

        #yy: 復制光標光標所在行向下的#行

        與w,b,e,$,^,0,G組合使用

        復制任意長度的字符:

        a.在當前光標處輸入"ma",再將光標移到指定的地方,輸入“y`a”即可。

        b.輸入ymfn,其中n表示當前光標開始到復制內容結束的最后一個字符,m表示n在復制內容中出現的次數。如:文本內容為abcderfgwerrgssdd,需要復制的內容為derfgwerr,光標在"d"處,輸入y3fr即可完成復制。

8、粘貼

        行級別:

p: 粘貼于當前行下方

P: 粘貼于當前行上方

        小于行級別:

p: 粘貼于當前光標所在處的后方

P:粘貼于當前光標所在處的前方

9、撤銷編輯

        按u鍵

10、撤銷此前的撤銷

        按ctrl+r鍵

11、重復前一條命令

        .重復執行上一條命令

12、查找    

    /something: 在后面的文本中查找something。

    ?something: 在前面的文本中查找something。

    /pattern/+number: 將光標停在包含pattern的行后面第number行上。

    /pattern/-number: 將光標停在包含pattern的行前面第number行上。

    n: 向后查找下一個。

    N: 向前查找下一個。

13、替換

    如果不指定range,則表示當前行。

    m,n: 從m行到n行。

    0: 最開始一行(可能是這樣)。

    $: 最后一行

    .: 當前行

    %: 所有行    

例如:

    :s/old/new – 用new替換當前行第一個old。

    :s/old/new/g – 用new替換當前行所有的old。

    :n1,n2s/old/new/g – 用new替換文件n1行到n2行所有的old。

    :%s/old/new/g – 用new替換文件中所有的old。

    :%s/^/xxx/g – 在每一行的行首插入xxx,^表示行首。

    :%s/$/xxx/g – 在每一行的行尾插入xxx,$表示行尾。

    所有替換命令末尾加上c,每個替換都將需要用戶確認。 如:%s/old/new/gc,加上i則忽略大小寫(ignore)。

14、可視化

  v:光標走過的字符

V:光標走過的行

        ctrl+v: 區塊選擇

        用y復制選中的內容,用d刪除選中的內容

15、翻屏

Ctrl+f: 向文件尾部翻一屏

Ctrl+b: 向文件首部翻一屏

Ctrl+d: 向下翻半屏

Ctrl+u: 向上翻半屏

16、編輯多文件

        vim a.txt b.txt c.txt

        在末行模式下輸入如下命令進行文件間切換:        

         :next 下一個

         :previous 前一個

         :last 最后一個

         :first 第一個

         :wqall 關閉所有

17、分屏顯示

        多文件分屏

        vim -o file1 file2:水平分割窗口,同時打開file1和file2

        vim -O file1 file2:垂直分割窗口,同時打開file1和file2

        單文件分屏

         Ctrl+w, s: 水平分割

         Ctrl+w, v: 垂直分割

18、窗口屬性設置

         顯示行號

         :set nu    

         :set nonu    

         自動縮進

         :set ai (auto indent) 

         :set noai

         忽略大小寫

         :set ic (ignore case) 

         :set noic

        自動匹配的括號

         :set sm show match 

         :set nosm

         語法高亮:

         :syntax on|off

         搜索高亮:

         :set hlsearch

         :set nohlsearch

          配置文件:

 全局:/etc/vimrc

 用戶:~/.vimrc 默認該文件沒有,需手動添加。

原創文章,作者:浪跡天涯,如若轉載,請注明出處:http://www.www58058.com/7979

(1)
浪跡天涯浪跡天涯
上一篇 2015-09-14 09:20
下一篇 2015-09-14 09:23

相關推薦

  • vsftpd

    文件服務: 安裝開啟服務前先關閉selinux,清空iptables策略。避免不必要的麻煩,服務開啟后,配置一切正常有需要再根據情況開啟。 ftp:應用層,C/S,跨主機的文件共享服務;file transfer protocol nfs,cifs:文件系統接口,網絡文件系統;     nfs:network&nbsp…

    Linux干貨 2016-11-01
  • PHP的類自動加載機制

    在PHP開發過程中,如果希望從外部引入一個class,通常會使用include和require方法,去把定義這個class的文件包含進來。這個在小規模開發的時候,沒什么大問題。但在大型的開發項目中,這么做會產生大量的require或者include方法調用,這樣不因降低效率,而且使得代碼難以維護,況且require_once的代價很大。 在PHP5之前,各個…

    Linux干貨 2015-04-10
  • 8.5-文本處理工具(作業篇)

     1、統計當前連接本機的每個遠程主機IP的連接數,并按從大到小排序 [root@localhost ~]# netstat -nt Active Internet connections (w/o servers) Proto Recv-Q Send-Q&nb…

    Linux干貨 2016-08-07
  • 文件查找工具

    文件查找     我們常常需要知道哪個文件放在哪里,才能夠對該文件進行一些修改或維護等動作。 有些時候某些軟件配置文件的文件名是不變的,但是各發行版 放置的目錄則不同。 此時就得要利用一些搜尋指令將該配置文件的完整文件名捉出來,這樣才能修改。     比較實用的兩個文件查找工具l…

    Linux干貨 2016-08-21
  • RAID詳解

    1、什么是RAID RAID:獨立硬盤冗余陣列,舊稱廉價磁盤冗余陣列,簡稱磁盤陣列。其基本思想就是將多個相對便宜的硬盤結合起來,成為一個磁盤陣列,是性能達到甚至超過一個昂貴、容量巨大的硬盤,根據選擇的版本不同,RAID比單顆硬盤有以下一個或多個方面的好處:增強數據集成度,增強容錯功能,增加處理量或容量。目前應用較多的有RAID0,RAID1,RAID4,RA…

    Linux干貨 2017-01-03
  • linux基礎學習-第八天

    2016-08-08 授課內容: 處理文本的工具sed vim編輯器 Shell腳本編程基礎介紹 sed:sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),     接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。默認不編輯原文件,僅…

    Linux干貨 2016-08-10
欧美性久久久久