第六周作業補充-vim簡介及其使用方法詳細介紹

vim.png

What

      Vim是由Vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在Unix& Unix Like操作系統中被廣泛使用。和Emacs并列成為Unix& Unix Like操作系統中最受歡迎的文本編輯器

When& Who

      Vim的第一個版本由布萊姆·米勒在1991年發布

Vim的具體操作介紹

      Vim是模式化編輯器,其基本模式為:

            編輯模式,也叫命令模式

            輸入模式

            末行模式:內置有命令行接口

      打開文件:

            # vim [OPTION] [file….]:如果文件不存在,創建文件

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

                  /PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首

 

      模式轉換:

            編輯模式 à 輸入模式

                  i, Insert:在光標所在處開始輸入

                  a, append:在光標所在處后面開始輸入

                  o:在光標所在處下方打開新的一行開始輸入

                  I:在光標所在處行首開始輸入

                  A:在光標所在處行尾開始輸入

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

            輸入模式 à 編輯模式

                  鍵盤上的”Esc”鍵

 

            編輯模式 à 末行模式

                  鍵盤上的“:”鍵

            末行模式 à 編輯模式

                  鍵盤上的”Esc”鍵

      如何關閉文件:

            ZZ 保存并退出

            :q 退出

            :!q 強制退出,不保存此前編輯的內容

            :wq 保存此前編輯的內容并退出

            :x 保存并退出

            :w /pat/to/somefile,將當前文件另存到指定路徑    

 

      光標跳轉:

            k鍵:上

            j鍵:下

            h鍵:左

            l鍵:右    

            #[k|j|h|l]:跳轉有#自定個數的字符或者行數

 

      單詞間跳轉:

            w:下一個單詞的詞首

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

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

            #[w|e|b]:跳轉由#指定的單詞個數

 

      行首行尾跳轉:

            0:跳轉至行首

            $:跳轉至行首

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

      行間跳轉:

            #G:跳轉至由#指定的行

            1G,gg:跳轉至文件的第一行

            G:跳轉至文件的最后一行

 

      句間跳轉:

            ):下一句

            (:前一句

      段間跳轉:

            }:下一段落

            {:前一段落

      翻屏:

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

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

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

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

            Enter:按行向后翻屏

 

Vim的編輯明令

      字符編輯:

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

            #x:刪除以光標所在處為啟始位置的#個字符

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

 

      替換命令:

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

      刪除命令:

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

            d^:刪除光標所在處至行首非空白字符的內容

            dw:刪除光標所在處字符至下一個單詞詞首的所有字符

            de:刪除當前單詞光標所在處字符至詞尾內容或至下一個但單詞詞尾的所有字符

            db:刪除光標所在處至前一個單詞的詞首字符的所有內容

            dd:刪除一行

            #[d$|d^|dw|dw|de|db|dd]:刪除由#為數字指定的命令內容

 

      粘貼命令:

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

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

 

      復制命令(yank, y)

            y:復制,工作行為類似于d命令

            y$:復制光標所在處至行尾的所有字符

            y^:復制光標所在處至行首非空白字符的所有內容

            yw:復制光標當前位置到下一個單詞詞首的所有內容

            ye:復制光標當前位置到下一個單詞詞尾的所有內容

            yb:復制光標當前位置到當前單詞詞首的所有內容

            yy:復制整行內容

            #[y$|y^|yw|ye|yb|yy]:復制由#指定為數字的命令的內容

      改變命令(change,c)

            使用c命令的同時,從 編輯模式 à輸入模式,實現刪除功能并轉為輸入模式

            c$:刪除光標所在處至行尾的所有字符內容并轉為輸入模式

            c^:刪除光標所在處至行首非空白字符的所有內容并轉為輸入模式

            cw:刪除光標所在處至下一個單詞詞首的內容并轉入輸入模式

            ce:刪除光標所在處至當前或下一個單詞詞尾的字符并轉入輸入模式

            cb:刪除光標所在處至當前或前一個單詞詞首的字符并轉入輸入模式

            c0:刪除光標所在處至行首的所有字符并轉入輸入模式

            cc:刪除整行并轉入輸入模式

            #[c$|c^|cw|ce|cb|c0|cc|]:刪除由#指定的命令內容

其他編輯操作:

            可視化模式:

                  v:按字符選定

                  V:按行選定

                  結合編輯命令:d,c,y

            撤銷(undo, u)命令:

                  u:撤銷此前的操作

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

                  Ctrl+r:撤銷此前的撤銷操作

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

末行命令模式

      地址界定:

      :start_pos[,end_pos]

            #:特定的第#行,例如”:5”:指定第5行內容

            .:當前行

            $:最后一行

            #,#:指定行范圍。左邊#為起始行,右邊#為結束行

            #,+#:指定航范圍。左邊#為起始行絕對編號,右邊+#為相對于左邊#起始行的偏移量。例如5,+7:范圍是從第五行到第12行的內容

                  .,$-1:當前行到倒數第二行

                  1,$:第一行到最后一行

            %:全文

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

                  例如:/first/,$:查找光標所在處到行尾第一次被first匹配到的行

            /pattern1/,/pattern2/:從光標所在處起始第一次被pattern1匹配到的行,至第一次被pattern2匹配到的行之間的所有的行

            可結合編輯命令d,c,y,p一同實現編輯命令

            w /path/to/somefile:將范圍內的文本保存至指定的文件中

            r /path/from/somefile:將指定文件中的文本讀取至指定位置

 

      查找

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

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

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

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

      查找并替換

            s:末行模式的命令

            使用格式

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

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

                        要替換的內容:不可以所以用正則表達式,但可以引用

                 

                  修飾符:

                        i:忽略大小寫

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

                  可把分隔符替換為其他:

                        s@@@

                        s###

vim的多文件功能

      打開多個文件:

            vim FILE1 FILE2 FILE3….

                  文件間的切換:

                        :next 下一個文件

                        :prev 上一個文件

                        :first 第一個文件

                        :last 最后一個文件

                  退出所有的文件:

                        :wqall 保存所有文件并退出

                        :wall 保存所有文件

                        :qall 退出所有文件

 

      多窗口:

            -o:水平分隔

            -O:垂直分隔

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

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

                  Ctrl+w,s:水平分隔窗口

                  Ctrl+w,v:垂直分隔窗口

 

定制vim的工作特性:

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

      如果要永久有效,需要更改配置文件:

            全局:/etc/vimrc

            個人:~/.vimrc

      行號:

            顯示行號:set number,簡寫:set nu

            取消行號顯示:set nomber,簡寫:setnonu

      括號匹配高亮

            匹配:set showmatch, set sm

            取消:set nosm

      自動縮進

            啟用:set ai

            取消:set noai

      高亮搜索

            啟用:set hlsearch

            禁用:set nohlsearch

      語法高亮          

            啟用:syntax on

            禁用:syntax off

      忽略字符大小寫:

            啟用:set ic

            禁用:set noic

      獲取幫助:

            :help

            :help subject

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

(0)
mxb93mxb93
上一篇 2016-09-26 07:43
下一篇 2016-09-26 07:43

相關推薦

  • 馬哥教育網絡班22期+第1周課程練習

    一、描述計算機的組成及其功能。 組成:CPU (運算器+控制器),存諸器(內存與硬盤),輸入設備,輸出設備。 運算器:對數據進行加工處理的部件(包括算述運算與邏輯運算)。 控制器:負責從存儲器取出指令,按指令的要求發出控制信號,使各部件協調的,一步步的完成各種操作。 存儲器:計算機記憶或暫存數據的部件 輸入設備:人機接口,負責輸入信息(數據與指令)轉成計算機…

    Linux干貨 2016-08-15
  • Lnmp安裝腳本

    1、源碼編譯安裝LNMP架構環境; 此題略 此鏈接為安裝nginx時,編譯參數和各個模塊和第三方模塊的介紹,十分豐富,安裝前可以參考學習 https://www.nginx.com/resources/admin-guide/installing-nginx-open-source/ 2、編寫一個腳本完成以下功能:    (1)、一鍵搭建…

    Linux干貨 2016-12-05
  • nginx 日志切割(腳本實現)

        這里主要介紹nginx日志切割.(訪問日志與錯誤日志)     準備好一臺機器,配置隨意,安裝nginx應用。     1. nginx安裝步驟   # tar xf nginx-1…

    Linux干貨 2016-07-10
  • Shell腳本編程基礎中() (()) [ ] [[ ]] 的使用

    Shell腳本編程基礎中() (()) [ ] [[ ]] 的使用 () 生成子進程,括號內的命令將會在子進程中運行,父進程不能夠讀取在子進程中創建的變量 例: 新建個腳本文件,寫入 則執行結果為 $()相當于 ` `? ,返回括號內命令執行結果 (( )) 用作四則運算和邏輯運算,并且支持多個表達式 例: 當 (( )) 加$,則是將獲得表達式值,賦值給左…

    2017-11-26
  • Linux程序包管理之RPM

    Linux程序包管理之RPM RPM概念 rpm是什么 RPM 是Ret Hat Package Manager(RPM軟件包管理器)的縮寫,遵循GPL協議,可以運行在各種Linux上,公認的行業標準。 rpm干什么 對于終端用戶來說 簡化了Linux系統的安裝、卸裝、更新和升級的過程,用命令完成 對于開發者來說 RPM允許把軟件編碼包裝成源代碼和程序包提供…

    Linux干貨 2016-11-22
  • 系統管理之系統安裝及自動化安裝

    概述:     上篇我們討論了下關于Linux系統的啟動流程和grub相關的內容,本篇將介紹一下Linux的系統安裝相關的內容,具體分為:     1、系統安裝程序anaconda的介紹     2、kickstart文件的介紹 &nbsp…

    Linux干貨 2016-09-16
欧美性久久久久