1. 程式人生 > 其它 >檔案管理-Linux系統VIM編輯

檔案管理-Linux系統VIM編輯

技術標籤:Linux運維linuxvimcentos運維

  • VIM基本介紹
  • VIM模式介紹
  • VIM命令模式
  • VIM編輯模式
  • VIM末行模式
  • VIM檢視模式
  • VIM環境變數
  • VIM擴充套件知識
  • VIM練習

VIM基本介紹

vi和vim命令是linux中強大的文字編輯器,由於Linux系統一切皆檔案,而配置一個服務就是在修改其配置檔案的引數。vim編輯器是運維工程師必須掌握的一個工具, 沒有它很多工作都無法完成

vim其實是vi的升級版

那麼vi與vim有什麼區別?

vi不顯示高亮顏色語法

vim顯示高亮顏色語法。

其他功能沒有什麼區別

所以在linux系統下,使用vi還是vim取決個人習慣。

如果在剛裝完的CentOS作業系統下沒有vim這個命令,用如下方式進行安裝即可

yum install -y vim-enhanced

VIM模式介紹

Vim編輯器中設定了三種模式:

命令模式、編輯模式在這裡插入圖片描述
、末行模式,每種模式分別又支援多種不同的命令快捷鍵,大大提高了工作效率,而且使用者在習慣之後也會覺得相當順手。要想高效率地操作文字,就必須先搞清這三種模式的操作區別以及模式之間的切換方法

命令模式: 控制游標移動, 可對文字進行復制、貼上、刪除等工作。
使用vim filename 編輯一個檔案時,一進入該檔案就是命令模式了。
在這個模式下,可以進行游標移動、複製、刪除、貼上操作。
編輯模式: 正常的文字寫入。
從命令模式進入編輯模式,只需你按一個鍵即可(i, I, a, A, o, O, r, R)。
當進入編輯模式時,會在螢幕的最下一行出現“INSERT的字樣。
從編輯模式回到命令模式只需要按鍵盤左上方的 ESC 鍵即可。
末行模式: 儲存或退出文件,以及設定編輯環境
在命令模式下,輸入 “:” 或者 “/“ 即可進入末行模式。
在該模式下,可以進行的操作有,顯示行號、搜尋、替換、儲存、退出。

vim編輯器配置檔案整體流程如下:

1.預設開啟檔案處於命令模式

2.需要從命令模式切換至編輯模式

3.編輯模式修改配置檔案, 然後返回命令列模式

4.最後通過命令模式進入末行模式,儲存和退出操作

注意:在vim中,無法直接從編輯模式切換到末行模式。

VIM命令模式

命令列模式:(預設開啟檔案進入的是命令列模式)

//命令游標跳轉
G   跳轉游標至末端
gg  跳轉游標至頂端
Ngg 跳轉游標至當前檔案內的22行
$   將當前游標跳轉至游標所在行的末端(尾部)
^   將當前游標跳轉至游標所在行的頭部  —> 數字0 可實現類似效果

//檔案內容較多
ctrl+f  往下翻頁(行比較多)  

ctrl+b  往上翻頁
//複製    
yy複製當前游標所在的行
5yy複製當前游標以及游標向下4行

//貼上  
p(小寫) 貼上至當前游標下一行   
P(大寫) 貼上至當前游標上一行

//刪除   
dd  刪除當前游標所在的行   
4dd 刪除當前游標所在的行以及往下的3行
dG  刪除當前游標以後的所有行
D   刪除當前游標及游標以後的內容  
x   刪除當前游標標記往後的字元
X   刪除當前游標標記往前的字元

//剪貼
先刪除dd(number dd),後貼上p

//撤銷
u   撤銷上一次的操作(類似windows下的ctrl+z)

//替換    
r   替換當前游標標記的單個字元
R   進入REPLACE模式, 連續替換,ESC結束

VIM編輯模式

編輯模式(從命令列模式進入到編輯模式)

i 進入編輯模式,游標不做任何操作
I 進入編輯模式,並且游標會跳轉至本行的頭部
a 進入編輯模式,將當前游標往後一位
A 進入編輯模式,將游標移動至本行的尾部
o 進入編輯模式,並在當前游標下新增一行空白內容
O 進入編輯模式,並在當前游標上新增一行空白內容

VIM末行模式

末行模式主要用於搜尋, 儲存, 退出檔案, 還可以讓使用者執行外部的Linux命令或跳轉到所編寫文件的特定行數

末行模式(必須退回到命令列模式)

:w 儲存當前狀態
:w! 強制儲存當前狀態
:q 退出當前文件(文件必須儲存才能退出)
:q! 強制退出文件不會修改當前內容
:wq 先儲存,在退出
:wq! 強制儲存並退出
:x 先儲存,在退出
ZZ 儲存退出, shfit+zz
:number 跳轉至對應的行號

末行模式(查詢和替換)

查詢  /string 需要搜尋的內容(查詢)
        n 按搜尋到的內容依次往下進行查詢
        N 按搜尋到的內容依次往上進行查詢
替換
    :1,5s#sbin#test#g   替換1-5行中包含sbin的內容為test
    :%s#sbin#test#g 替換整個文字檔案中包含sbin的替換為test
    :%s#sbin#test#gc  替換內容時時提示是否需要替換
另存
:w /root/test  將檔案所有內容另存為/root/test

讀入
:r  /etc/hosts  讀入/etc/hosts檔案至當前游標下面
:5r /etc/hosts  指定/etc/hosts檔案當前檔案的哪行下面

VIM檢視模式

檢視模式(從命令列模式進入檢視模式)

ctrl+v 進入VISUAL BLOCK 選中需要註釋的行(可視塊模式)

1.插入:按shift+i進入編輯模式,輸入#,結束按ESC鍵
2.刪除:選中內容後,按x或者d鍵刪除
3.替換:選中需要替換的內容, 按下r鍵,然後輸入替換後的內容
shift+v 進入VISUAL LINE 選中行內容(可視行模式)
1.複製:選中行內容後按y鍵及可複製。
2.刪除:選中行內容後按d鍵刪除。

VIM環境變數

環境變數臨時生效
:set nu 顯示行號
:set ic 忽略大小寫, 在搜尋的時候有用
:set ai 自動縮排
:set list   顯示製表符(空行、tab鍵)
:set no[nu|ic|ai…]  取消臨時設定的變數
環境變數永久生效
~/.vimrc 個人環境變數(優先順序高) /etc/vimrc  全域性環境變數
# vim  ~/.vimrc   
set nu 
set ic
//如果個人vim環境沒有配置, 則使用全域性vim環境變數配置。
//如果個人vim環境和全域性環境變數產生衝突, 優先使用個人vim環境變數。

VIM擴充套件知識

1.如何同時編輯多個檔案
vim -o file1 file2 水平分割
vim -O file1 file2 垂直分割
//ctrl+ww 檔案間切換
2.相同檔案之間差異對比
diff  檔案對比(用的不多)    
vimdiff  以vim方式開啟兩個檔案對比,標記不同的內容
3.如果VIM非正常退出 (ctrl+z)掛起或強制退出終端沒關閉VIM後
//刪除同文件名的.swp檔案即可解決
.filename.swp   rm -f .filename.swp

VIM練習

請把/etc/passwd 複製到/root/目錄下,並重命名為test.txt
用vim開啟test.txt並設定行號
分別向下、向右、向左、向右移動5個字元
分別向下、向上翻兩頁
把游標移動到第10行
讓游標移動到行末,再移動到行首
移動到test.txt檔案的最後一行
移動到檔案的首行
搜尋檔案中出現的 root 並數一下一共出現多少個,不區分大小寫搜尋
把從第一行到第三行出現的root 替換成–alex–
還原上一步操作
把整個檔案中所有的root替換成–alex–
把游標移動到20行,刪除本行
還原上一步操作
刪除第19行
還原上一步操作
刪除從5行到10行的所有內容
還原上一步操作
複製2行並貼上到11行下面
還原上一步操作(按兩次u)
複製從11行到15行的內容並貼上到8行上面
還原上一步操作(按兩次u)
把13行到18行的內容移動檔案的尾部
還原上一步操作(按兩次u)
游標移動到首行,把/sbin/nologin改成/bin/bash
在第一行下面插入新的一行,並輸入”# Hello!”
儲存文件並退出