學習vi和vim編輯器(13):vi同類品的功能總覽

來源:互聯網
上載者:User

學習vi和vim編輯器(13):vi同類品的功能總覽

它們都是我兄弟:

有許多可以自由取得的vi編輯器同類品。《vi和vim編輯器》重點介紹了vim編輯器,也簡要地介紹了另外三種常用的同類品:nvi,elvis,vile。這些同類品都提供了vi之外的許多擴充功能,儘管方式可能不同,但這些同類品通常會提供相同的擴充功能。本篇文章將總體介紹這些同類品提供的擴充功能。

多視窗編輯:可以將螢幕分割成多個“視窗”,從而在每個視窗編輯不同的檔案,或者觀察同一檔案的不同部分。這使得同時在多個檔案中工作更加容易,在檔案間剪貼文本也更加方便。

圖形化使用者介面:除了nvi之外,所有同類品都可以編譯成支援X Window介面。

擴充的Regex:之前已經學習過了vi編輯器中可用於搜尋和替換模式的Regex元字元。每種同類品都提供了某種形式的擴充Regex,但每一種擴充方式的“風味”都與眾不同。

增強標籤:"Exuberant ctags"程式是ctags的同類品。比UNIX上的ctags功能更強大。可以產生擴充的tags檔案格式,讓標籤的搜尋與匹配處理更加靈活,更加強大。以下是"Exuberant ctags"的特色功能:

支援C與C++代碼,另外還支援29種程式設計語言,包括C#和java;能夠產生所有類型的C與C++語言標籤;在解析代碼時非常可靠;列出供人閱讀用的源檔案中的被選擇對象的列表;支援產生GNU Emacs樣式的標籤檔案;

傳統的tags檔案有三個以定位字元分隔的欄位:標籤名稱(一般是標識符),包含標籤的源檔案,以及何處可找到標識符的指示符。指示符可以是簡單的行號,或者是以斜線或問號括起的nomagic搜尋模式。新的格式向下相容傳統格式。前面三個欄位仍然相同:標籤,檔案名稱與搜尋模式。Exuberant ctags只會產生搜尋模式,而不是任意的命令。擴充的屬性會放在用於分隔的 " ;" "分隔字元後面。屬性間以tab字元分隔,每個屬性均由以冒號分隔的兩個子欄位組成,第一個子欄位是描述屬性的關鍵字,預設為kind(此時可以省略),第二個則是實際的值。擴充的ctags關鍵字可以參考《vi和vim編輯器》p144。如所示,為擴充tags檔案的一個樣本:

位於該tags檔案前面的以" !_TAG_ "開頭的初始化標籤,對於辨別建立檔案的程式很有協助。而且編輯器也可能會用這些特殊標籤來實現特殊的功能。之後便是相應的標籤定義。

標籤棧:每一種vi同類品都擴充了維護標籤棧的功能。每次通過" :tag "命令或者vi中的" ^] "命令搜尋某個標籤時,編輯器會先儲存當前的位置。這樣以後就可以使用vi編輯器的"CTRL + T"命令或者ex命令回到儲存起來的位置。vim的標籤棧功能將在後續文章進一步學習。

改進的編輯工具:所有的同類品都提供了編輯ex命令列,不限次數的撤銷,任意長度的行與八位元據,增量搜尋,將螢幕從左往右滾動以代替繞排過長的行,可視模式,以及模式指標等其它特性。

編程輔助:

vi是為編程者開發的編輯器,它提供了一些功能,使得傳統的UNIX編程者(編寫C程式和troff文檔的人)工作起來更容易。vi的同類品在此基礎上,提供了更多功能:

編輯-編譯的加速:在編譯期間,完全不需要離開編輯器,而且可以取得編譯器的輸出,並自動跳到包含錯誤的行上。

文法高亮:將代碼中的不同文法元素用不同的顏色與字型來顯示。

本章vi命令總結:

本章主要介紹了部分vi同類品(vim,nvi,elvis,vile)提供的擴充功能。後續文章將重點學習vim編輯器的各種擴充功能細節。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.