1.VIM基本介紹:
什么是vim?
Vim 是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。vi 內置在Linux系統中,是vim的簡化版編輯器,vim則需要進行安裝使用
vim鍵盤圖:
vim的安裝命令:
yum install -y vim
2.vim模式介紹:
基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。 這三種模式的作用分別是:
命令模式:
Vim 啟動后,默認進入命令模式,在任何模式下,都可以按 Esc 鍵返回到命令模式,可以多按幾次 Esc 鍵,保證順利返回到命令模式。
在此模式下,可以使用上、下、左、右鍵進行光標移動,也可以鍵入不同的命令完成選擇、復制、粘貼、刪除等操作。
命令光標跳轉:
G (shift + g) 跳轉光標至末尾
gg 跳轉光標至開頭
Ngg 跳轉光標至當前文件內的N行(N為數字)
$ 將當前光標跳轉至光標所在行的末端(尾部)
^|0 將當前光標跳轉至光標所在行的頭部 —> 數字0 可實現類似效果
復制粘貼:
yy 復制當前光標所在的行
Nyy|yNy 復制當前光標以及光標向下N行(N為數字)
p(小寫) 粘貼至當前光標下一行
P(大寫) 粘貼至當前光標上一行
刪除剪切
dd 刪除當前光標所在的行
Ndd|dNd 刪除當前光標所在的行以及往下的N行(N為數字)
dG 刪除當前光標以后的所有行
D 刪除當前光標及光標以后的內容
x 刪除當前光標標記往后的字符
X 刪除當前光標標記往前的字符
ddp 先刪除dd(number dd),后粘貼p
撤銷替換回滾
u 撤銷上一次的操作(類似windows下的ctrl+z)
r 替換當前光標標記的單個字符
R 進入REPLACE模式, 連續替換,ESC結束
Ctrl+r 當你執行了撤銷u的時候,發現撤銷錯了,回滾
編輯模式
在編輯模式下可以編輯文本內容。在命令模式下按 i、 a 、o等鍵可以進入編輯模式,在此模式下可以輸入文本,但命令執行后的字符插入位置不同
i 進入編輯模式,光標不做任何操作
I 進入編輯模式,並且光標會跳轉至本行的頭部
a 進入編輯模式,將當前光標往后一位
A 進入編輯模式,將光標移動至本行的尾部
o 進入編輯模式,並在當前光標下添加一行空白內容
O 進入編輯模式,並在當前光標上添加一行空白內容
s 進入編輯模式,並刪除當前光標下的字符
S 進入編輯模式,並刪除當前光標所在行
底行模式
命令模式下按:鍵進入底行模式。這時光標會移到屏幕底部,在這里可以輸入相關指令保存修改或退出 Vim,也可以設置編輯環境、尋找字符串、列出行號等。指令執行后會自動返回命令模式。
:w //保存當前狀態
:w! //強制保存當前狀態
:q //退出當前文檔(文檔必須保存才能退出)
:q! //強制退出文檔不會修改當前內容
:wq //先保存,在退出
:wq! //強制保存並退出
:x //先保存,在退出
ZZ //保存退出, shfit+zz
:number //跳轉至對應的行號,和普通模式Ngg一個意思
低行模式(查找和替換)
查找 /string 需要搜索的內容(查找)
n 按搜索到的內容依次往下進行查找
N 按搜索到的內容依次往上進行查找
替換
:1,5s#sbin#test#g 替換1-5行中包含sbin的內容為test
:%s#sbin#test#g 替換整個文本文件中包含sbin的替換為test
:%s#sbin#test#gc 替換內容時時提示是否需要替換
%表示所有行 s表示替換 g表示所有匹配到的內容 c表示提示
替換為 w (y/n/a/q/l/^E/^Y)?
y:替換一次
n:選中下一個
a:全部替換
q:退出
l:替換一次並退出詢問
另存
: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鍵,然后輸入替換后的內容
# 2.批量修改文件(添加注釋)
1)按Ctrl + v進入可視塊視圖模式
2)移動光標-1.按下鍵-2.Ngg-3.G
3)按 Shift + i 進入編輯模式
4)輸入"#"
5)按ESC退出編輯模式
shift+v 進入VISUAL LINE 選中行內容(可視行模式)
1.復制:選中行內容后按y鍵及可復制。
2.刪除:選中行內容后按d鍵刪除
## 文件對比命令:diff (不推薦)
## 文件對比命令:vimdiff(推薦)
## vim 同時編輯多個文件
-o:水平分割
-O:垂直分割
## Ctrl + ww 切換文件
## 編輯文件指定的行
vim+N :N代表阿拉伯數字
Vim環境變量臨時生效
:set nu 顯示行號
:set ic 忽略大小寫, 在搜索的時候有用
:set ai 自動縮進
:set list 顯示制表符(空行、tab鍵)
:set no[nu|ic|ai…] 取消臨時設定的變量
Vim環境變量永久生效
~/.vimrc 個人環境變量(優先級高) /etc/vimrc 全局環境變量
# vim ~/.vimrc
syntax on
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
set number
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set ruler
set incsearch
set showmatch
set matchtime=10
set ignorecase
set cursorline
set t_Co=256
colorscheme molokai
#語法檢查及高亮
syntax on
#設定默認解碼
set?fenc=utf-8?
set?fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
#顯示行號
set?number?
#vim使用自動對齊,也就是把當前行的對齊格式應用到下一行
set?autoindent?
#依據上面的對齊格式,智能的選擇對齊方式
set?smartindent?
#設置tab鍵為4個空格
set?tabstop=4?
#設置當行之間交錯時使用4個空格
set?shiftwidth=4?
#設置在編輯過程中,於右下角顯示光標位置的狀態行
set?ruler?
#設置增量搜索,這樣的查詢比較smart
set?incsearch?
#高亮顯示匹配的括號
set?showmatch?
#匹配括號高亮時間(單位為?1/10?s)
set?matchtime=10?
#在搜索的時候忽略大小寫
set?ignorecase?
#禁止生成臨時
#set?nobackup?
#當前行高亮
set?cursorline?
#支持256色
set?t_Co=256?
#使用molokai顏色模板
#colorscheme molokai
//如果個人vim環境沒有配置, 則使用全局vim環境變量配置。
//如果個人vim環境和全局環境變量產生沖突, 優先使用個人vim環境變量。