Linux入門學習之vi/vim編輯器

一、我們爲什麼要學習vim編輯器?

Linux的命令行界面下面有非常多的文本編輯器。比如經常聽說的就有Emacs、pico、nano、joe與vim等。vim可以看做是vi的高級版。我們爲什麼一定要學習vim呢?有以下幾個原因:

(1)所有的Unix like系統都會內置vi文本編輯器,其他的文本編輯器則不一定會存在。

(2)很多軟件的編輯接口都會主動調用vi。

(3)vim具有程序編輯的能力,可以主動以字體顏色辨別語法的正確性,方便程序設計。

(4)程序簡單,編輯速度快。


二、下面先介紹一下vi的基本使用方法及其相關命令。

vim編輯器的三種模式:一般模式、編輯模式和命令行模式。

在一般模式中可以進行刪除、複製和粘貼的功能,但是無法編輯文件內容。從一般模式切換到編輯模式可以按下iIoOaArR鍵。按下Esc鍵可以回到一般模式。在一般模式中輸入:/、?三個中的任意一個可以將光標移到最下面的一行。在這個模式中可以提供查找數據的操作,而讀取、保存、大量替換字符、離開vii、顯示行號等操作則是在此模式中完成的。需要注意的是,編輯模式與命令行模式之間是不能互相切換的。

下面列出平時用的最多的vi命令:

移動光標的方法:

[Ctrl]+[f]:屏幕向下移動一頁,相當於[PageDown]按鍵。

[Ctrl]+[b]:屏幕向上移動一頁,相當於[PageUp]按鍵。

0或功能鍵[Home]:移動到這一行的最前面字符處。

$或功能鍵[End]:移動到這一行的最後面字符處。

G:移動到這個文件的最後一行。

gg:移動到這個文件的第一行,相當於1G.

N[Enter]N爲數字,光標向下移動N行。

查找和替換:

/word:向下尋找一個名稱爲word的字符串。

?word:向上尋找一個名稱爲word的字符串。

:n1,n2s/word1/word2/g:在第n1行和n2行之間尋找word1這個字符串,並且將其替換爲word2.

:1,$s/word1/word2/g:從第一行到最後一行尋找word1這個字符串,並且將其替換爲word2.

:1,$s/word1/word2/gc:從第一行到最後一行尋找word1這個字符串,並且將其替換爲word2.且在替換前顯示提示字符給用戶確認是否需要替換。

刪除、複製和粘貼:

x,X:在一行字中,x爲向後刪除一個字符(相當於[Del]鍵),X爲向前刪除一個字符(相當於[Backspace])。

dd:刪除光標所在的一整行。

ndd:刪除光標所在的向下n行。

yy:複製光標所在的一行。

nyy:複製光標所在的向下n行。

p,Pp爲將已複製的內容在光標的下一行粘貼,P則爲粘貼在光標的上一行。

u:復原前一個操作。

[Ctrl]+r:重做上一個操作。

.:小數點,重複前一個操作。

一般模式切換到編輯模式:

i,I:進入插入模式,i爲從目前光標所在處插入。I爲在目前所在行的第一個非空格字符處開始插入。

aA:進入插入模式。a爲從目前光標所在處的下一個字符處開始插入。A爲從所在行的最後一個字符處開始插入。

oO:進入插入模式。o爲在下一行插入。O爲在上一行插入。

rR:進入替換模式。r只替換光標所在那個字符一次。R會一直替換光標所在字符,直到按下Esc鍵。

一般模式切換到命令行:

:w:將編輯的數據寫入到硬盤中。

:q:離開vi.後面加!爲強制離開。

:wq:保存後離開。:wq!爲強制保存後離開。


目前主要的編輯器都有恢復功能,vim也不例外。vim是通過“保存”文件來挽回數據的。

每當我們在用vim編輯時,vim都會自動在被編輯的文件的目錄下面再新建一個名爲filename.swap的文件。這就是一個暫存文件,我們對文件filename所做的操作都會被記錄到這個文件當中。如果系統意外崩潰,導致文件沒有正常保存,那麼這個暫存文件就會發揮作用。下面用一個例子來說明(Note:我用的是Ubuntu)。

打開終端,輸入命令,將etc目錄下面的manpath.config複製到tmp目錄下面,並且更改當前工作目錄爲tmp:

cp /etc/manpath.config /tmp

cd /tmp

用vim編輯manpath.config文件:vim manpath.config。

我們在vim的一般模式下按下Ctrl+z組合鍵,vim就會被丟到後臺執行。回到命令提示符環境後,我們模擬將vim的工作不正常中斷。

kill -9 %1;強制殺死制定的進程。

這樣導致暫存盤無法通過正常的流程結束,所以暫存文件不會消失,而是繼續保留下來。當再次編輯那個文件時(輸入命令vim manpath.config),出現(ubuntu 11.10):

這時,有六個按鈕可以使用:

O(pen for Read-Only):打開成只讀文件。

E(dit):用正常方式打開要編輯的文件,並不會載入暫存文件的內容。這很容易出現兩個用戶相互改變對方的文件的問題。

R(ecover):加載暫存文件的內容。

D(elete):如果你確定這個暫存文件是沒有用的,則可以刪除。

Q(uit):不進行任何操作,回到命令行。

A(bort):忽略這個編輯行爲,和Q類似。

需要注意的是:這個暫存文件不會應爲你結束vim後自動刪除,必須要手動刪除。否則每次打開對應的文件時都會出現這樣的提示。


三、vim的功能

【1】塊選擇:

這個功能可以讓我們複製一個矩形區域的內容,十分方便。

v:字符選擇,會將光標經過的地方反白選擇;

V:行選擇;

Ctrl+v:塊選擇;

y:複製反白的地方;

d:刪除反白的地方。

示例如下:


需要注意的是,粘貼時候也是粘貼在一個塊的範圍內,而不是以行爲單位來處理的。

【2】多文件編輯

我們在兩個或多個文件之間複製粘貼內容時,這個功能會讓我們方便很多。

使用命令vim name1 name2 name3...(各個文件名之間用空格隔開)可以同時打開多個文件。

:n:編輯下一個文件;

:N:編輯上一個文件;

:files:列出目前vim打開的所有文件。

【3】多窗口功能

可以在一個窗口中打開多個文件。

輸入命令:sp{filename}便可以實現這個功能。如果想要在新窗口啓動另外一個文件,則加入文件名。如果省略文件名,則打開的是同一個文件。

用一個例子來說明。

vim manpath.config打開一個文件。在一般模式下輸入:sp。發現打開的是同一個文件。如果再輸入:sp /etc/hosts。則變成:


其他的按鍵功能:

Ctrl+w+j:先按下Ctrl不放,再按下w後放開所有的按鍵,再按下j(或向下箭頭鍵),則光標可以移到下方的窗口;

Ctrl+w+k:同上,不過光表移到上面的窗口;

Ctrl+w+q:離開。

【4】vim環境設置

需要注意的是,vim會將i我們的以前的行爲都記錄下來,以方便我們操作。它保存在文件:~/.viminfo中。

vim常用的環境設置參數命令如下:

:set nu  設置行號

:set nonu 取消行號

:set hlsearch 設置高亮度查找

:set nohlsearch 取消高亮度查找

:set backup 自動備份文件

:set ruler 開啓右下角狀態欄說明

:set showmode 顯示左下角的INSERT之類的狀態欄

:set backspace={0,1,2} 設置退格鍵功能。爲2時可以刪任意字符。爲0或1時僅可以刪除剛纔輸入的字符。

:set all 顯示目前所有的環境參數值

:set 顯示與系統默認值不同的參數值

:syntax on/off 是否開啓依據相關程序語法顯示不同的顏色

:set bg=dark/light 是否顯示不同的顏色色調

但是我們沒有必要每次使用vim都要重新設置一次各個參數值。我們可以通過配置文件來直接規定我們習慣的vim操作環境。整體vim的設置值一般是放在/etc/vimrc中的。我們一般不要修改這個文件。我們可以通過修改~/.vimrc這個文件,如果不存在,可以手動創建。然後將我們所希望的設置值寫入。例如,我們可以這樣寫:

  1. vim ~/.vimrc  
  2. set hlsearch(注意:set前面也可以加冒號,結果一樣)  
  3. set backspace=2  
  4. set ruler  
  5. set showmode  
  6. set nu  
  7. syntax on  

創建並保存這個文件之後,當下次重新以vim編輯某個文件時,該文件的默認環境就是這麼設置的。


轉自:http://blog.csdn.net/xiajun07061225/article/details/7039413



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