安裝vim 以及Vim介紹比較

來源:互聯網
上載者:User

使用vi編輯器的時候發現,ESC鍵不能返回到預設模式,輸入:help命令,發現ubuntu預設安裝的vim-tiny,很多功能不完善。所有為了方便,需要安裝完整的vim。注意:在ubuntu系統中vi和vim命令實際上是都是使用vim。

Vim 有以下幾個模式:

  • 正常(normal)模式,預設的編輯模式;下面如果不加特殊說明,提到的命令都直接在正常模式下輸入;任何其它模式中都可以通過鍵盤上的 Esc 鍵回到正常模式。
  • 命令(command)模式,用於執行較長、較複雜的命令;在正常模式下輸入“:”(一般命令)、“/”(正向搜尋)或“?”(反向搜尋)即可進入該模式;命令模式下的命令要輸入斷行符號鍵(Enter)才算完成。
  • 插入(insert)模式,輸入文本時使用;在正常模式下鍵入“i”(insert)或“a”(append)即可進入插入模式(也有另外一些命令,如“c”,也可以進入插入模式,但這些命令有其它的作用)。
  • 可視(visual)模式,用於選定文字區塊;可以在正常模式下輸入“v”(小寫)來按字元選定,輸入“V”(大寫)來按行選定,或輸入“Ctrl-V”來按方塊選定。
  • 選擇(select)模式,與普通的 Windows 編輯器較為接近的選擇文字區塊的方式;在以可視模式和選擇模式之一選定文字區塊之後,可以使用“Ctrl-G”切換到另一模式——該模式很少在 Linux 上使用,本文中就不再介紹了。

安裝方法:

方法一:apt-get install vim

系統將安裝vim, vim-runtime 軟體包,系統推薦安裝vim-scripts,vim-doc,ctags,最好安裝這些推薦的軟體包,因為它們可以使vim支援文法高亮顯示。

方法二:使用synaptic package manager (新立得軟體包管理器)

安裝vim,vim-runtime,vim-scripts,vim-gnome,vim-doc,exuberant-ctags軟體包。

安裝完畢後,在終端輸入vim命令即可,安裝的版本是7.2.245。輸入:help命令顯示如下:

~ VIM - Vi IMproved

~

~ version 7.2.245

~ by Bram Moolenaar et al.

~ Vim is open source and freely distributable

~

~ Become a registered Vim user!

~ type :help register for information

~

~ type :q to exit

~ type :help or for on-line help

~ type :help version7 for version info

Vi 和 vim 區別

vim的這些優勢主要體現在以下幾個方面:

1、多層復原我們知道在vi裡,按 u只能撤消上次命令,而在vim裡可以無限制的撤消。

2、易用性vi只能運行於unix中,而vim不僅可以運行於unix,windows ,mac等多操作平台。

3、文法加亮vim可以用不同的顏色來加亮你的代碼。

4、可視化操作就是說vim不僅可以在終端運行,也可以運行於x window、 mac os、 windows。

5、對vi的完全相容某些情況下,你可以把vim當成vi來使用。

VIM和Emacs比較

----------------------------------------------------------------------------

VIM和Emacs的相似之處:

首先都是全功能的編輯器

縮排,重新編排格式

文法高亮

無限制的"撤消"和"重做"

多個剪下,粘貼板

拼字檢查

多語言支援

可擴充性強

宏,函數

自訂鍵

自己定製.emacs和.vimrc(很多人的這兩個檔案都寫得跟天書似的,可能主要考察一下記憶力)

操作文本串,多行,矩形塊

幾乎可以識別任何文字檔類型

沒有行長度和檔案大小的限制(作業系統有限制除外)

自動識別UNIX,MAC,MSWIN的行結尾符

二進位檔案編輯

都有很好的協助和使用者手冊以及免費的電子書

都有TTY和GUI版本

可以在很多作業系統上運行(*nix,win32,Mac...)

都有父老兄弟:Emacs有Xemacs及其派生的Epsilon,JOVE等;VIM有其老頭子VI和兄Nvi,Vile,Elvis等

都是FREE SOFTWARE,可以方便地得到

-----------------------------------------------------------------------------

VIM 和 Emacs的不同:

vim主要設計用來寫程式的,當然也可操作眾多的文字檔;Emacs主要設計用來文本操作的

vim體積小啟動快;相反,Emacs體積大,啟動慢

VIM專註於文本編輯;而Emacs功能強大:除了VIM常乾的事外,還有排版,收發郵件,IDE,播放MP3,排程,系統管理,瀏覽網頁,甚至教你做一道精美的川菜....,功能強大到BT的地步. 故若說VIM是一種工具的話,則Emacs則可認為是一種"生活平台"

VIM學習曲線陡峭而較短;Emacs 學習曲線平緩而較長

VIM是有模式的編輯器;而Emacs是沒有模式的(現在的很多編輯器和word處理器都是無模式的)

"無模式"的優缺點

常見而顯得親近

對於標準的下拉式功能表式GUI程式,容易適應

其命令有複雜的文法和很難敲的多個鍵的組合,因鍵盤上的鍵是有限的,所以恨不得加個腳踏

甚至有些鍵在標準鍵盤上都沒有

"有模式"的優缺點

容易迷惑現在在那個模式下:Normal mode ,Visual mode ,Select mode ,Insert mode ,Command-line mode, ex mode ; ^X mode, operator-pending mode, Replace mode, Insert normal mode, Insert Visual mode, Insert Select mode我能想起的mode就這些---這麼多,頭都大了.

在模式間頻繁轉換是令人討厭的

可以有更多的按鍵用於命令

幾乎所有的時間手指一般都停留在"normal position",故而效率高

Emacs的GUI更容易操作大體積的文本工作;gvim與Xwindow接合得更好--看起來感覺更舒服一些:好看一些的字型,好一點的文法高亮,好看一點的工具條等等. Emacs的TTY版本與GUI版本看起來非常相似, 而VIM的TTY版本和GUI版本(gvim)就有很大的不同。

下面是兩位高手的文章:(王垠之《Emacs是一種信仰!世界最強編輯器介紹》,Dieken之《程式員的編輯器——Vim》

關於window下使用vim的使用請看:http://blog.sina.com.cn/s/blog_46dac66f010005kw.html

VIM使用說明

我們使用的大多數編輯器,都可以直接在編輯區輸入字元,並且能夠通過一些快速鍵來完成一些控制功能,比如使用方向鍵移動游標,使用BackSpack或者Delete鍵刪除文字,使用PgUp和PgDn翻頁,使用Home和End來定位行首和行末……

而Vim是一個帶模式的編輯器,同樣的按鍵,在不同模式下,具有不同的功能定義。例如h、j、k、l在編輯模式下輸入相應的字元,在普通模式下卻相當於方向鍵的作用。

由於需要切換模式,Vim的使用起來略顯繁瑣。不過優點也顯而易見:您只要把手安安穩穩的放在打字區就可以了,而不需要使用諸如方向鍵、排版鍵、小鍵盤等需要挪開雙手的鍵位,從而提高了您的效率和專註程度。事實上,Vim的前身Vi誕生的時候,鍵盤上還沒有方向鍵、排版鍵和小鍵盤:)

命令

----

vi [檔案名稱]

vim [檔案名稱]

使用Vim編輯檔案

vimtutor [語言]

vim教程,相當於使用Vim編輯器以唯讀模式開啟教程檔案。您無論對這個檔案作了什麼,都會在退出後恢複原來的樣貌。與唯讀模式的區別在於,它不會沒有眼色的提醒您,現在的狀態為唯讀模式。您可以使用它作一些練習

您可以指定教程檔案的語言,如果使用本地語言(ZH_cn)出現亂碼,您可以嘗試使用英語

vimtutor en

vimdiff [檔案1] [檔案2] [其它檔案]……

設定檔

--------

Vim的全域設定檔為“/etc/vim/vimrc”,使用者設定檔為“~/.vimrc”,“ " ”起始的行為注釋行。我們提供的配置項,您直接加入設定檔就可以了

您可以先對Vim進行一些簡單的配置:

"設定檔案編碼

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

"開啟文法加亮

syntax on

"配色風格

colorscheme pablo

"設定行距 GUI介面中生效

set linespace=4

"設定GUI選項

"set guioptions=gmrLtT m:菜單 T:工具列

set guioptions=gmrLt

"設定Tab鍵縮排的空格數

set tabstop=4

"設定編輯器將多少空格視為一個縮排

set shiftwidth=4

"設定摺疊方式

"set foldmethod=indent

"以下字元將被視為單詞的一部分 (ASCII):

"set iskeyword+=33-47,58-64,91-96,123-128

模式介紹

--------

Vim常見的模式有:普通模式、插入模式、命令模式,另外我們也會經常用到可視模式。

Vim啟動時進入普通模式;或者在其它模式下,按下Esc鍵,便可以回到普通模式。

使用“vimtutor en”命令進入教程,現在是普通模式。隨便按幾下“j、k、l、h”鍵,您會發現游標的位置發生改變。

按下“i”鍵,編輯器底部出現了“-- 插入 --”或者“-- insert --”,您進入了插入模式。隨便按幾下“j、k、l、h”,您會發現相應的字元出現在編輯區,現在還可以通過方向鍵來移動游標。

可能您覺得使用方向鍵移動游標不是什麼問題,但是習慣了Vim後,您會認為方向鍵太麻煩了,簡單不能容忍!好了,現在按下Esc鍵回到普通模式,我們又可以使用“j、k、h、l”來移動游標了。

在普通模式下,按下“:”鍵(也就是Shift+;),在編輯器底部出現了一個“:”,您進入了命令模式。在“:”後輸入一個命令“new”,斷行符號後,編輯器被分割為上下兩欄。

為了方便起見,我們在命令前加一個“:”來表示命令模式下輸入的命令,像這樣

:vnew

一個命令能夠以一些規則簡化,上面的命令也可以寫為這種形式

:vne

現在您的編輯區一定弄的四分五裂,您可以使用命令“:quit”來關閉當前欄,直接用簡寫就可以了

:q

這個命令是退出編輯器,如果編輯區被分成多欄,則是退出當前欄。

執行完一個命令(按下斷行符號後),編輯器會自動回到普通模式。如果您想不執行當前命令,直接回到普通模式,您可以按下Esc鍵。

按下“v”鍵,您進入了可視模式,可以使用“j、k、l、h”移動游標,高亮選取文本 。

事實上,可視模式相當於高亮選取文本後的普通模式。

可視模式具有子模式,以行為單位進行選取的可視行模式,使用“V”鍵進入(也就是Shift+v);和以塊為單位進行選取的可視塊模式,使用“Ctrl+v”鍵進入。

模式切換

--------

好了,現在我們總結一下模式間切換的方法

其它模式==>普通模式

Esc

普通模式==>插入模式

i 在游標前插入 I 在行首插入

a 在游標後插入 A 在行末插入

o 在當前行之下建立行 O 在當前行之上建立行

r 替換當前字元 R 從當前字元開始替換

普通模式==>命令模式

:

普通模式==>可視模式

v 可視模式

V 可視塊模式

可視塊模式

移動

----

在普通模式中,您可以使用以下方式移動游標

j 向下

k 向上 k

l 向右 h l

h 向左 j

您可以使用其它更有效率的方式移動游標

w 下一個單詞詞首 W 將特殊符號視為單詞的一部分

b 上一個單詞詞首 B 同上

e 單詞末尾 E 同上

0 行首 ^ 行首文字(行首空格之後)

$ 行末

H 頁面頂部

M 頁面中部

L 頁面底部

在其它模式中,您可以使用方向鍵移動游標,不過我們不推薦您那樣作,您可以在設定檔中綁定插入模式下的功能鍵

noremap!

noremap!

noremap!

noremap!

………………

<作用範圍> <鍵位> <功能>

其中,map!綁定的鍵盤對應,作用於所有模式;inoremap!綁定的映射,僅作用於插入模式。

數字參數

--------

您也可以使用數字參數,來重複執行。例如

100j 執行100次j鍵,向下100行

標記

----

您可以在當前游標處作一個標記,以便快速返回

m<標記名稱> 定義標記。標記名稱為一個字元

`<標記名稱> 返回標記

mx 將當前游標處定義為標記 x

`x 返回標記 x

瀏覽

----

下翻一頁 下翻半頁

上翻一頁 上翻半頁

gg 檔案首行

G 檔案末行

<行號>G 按行號轉到相應行

<1~100>% 按百分比轉到相應的行數

zz 將游標所在行調整至頁面中間

下卷一行

上卷一行

Tips:gg定位到檔案首行,V進入可視行模式,G定位到檔案末行,實作類別似“全選”的功能。依次按下 g g V(Shift+v) G(Shift+g)

編輯

----

x 剪下當前字元

dd 剪下當前行

y 複製可視模式選取字元

yy 複製當前行

p 在游標後粘貼 P 在游標前粘貼

u 撤消

重做

逐字複製上一行內容

逐字複製下一行內容

寄存器操作

----------

Vim可以將不同欄位剪下或複製到不同寄存器中,您可以從不同寄存器中取出內容後粘貼

"<寄存器名稱> 按下“"”鍵和另一個字元鍵,便可以定義一個寄存器。例如:

"a "1

定義寄存器後直接進行操作

"ayy 將當前行複製到寄存器 a 中

"ap 將寄存器 a 中的內容粘貼到游標之後

Tips:通常情況下,寄存器 + (" +(Shift+=))對應X下的剪貼簿。您在其它程式中複製的內容,可以使用 "+p 粘貼到Vim中;您在Vim中,可以使用 "+y 將內容複寫到剪貼簿,再粘貼到其它程式中

沒有指定寄存器時,Vim使用“無名寄存器”儲存內容

搜尋和替換

----------

按下“/”鍵,編輯器底部會出現“/”符號,接著輸入字串,便可以進行搜尋

/ 向下搜尋 ? 向上搜尋

n 搜尋下一個

N 搜尋上一個

:s/<源字串>/<目標字串> 將源字串替換為目標字串

:s/<源字串>/<目標字串>/g 替換當前行中所有合格字串

:<行號1>,<行號2>s/<源字串>/<目標字串>/g 在指定行中進行替換

:%s/<源字串>/<目標字串>/g 全文替換

Regex

----------

在搜尋和替換時,可以使用Regex進行匹配

--

您可以將一系列的動作記錄為一個宏,然後執行它

q<宏名稱> 開始錄製宏。宏名稱為一個字元

q 錄製中按下“q”鍵,結束錄製

@<宏名稱> 執行宏

插入模式下的快速鍵

------------------

<寄存器名稱> 輸入指定寄存器內容

<2個字元> 輸入二合字元

<數字> 通過數字編碼輸入字元

<鍵位> 輸入鍵位的名稱

鍵綁定、縮寫

------------

前面我們已經向您介紹了鍵綁定,

map!

角括弧及其中的內容,為Vim設定檔的約定,分別描述了按鍵和功能,表示將功能編寫到按鍵上。如果綁定的只是一般字元,例如:

map! xxx XXXXX

表示將“XXXXX”綁定到“xxx”上。當您鍵入“xxx”時,編輯器會自動替換為“XXXXX”。

如果您只是想將字串綁定為縮寫,方便輸入,我們建議您使用“iabbrev”來綁定。例如:

iabbrev ubt Ubuntu

在插入模式下鍵入“ubt”,編輯器會自動替換為“Ubuntu”。

您可以將“iabbrev”命令縮寫為“iab”,例如:

iab ubt Ubuntu

以上命令,您可以直接在命令模式下輸入,臨時啟用。也可以寫入設定檔,永久啟用。

單詞補全

--------

下一個匹配項

上一個匹配項

您可以在設定檔中定義補全的方式

"自動補全方式:(使用逗號分隔)

set complete=k,.

" . 當前檔案

" b 已被裝緩衝區,但是沒有在視窗內的檔案

" d 在當前的檔案中定義和由#include包含進來的檔案

" i 由#include包含進來的檔案

" k 由dictionary選項定義的檔案

" kfile 名為{file}的檔案

" t 標記(tags)檔案

" u 沒有載入的緩衝區

" w 在其他視窗中的檔案

"設定自動補全字典 :

set dictionary=path

命令模式

--------

前面介紹了普通模式和插入模式。我們發現,普通模式主要用來瀏覽和修改常值內容,而插入模式則用來向文本中新增內容。

而命令模式則多用於操作文字檔(而不是操作文字檔的內容),例如儲存檔案;或者用來改變編輯器本身的狀態,例如設定多欄視窗、標籤或者退出編輯器……

w(rote) 將改變寫入檔案

:w

q(uit) 退出編輯器

:q

某些情況下,編輯器會阻止命令的執行。例如您修改了檔案,而沒有儲存,那麼您使用“:q”命令退出時,編輯器就不會執行這條命令,而是提醒您儲存檔案。

這個時候,您可以在命令末尾追加“!”來強制執行命令

:<命令>!

例如“:q!”,即便您沒有儲存已修改的檔案,使用此命令,編輯器也會放棄修改而強行退出

以“!”引導一個Shell命令,則可以從Vim臨時切換到Shell中,執行一個Shell

:!<命令>

例如“:!ls”

多欄視窗

--------

您可以使用以下命令,將當前視窗水平分為兩欄

:new

建立一欄空白視窗

:split

將當前檔案分兩欄顯示

同理,您可以使用下列命令,將當前視窗水平分為兩欄

:vnew

:vsplit

先按下鍵,再按下方向鍵“j、k、l、h”,您可以切換到其它欄;在當前欄中使用“:q”命令,可以退出當前欄,也可以使用其它命令,對當前欄作出修改

如果您希望當前命令在所有欄中生效,您可以在命令的末尾追加“all”

:<命令>all

例如:

:qall

如果您希望這條命令強制執行,那麼“!”位於命令的最末

:<命令>all!

例如:

:qall! 強行退出所有欄視窗

標籤頁

------

Vim在7以後的版本,開始支援標籤頁的功能

:tabnew 建立一個標籤

:tabnext 轉到下一個標籤

:tabprevious 轉到上一個標籤

多數情況下,您可以使用滑鼠點擊標籤進行切換。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.