1. 程式人生 > >Linux系統VIM編輯器管理(2)

Linux系統VIM編輯器管理(2)

Linux 是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多工、支援多執行緒和多CPU的作業系統.它能執行主要的UNIX工具軟體、應用程式和網路協議.它支援32位和64位硬體.Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統.

系統管理員的重要工作就是得要修改與設定某些重要軟體的配置檔案,因此至少得要學會一種以上的文字介面的文字編輯器.在所有的Linux發行版都會有的一套文字編輯器就是VI,而且很多軟體預設也是使用VI做為他們編輯的介面,此外VIM是進階版的VI,VIM不但可以用不同顏色顯示文字內容,還能夠進行諸如shell,C,Python,等程式編輯功能,你可以將VIM視為一種程式設計環境.



VI/VIM模式概述

在 Linux 的世界中,絕大部分的配置檔案都是以 ASCII 的純文字形態存在,因此利用簡單的文字編輯軟體就能夠修改設定了,與微軟的 Windows 系統不同的是,如果你用慣了 Microsoft Word 或 Corel Wordperfect 的話,那麼除了 X window 裡面的圖形介面編輯程式,用起來尚可應付外,在 Linux 的文字模式下,會覺得文書編輯程式都沒有視窗介面來的直觀與方便.

VIM 有哪些特點呢 ?

1.所有的 Unix Like 系統都會內建 VIM 文字編輯器,其他的文書編輯器則不一定會存在.
2.很多個別軟體的編輯介面都會主動呼叫 VIM (例如未來會談到的 crontab, visudo, edquota 等指令)
3.VIM 具有程式編輯的能力,可以主動的以字型顏色辨別語法的正確性,方便程式設計.
4.因為VIM程式簡單,並可自定義按鍵,從而編輯速度相當快速,在程式設計領域大有作為.

那麼什麼是 VIM 呢 ?

其實你可以將VIM視作VI的升級版,VIM可以用顏色或底線等方式來顯示一些特殊的資訊,簡單的來說VI是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方.VIM則可以說是程式開發者的一項很好用的工具,就連VIM的官方網站自己也說VIM是一個『程式開發工具』而不是文書處理軟體,因為VIM裡面加入了很多額外的功能,例如支援正規表示法的搜尋架構、多檔案編輯、區塊複製等等.這對於我們在 Linux 上面進行一些配置檔案的編輯時,是很好的一項功能.

那 VIM 的工作模式有哪些呢 ?

基本上VI/VIM共分為三種模式,分別是命令模式,輸入模式,末行模式.

命令模式:
以 VI/VIM 開啟一個檔案就直接進入命令模式(這是預設的模式),在這個模式中,你可以使用『上下左右』按鍵來移動游標,你可以使用『刪除字元』或『刪除整行』來處理檔案內容,也可以使用『複製、貼上』來處理你的檔案資料.

編輯模式:
在輸入模式中可以進行刪除、複製、貼上等等的動作,但是卻無法編輯檔案內容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之後才會進入編輯模式,注意,通常在 Linux 中,按下這些按鍵時,在畫面的左下方會出現『 INSERT 或 REPLACE 』的字樣,此時才可以進行編輯.而如果要回到一般模式時,則必須要按下『Esc』這個按鍵即可退出編輯模式.

末行模式:
在一般模式當中,輸入『 : / ? 』三個中的任何一個按鈕,就可以將游標移動到最底下那一行,在這個模式當中,可以提供你『搜尋資料』的動作,而讀取、存檔、大量取代字元、離開 VI/VIM、顯示行號等等的動作則是在此模式中達成的.


VI/VIM模式按鍵

◆命令模式◆

以 VI/VIM 開啟一個檔案就直接進入命令模式(這是預設的模式),在這個模式中,你可以使用『上下左右』按鍵來移動游標,你可以使用『刪除字元』或『刪除整行』來處理檔案內容,也可以使用『複製、貼上』來處理你的檔案資料.

操作型別 操作鍵(命令) 功能(作用)
游標方向移動 ↑ ↓ ← → 上、下、左、右
字母移動 H j k l 上、下、左、右
翻頁 Page Down或Ctrl+F(大) 向下翻動一整頁內容
Page Up或Ctrl+B(大) 向上翻動一整頁內容
行內快速跳轉 Home鍵或“^”、數字“00” 跳轉至行首
End鍵或“$”鍵 跳轉到行尾
行間快速跳轉 1G或者gg 跳轉到檔案的首行
G 跳轉到檔案的末尾行
#G 跳轉到檔案中的第#行
刪除 x或Del 刪除游標處的單個字元
dd 刪除當前游標所在行
#dd 刪除從游標處開始的#行內容
d^ (d shift+6) 刪除當前游標之前到行首的所有字元(不包含游標)
d$ 刪除當前游標處到行尾的所有字元(包含游標)
複製 yy 複製當前行整行的內容到剪貼簿
#yy 複製從游標處開始的#行內容
貼上 p 將緩衝區中的內容貼上到游標位置處之後(下一行)
P(大) 貼上到游標位置處之前(上一行)
替換 r 替換游標所在字元
R 從光標出開始替換,按ESC鍵結束
/word /word 從上而下在檔案中查詢字串“word”
?word ?word 從下而上在檔案中查詢字串“word”
n n 定位下一個匹配的被查詢字串
N N 定位上一個匹配的被查詢字串
u u 按一次取消最近的一次操作,多次重複按u鍵,恢復已進行的多步操作
U U 用於取消對當前行所做的所有編輯
Shift+zz或者ZZ Shift+zz(小)或者ZZ 儲存當前的檔案內容並退出vi編輯器

◆編輯模式◆

在輸入模式中可以進行刪除、複製、貼上等等的動作,但是卻無法編輯檔案內容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之後才會進入編輯模式,注意,通常在 Linux 中,按下這些按鍵時,在畫面的左下方會出現『 INSERT 或 REPLACE 』的字樣,此時才可以進行編輯.而如果要回到一般模式時,則必須要按下『Esc』這個按鍵即可退出編輯模式.

操作型別 操作鍵(命令) 功能(作用)
游標後插入 a 在游標所在字元後插入
游標行尾插入 A 在游標所在行尾插入
游標前插入 i 在游標所在字元前插入
游標後插入 I 在游標所在行行首插入
游標下插入 o 在游標下插入新行
游標上插入 O 在游標上插入新行

◆末行模式◆

在一般模式當中,輸入『 : / ? 』三個中的任何一個按鈕,就可以將游標移動到最底下那一行,在這個模式當中,可以提供你『搜尋資料』的動作,而讀取、存檔、大量取代字元、離開 VI/VIM、顯示行號等等的動作則是在此模式中達成的.

功能 命令 備註
儲存檔案 :w 儲存所做操作
:w /root/newfile 另存為其它檔案
退出vi :q 未修改退出
:q! 放棄對檔案內容的修改,並退出vi
:wq 儲存檔案退出
刪除多行檔案 :n,nd 刪除從n-n的行
:e ~/install.log 開啟新的檔案進行編輯
:r /etc/filesystems 在當前檔案中讀入其他檔案內容
:!命令 直接執行命令列印到螢幕上
:r!命令 匯入命令結果到游標所在處
行號顯示 set nu 在編輯器中顯示行號
:set nonu 取消編輯器中的行號顯示
顏色開關 :syntax off 關閉顏色顯示
:syntax on 開啟顏色顯示
正則替換 :s /old/new/ 將當前行中查詢到的第一個字元“old” 串替換為“new”
:s /old/new/g 將當前行中查詢到的所有字串“old” 替換為“new”
:#,#s /old/new/g 在行號“#,#”範圍內替換所有的字串“old”為“new”
:% s /old/new/g 在整個檔案範圍內替換所有的字串“old”為“new”
:s /old/new/cg 在替換命令末尾加入c命令,將對每個替換動作提示使用者進行確認


VI/VIM拓展功能

◆VIM快捷命令◆

例項1:使用VIM配置快捷鍵,當輸入Ctrl+p快捷鍵時,執行在行首新增#號.

#^P 不能手動輸入,需要執行ctrl+V+P 來定義或者ctrl+V,然後ctrl+P.

:map ^P I#<esc>

此時在指定行按下Ctrl+p 既可以實現在開頭添加註釋.

例項2:使用VIM配置快捷鍵,當輸入Ctrl+b快捷鍵時,執行調到行首,並刪除一個字元.

#^P 不能手動輸入,需要執行ctrl+V+b 來定義或者ctrl+V,然後ctrl+b.

:map ^B ^x

此時在指定行按下Ctrl+b 既可以實現在開頭刪除一個字元.

例項3:使用VIM配置快捷鍵,當輸入ab快捷鍵時,將myweb替換成mkdirs.com.

:ab myweb mkdirs.com

◆VIM塊選擇命令◆

塊選擇命令,可以實現批量的選擇一塊資料進行操作.

| 參 數 | 說 明 |
|:---- -----:|:--------------------------:|
| v | 字元選擇,游標經過的地方反白|
| V | 行選擇,游標經過的地方反白 |
| Ctrl+v | 塊選擇,一次選擇一個格 |
| shift+v | 行選擇,一次選擇一行資料 |
| y | 將反白的地方複製起來 |
| d | 將反白的地方刪除 |

◆VIM多視窗編輯◆

sp命令,可以編輯多視窗,我們可以實現多視窗之間的編輯和切換功能.

參 數 說 明
:sp filename 在VIM中開啟一個新視窗
Ctrl+w+j 切換到上一個視窗
Ctrl+w+k 切換到下一個視窗

◆VIM環境變數配置◆

VIM常用環境變數的說明,和常用引數的配置.

參 數 說 明
:set nu 設定與取消編號
:set nonu
:set hlsearch 設定與取消高亮字型
:set nohlsearch
:set backup 是否自動備份
:set nobackup
:set cursorline 給指定行新增下劃線
:set all 顯示所有環境變數
:set 顯示與系統預設值不同的引數
:syntax on 開啟語法高亮
:set bg=dark 字型高亮顯示
:set bg=light 字型低亮度顯示

例項1:通過寫入配置檔案 ./vimrc實現配置檔案的永久生效,在這裡永久新增一個下劃線.

[[email protected] ~]# vim .vimrc
[[email protected] ~]# cat .vimrc 
set cursorline