linux 下vim的安裝方法 及一些基本命令

 

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

安裝方法:

方法一: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 全文替換

正則表達式

----------

在搜索和替換時,可以使用正則表達式進行匹配

--

您可以將一系列的操作錄製爲一個宏,然後執行它

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 轉到上一個標籤

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章