vim編輯器

vim編輯器

文本編輯器:文本,純文本,ASCII text;Unicode;

文本編輯種類:

                行編輯器:sed

               全屏編輯器: nano,vi

                              vi:Visual Interface

                            vim:Vi Improved

 vim: 模式化的編輯器

          基本模式:

              編輯模式,命令模式

              一般模式;

              末行模式:

                    內置的命令行接口;

  打開文件:

         vim [options] [file ..]

             +#:打開文件后,直接讓光標處于第#行的行首;

             +/PATTERN: 打開文件后,直接讓光標處于第一個被PATTERN匹配到的字符串的位置;

             -b 二進制方式打開文件

             -d 打開多個文件

             -m 只讀方式打開文件 無法修改

             -e 直接進入末行模式;

編輯模式:

           i: insert,在光標所在處輸入;

           a: append,在光標所在處后方輸入;

           o: 在光標所在處的下方打開一個新行;

           I: 在光標所在行的行首輸入;

           A: 在光標所在行的行尾輸入;

           O: 在光標所在處的上方打開一個新行;

 打開之后默認是一般模式 | 命令模式

                                 插入模式 | 編輯模式

                                 末行模式 | 擴展模式(extend | 命令行模式

模式轉換

          一般模式 –> 編輯模式:

                 i , I ,a ,A ,o, O;   用的比較多的是 i ,o, O  

          編輯模式 –> 一般模式: Esc

         一般模式 –> 末行模式

                 :  ?   /     其中: / 用的比較多的

          末行模式:

               :ZZ   保存并退出

               q   退出

               q! 強制退出,不保存修改的內容;

               wq 保存并退出;

                             w      :q

               : x  保存并退出

               : w /PATH/TO/SOMEFILE 另存為/PATH/TO/SOMEFILE  

               :r filename   讀入一個文件寫到當前文件中;

               :!CMD  在末行模式下執行一個命令;

               : r!CMD  將命令的執行結果寫到當前文件中;

光標跳轉:

          字符間跳轉

                      h:         l:

                      k:         j:

               #COMMAND: 跳轉由#指定的個數的字符;

          單詞間跳轉:

                w:下一個單詞的詞首

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

                e: 當前或后一個單詞的詞尾

               #COMMAND: 跳轉由#指定的個數的單詞;

          行首行尾跳轉:

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

             0:跳轉至行首

             $:跳轉至行尾

          行間跳轉:

              #G:跳轉至指定的第#

              1G,gg:跳轉至第一行

              G: 最后一行

          句間跳轉

               ) 下一句    ( 前一句

          段間跳轉

               { 前一段    } 后一段

          頁間跳轉

             H  頁首

             M  頁中間

             L  頁底

 翻屏:

             Ctrl+f: 向文件尾翻一屏

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

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

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

              Enter: 按行向后翻屏

vim的編輯命令:

       字符編輯:

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

           #x: 刪除光標所在處起始的#個字符

           xp:交換光標所在處的字符與其后面的字符的位置

       替換命令:

                 R:進入替換模式,替換完之后按 esc鍵退出;

                  r: 替換光標所在處的字符

                       r CHAR

       刪除命令:

           d: 刪除命令,可結合光標跳轉字符,實現范圍刪除;

              d$: 刪除光標處到行尾

              d^,d0:刪除光標處到行首

              dwde: 刪除一個單詞

              x: 多按幾次

              dd: 刪除光標所在當前行

              #dd: 刪除光標所在處的行起始的共#行;

              d1G: 刪除光標到第一行的數據;

              dG: 刪除光標到最后一行的數據;

                  二者結合可以刪除整個文件里面的內容

            注意:刪除文件全部內容,先跳到最后一行:G;然后執行d1G;

       粘貼命令(p,put,paste):

             p: 緩沖區的內容如果為整行,則粘貼在當前光標所在行的下方;否則,則粘貼至當前光標所在處的后方;

             P: 緩沖區的內容如果為整行,則粘貼在當前光標所在行的上方;否則,則粘貼至當前光標所在處的前方;

       復制命令(y,yank)

             y: 復制,工作行為相似于PC命令

             y$: 復制光標處到行尾的行;

             y0,y^: 復制光標到行首的行; 

                    注意:空白字符和非空白字符的區別

             ye,yw: 復制單個字符

#COMMAND

 yy:復制一整行

             #yy:復制#

     改變命令(change,c)

             c  相當于執行了x然后再執行i 進入編輯操作;

             c$: 刪除光標處到行尾的內容 然后進入編輯模式;

             c^,c0: 刪除光標處到行首的內容,刪完進入編輯模式;

             cb,ce,cw: 刪除一個單詞之后進入編輯模式;

             cc: 刪除當前行之后直接進入編輯模式;

                  #cc;

其它編輯操作:

        可視化模式:

              v: 按字符選定

              V: 按行選定

選擇之后可以結合之前的yy復制,dd刪除進行操作,替換等等;

        撤銷(undo)操作:

              u: 撤銷此前的操作

                 #u:撤銷此前的#個操作

             撤銷此前的撤銷:

                 Ctrl+r

                 .: 重復執行前一個編輯操作

 vim 末行模式:

       內建的命令行接口

            (1)地址定界:

                     :start_pos[,end_pos]

                 #:特定的第#行,例如:5即第5

                 .: 當前行

                 $:最后一行

                 #,#: 指定行范圍,左側為起始行,右側為結束行;

                 #,+#:指定行范圍,左側為起始行絕對編號,右側為相對左側行號的偏移量;例如:3+7

                       .$-1

                       1,$

                 %:全文

                 /pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行

                       /first/,$

                 /pat1/,/pat2/: 從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由 pat2匹配到的行結束之間的所有行;

                    可同編輯命令一同使用,實現編輯操作:

                                    d;y; c

                   w /PATH/TO/SOMEFILE: 將范圍內的文本保存至指定的文件中;

                    r /PATH/FROM/SOMEFILE: 將指定的文件中的文本讀取并插入至指定位置;

          (2) 查找:

                 /PATTERN: 從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;

                 ?PATTERN: 從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;

                       n: 下一個, 與命令方向相同

                       N: 上一個, 與命令方向相反

          (3) 查找并替換

                  s: 末行模式的命令,使用格式

                      s/要查找的內容/替換為的內容/修飾符

                         要查找的內容:可使用正則表達式;

                         替換為的內容:不能使用正則表達式,但可以引用

                   如果要查找的內容部分在模式中使用分組符號:在替換為的內容中使用后向引用; 直接引用查找模式匹配到的

                   修飾符:

                          i: 忽略大小寫;

                         g: 全局替換,意味著一行中如果匹配到多次,則均替換

                     可把分隔符替換為其它非常用字符;

                                s@@@

                                s###

             示例:1, 復制/etc/grub2.cfg文件至/tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中以空白字符開頭的行的行首空白字符;

                   ~]# %s@^[[:space:]]\+@@

                 2.復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/tmp/functions文件的每個以空白字符開頭的行的行首加#;

                   ~]#  %s@^[[:space:]]\+[^[:space:]]@#&g

                 3./etc/yum.repos.d/Centos-Base.repo文件中所有的enabled=0替換為enabled=1,所有gpgcheck=0替換為gpgcheck=1;

                   ~]#  %s@\(enabled\|gpgcheck\)=0@\1=1@g

vim 的多文件功能

        vim FILE1 FILE2 …

              大文件間切換:

                   : next  下一個

                  prev 上一個

                   : first 第一個

                 last 最后一個

            退出所有文件:

                  wqall  保存所有文件并退出

                  wall

                   : qall

          多窗口:

                -o:水平分割窗口

                -O:垂直分割窗口

               在窗口間切換:Ctrl+w,ARROW

              注意:單個文件也可以分割為多個窗口進行查看

                   Ctrl+w,s  水平分割窗口

                   Ctrl+w,v  垂直分割窗口

  定制vim的的工作特性

             注意:在末行模式下的設定,僅對當前vim進程有效

             永久有效:

                    全局: /etc/vimrc

                    用戶個人: ~/.vimrc

             1. 行號

                  顯示:set number, 簡寫為set nu

                  取消顯示: set nonomber(set nu)

             2. 括號匹配高亮

                     匹配:set showmatch(set sm)

                     取消: set nosm

             3. 自動縮進

                   啟用:set ai

                   禁用:set noai

             4. 高亮搜索:

                    啟用: set hlsearch

                    禁用: set nohlsearch

             5. 語法高亮:

                     啟用:syntax on

                     禁用: syntax off

             6. 忽略字符大小寫;

                     啟用:set ic

                     禁用: set noic

獲取幫助:

                  help

                  help subject

           vimtutor教程詳解vim編輯 


vim編輯器


   

原創文章,作者:MFX,如若轉載,請注明出處:http://www.www58058.com/73043

(0)
MFXMFX
上一篇 2017-04-17
下一篇 2017-04-17

相關推薦

  • 關于文件 atime mtime gtime 專題–2016-07-27

    Linux文件組成部分:元數據(metadata)和數據(date) 元數據的查看方式:使用stat命令; 數據的查看方式:文本格式使用 cat nano查看及修改即可; stat命令: 功能說明:顯示文件或文件系統的狀態 語法: stat  [OPTION] …  FILE… 參數:   舉例: [ro…

    Linux干貨 2016-08-04
  • 8.3作業

    創建sysadmins組  將user1 user2 user3 加入組中 將user3設置為管理員 用user3登錄,將user2從組中移除 設置sysadmins口令centos 設置user1在創建新文件時所屬組為sysadmins 刪除User1-3 刪除sysadmins [root@localhost testdir]#&nb…

    Linux干貨 2016-08-04
  • lnmp部署實驗

    Lnmp部署 實驗環境: 1、Centos 7主機一臺,客戶機一臺。 2、在centos 7主機上部署:    Nginx  php-fpm  php-mysql  mariadb-server 實驗步驟: 1、啟動nginx服務,確保80端口打開,啟動mariadb-server,確保3306端口…

    Linux干貨 2016-10-30
  • 深入了解正則表達式與grep應用

    剛開始學習正則表達式時候,感覺和看無字天書沒什么分別,迷茫了一段時間后,仔細去理解,慢慢你會發現也沒什么的。認真去鉆研了,多練習,是可以理解他們的含義的。也許正如老師所言,學習linux ,入門的確很陡峭,對于我這個基礎薄弱,智商低于80的人來說的確很吃力。關于正則概念的就不去描述了,說起來真的不好表達,下面通過一些實例來進行深入理解吧。 1.顯示當前系統上…

    2017-11-01
  • LVS –負載均衡基礎

    一 負載均衡的五種解決方案 1 http重定向 HTTP重定向就是應用層的請求轉發。用戶的請求其實已經到了http重定向負載均衡服務器,服務器根據算法要求用戶重定向,用戶收到重定向請求后,再次請求真正的集群。 優點:簡單 缺點:性能較差 2 DNS域名解析負載均衡 DNS域名解析負載均衡就是在用戶請求DNS服務器,獲取域名對應的IP地址時,DNS根據服務器直…

    Linux干貨 2017-06-22
  • 編譯安裝httpd2.4-centos6

    centos6編譯安裝httpd2.4 默認是不支持,需自己動手進行編譯 apr-1.4+ apr-util-1.4+ :需提前進行編譯安裝這兩個軟件 編輯安裝httpd2.4實例 1、#安裝開發包 [root@www ~]# yum groupinstall “Development Tools” “Server Pla…

    Linux干貨 2017-05-17

評論列表(1條)

  • renjin
    renjin 2017-04-21 10:15

    主要介紹了vim編輯器的快捷方式與詳細用法 ,內容介紹的很詳細,排版也很好,繼續努力??!

欧美性久久久久