vim是vi的加強版,它比vi更強大,vi號稱神同樣的編輯器,它是一款跨平臺的軟件,也就是說,不論你是在windows/linux/mac os下都能使用它,它是一款純命令行界面的編輯工具,很是適合在無圖形化界面的linux服務器上編輯一些配置文件等。可擴展性很是強,固然也有圖像化界面的如GVIM,通常傳說中開發界的武林高手經過定製,能夠將它打形成最強的開發神器,例如加上代碼高亮、自動縮進、代碼自動補全等等等等,如圖所示:
python
在全部linux或者類unix操做系統上,都內置了vi編輯器,但可能沒有內置vim:若有你須要安裝的話可使用以下命令去安裝:linux
Debian/Ubuntunginx
sudo apt-get install vim
Redhat/Centosshell
yum -y install vim
1、如何使用vim編輯文件vim
咱們打開終端,輸入vim就啓動了vim程序了,或者你輸入vim 後面跟上某個文件的文件名一樣也能夠打開vimwindows
2、如何編輯文件bash
在瞭解編輯文件以前,咱們必須知道vim的工做模式,他有三種工做模式,分別爲:服務器
首先,咱們來看下普通模式,它能夠實現最基本的光標移動與大量的快捷操做,插入模式能夠實現文件的基本編輯操做,命令模式能夠實現特定的功能,如查找,保存退出等。
普通模式的一些說明:
按鍵 | 說明 |
a | 進入插入模式後,後續輸入的內容將插入到當前光標後面 |
A | 進入插入模式後,後續輸入的內容將插入當前段落的段尾 |
i | 進入插入模式後,後續輸入的內容將插入到當前光標的前面 |
I | 進入插入模式後,後續輸入的內容將插入到當前段落的段首 |
o | 進入插入模式後並在當前行的後面建立一個新的空白行 |
O | 進入插入模式後並在當前行的前面插入一個新的空白行 |
光標操做,在vim中,上下左右移動,跳到行首行尾段首段尾文首文尾等操做都是在普通模式下操做的
快捷鍵 |
說明 |
h | 光標向左移動一位 |
j | 光標向下移動一位 |
k | 光標向上移動一位 |
l | 光標向右移動一位 |
gg | 移動光標至文件首行 |
G | 移動光標至文件末行 |
nG | n爲數字,例如移動到第10行,則是10G |
^ | 光標移動當前行的首字符 |
$ | 光標移動到當前行的尾字符 |
fx | 光標移動至當前行的下一個x字符處 |
Fx | 光標移動至當前行的上一個x字符處 |
w | 光標向右移動一個單詞 |
nw | 光標向右移動n個單詞 |
b | 光標向左移動一個單詞 |
nb | 光標向左移動n個單詞 |
:line number | 跳轉到指定行 |
編輯文檔能夠配合普通模式的光標操做跳轉到某一行或者某一個單詞後進行相應的操做
按鍵 | 說明 |
x | 刪除當前光標所在位置的字符 |
dd | 刪除當前光標所在行 |
ndd | 刪除當前光標所在行後的n行,n爲數字 |
d$ | 刪除當前光標所在位置至行尾的內容 |
J | 刪除換行符,能夠將兩行合併爲一行 |
u | 撤銷 |
rx | 將當前光標字符替換爲x |
yy | 複製當前行 |
nyy |
才複製當前行開始的n行 |
P | 粘貼至當前行以前 |
p | 粘貼至當前行以後 |
VIM的查找和替換
指令 | 說明 |
/char | 查找指定單詞的文件或指定行 |
:s/root/admin/ | 將當前行出現的第一個root替換成admin |
:s/root/admin/g | 將當前行中全部root替換成admin |
:3,5s/sbin/bin/g | 將3,5行直接的sbin替換成bin |
:%s/nologin/fault/g | 將全部的nologin都替換爲fault |
保存和退出
指令 | 功能 |
:wq!/:x | 強制保存:wq保存,若是沒有權限操做文件強制保存無效,:wq nginx.conf 保存文件尾nginx.conf |
:q! | 不保存並退出 |
句間移動和段間移動
( | 移動到上一句空白處 |
) | 移動到下一句空白處 |
{ | 移動到上一段空白處 |
} | 移動到下一段空白處 |
一些小技巧
打開文件就自帶跳轉到某一行
vim +num file ,例如
vim +5 nginx.conf
在vim中使用shell執行命令
:!ls
多文件模式
vim FILE1 FILE2 ...
:next | 跳轉到下一個文件 |
:first | 跳轉到第一個文件 |
:prev | 跳轉到上一個文件 |
:last | 跳轉到最後一個文件 |
:wqall | 所有保存並退出 |
:q!all | 所有退出 |
多文件分屏操做
vim -o|-O FILE1 FILE2 ...
-o 橫向分屏
-O 豎向分屏
在多個窗口直接切換
定製vim的某些工做特性:
(1) 行號
顯示:set nu
禁用:set nonu
(2) 括號匹配
顯示:set sm
禁用:set nosm
(3) 自動縮進:
set ai
set noai
(4) 高亮搜索
set hlsearch
set nohlsearch
(5) 語法着色
syntax on
syntax off
(6) 忽略字符大小寫
set ic
set noic
:help 獲取幫助
:help SUBJECT
特性設定的永久生效方式:
全局配置文件:/etc/vimrc
用戶我的的配置文件:~/.vimrc