vi(vim)是上Linux很是經常使用的編輯器,不少Linux發行版都默認安裝了vi(vim)。vi(vim)命令繁多可是若是使用靈活以後將會大大提升效率。vi是「visual interface」的縮寫,vim是vi IMproved(加強版的vi)。在通常的系統管理維護中vi就夠用,若是想使用代碼加亮的話可使用vim。下面vps偵探整理一下vi的使用教程:包含vi的基本介紹、使用模式、文件的打開關閉保存、插入文本或新建行、移動光標、刪除、恢復字符或行、搜索等等,算是一篇比較適合新手學習vi的教程。python
vi有3個模式:插入模式、命令模式、低行模式。linux
●插入模式:在此模式下能夠輸入字符,按ESC將回到命令模式。vim
●命令模式:能夠移動光標、刪除字符等。緩存
●低行模式:能夠保存文件、退出vi、設置vi、查找等功能(低行模式也能夠看做是命令模式裏的)。編輯器
一、VI或VIM的配置文件的路徑學習
發現/usr/share/vim/vimrc和/etc/vim/vimrc指向是同一個文件,即vimrc,爲vi和vim的配置文件,修改這個文件便可。這個路徑在不一樣的LINUX版本中可能會不一樣。spa
二、配置顏色.net
配置VI和VIM的顏色顯示,使它可以高亮度顯示一些特別的單詞,這對編寫程序頗有用。後來打開文件發現裏面其實已經有一行了,只是用引號註釋掉了,只需將syntax on 所在行前面的引號去掉便可。或者另外獨立添加一行:syntax on 也行,另外編輯/etc/profile 增長一行alias vi="vim"就好了。命令行
三、設置鼠標unix
使用VI編輯文本時,若是想修文件中改離光標較遠的位置,這時候想用鼠標定位,可默認狀況下,鼠標是不可用的。若是你想使用鼠標,只需另起一行,寫上:set mouse=a 便可
四、設置自動縮進
默認狀況下,VI和VIM都沒有縮進的,每換一行,光標均定位在頂格,若是你想自動對齊,請將 set autoindent所在行前面的引號去掉,或者另外添加一行:set autoindent也可。這與配置顏色相似。這樣的設置的結果是按回車後新行與上一行自動對齊。
五、設置tab的縮進量
若是用python編寫程序,那麼行縮進量是一個極其重要的概念,同一個塊的縮進量必須相同。你可能喜歡在行前加空格來表示縮進,但每次必須敲屢次空格鍵,若是你喜歡用按TAB鍵來表示縮進,你可能以爲寫的文本或程序不太好看,由於默認狀況下,VI和VIM的TAB縮進量比較大(至少六,七個字符)。設置TAB鍵縮進量的方法:set shiftwidth=3 你也能夠選一 個你本身喜歡的縮進量,好比2,或4。
其餘方便的技巧
一、vi的基本概念
基本上vi能夠分爲三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分以下:
1) 命令行模式command mode)
控制屏幕光標的移動,字符、字或行的刪除,移動複製某區段及進入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才能夠作文字輸入,按「ESC」鍵可回到命令行模式。
3) 底行模式(last line mode)
將文件保存或退出vi,也能夠設置編輯環境,如尋找字符串、列出行號……等。
不過通常咱們在使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令行模式command mode)。
二、vi的基本操做
a) 進入vi
在系統提示符號輸入vi及文件名稱後,就進入vi全屏幕編輯畫面:
$ vi myfile
不過有一點要特別注意,就是您進入vi以後,是處於「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」纔可以輸入文字。初次使用vi的人都會想先用上下左右鍵移動光標,結果電腦一直嗶嗶叫,把本身氣個半死,因此進入vi後,先不要亂動,轉換到「插入模式(Insert mode)」再說吧!
b) 切換至插入模式(Insert mode)編輯文件
在「命令行模式(command mode)」下按一下字母「i」就能夠進入「插入模式(Insert mode)」,這時候你就能夠開始輸入文字了。
c) Insert 的切換
您目前處於「插入模式(Insert mode)」,您就只能一直輸入文字,若是您發現輸錯了字!想用光標鍵往回移動,將該字刪除,就要先按一下「ESC」鍵轉到「命令行模式(command mode)」再刪除文字。
d) 退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒號鍵進入「Last line mode」,例如:
: w filename (輸入 「w filename」將文章以指定的文件名filename保存)
: wq (輸入「wq」,存盤並退出vi)
: q! (輸入q!, 不存盤強制退出vi)
三、命令行模式(command mode)功能鍵
1). 插入模式
按「i」切換進入插入模式「insert mode」,按「i」進入插入模式後是從光標當前位置開始輸入文件;
按「a」進入插入模式後,是從目前光標所在位置的下一個位置開始輸入文字;
按「o」進入插入模式後,是插入新的一行,從行首開始輸入文字。
2). 從插入模式切換爲命令行模式
按「ESC」鍵。
1、打開文件、保存、關閉文件(vi命令模式下使用)
vi filename //打開filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出編輯器,若是文件已修改請使用下面的命令
:q! //退出編輯器,且不保存
:wq //退出編輯器,且保存文件
2、插入文本或行(vi命令模式下使用,執行下面命令後將進入插入模式,按ESC鍵可退出插入模式)
a //在當前光標位置的右邊添加文本
i //在當前光標位置的左邊添加文本
A //在當前行的末尾位置添加文本
I //在當前行的開始處添加文本(非空字符的行首)
O //在當前行的上面新建一行
o //在當前行的下面新建一行
R //替換(覆蓋)當前光標位置及後面的若干文本
J //合併光標所在行及下一行爲一行(依然在命令模式)
3、移動光標(vi命令模式下使用)
一、使用上下左右方向鍵
二、命令模式下:h 向左、j 向下 、k 向上、l 向右。
空格鍵 向右、Backspace 向左、Enter 移動到下一行首、- 移動到上一行首。
4、刪除、恢復字符或行(vi命令模式下使用)
x //刪除當前字符
nx //刪除從光標開始的n個字符
dd //刪除當前行
ndd //向下刪除當前行在內的n行
u //撤銷上一步操做
U //撤銷對當前行的全部操做
5、搜索(vi命令模式下使用)
/vpser //向光標下搜索vpser字符串
?vpser //向光標上搜索vpser字符串
n //向下搜索前一個搜素動做
N //向上搜索前一個搜索動做
6、跳至指定行(vi命令模式下使用)
n+ //向下跳n行
n- //向上跳n行
nG //跳到行號爲n的行
G //跳至文件的底部
7、設置行號(vi命令模式下使用)
:set nu //顯示行號
:set nonu //取消顯示行號
8、複製、粘貼(vi命令模式下使用)
yy //將當前行復制到緩存區,也能夠用 "ayy 複製,"a 爲緩衝區,a也能夠替換爲a到z的任意字母,能夠完成多個複製任務。
nyy //將當前行向下n行復制到緩衝區,也能夠用 "anyy 複製,"a 爲緩衝區,a也能夠替換爲a到z的任意字母,能夠完成多個複製任務。
yw //複製從光標開始到詞尾的字符。
nyw //複製從光標開始的n個單詞。
y^ //複製從光標到行首的內容。 VPS偵探
y$ //複製從光標到行尾的內容。
p //粘貼剪切板裏的內容在光標後,若是使用了前面的自定義緩衝區,建議使用"ap 進行粘貼。
P //粘貼剪切板裏的內容在光標前,若是使用了前面的自定義緩衝區,建議使用"aP 進行粘貼。
9、替換(vi命令模式下使用)
:s/old/new //用new替換行中首次出現的old
:s/old/new/g //用new替換行中全部的old
:n,m s/old/new/g //用new替換從n到m行裏全部的old
:%s/old/new/g //用new替換當前文件裏全部的old
10、編輯其餘文件
:e otherfilename //編輯文件名爲otherfilename的文件。
11、修改文件格式
:set fileformat=unix //將文件修改成unix格式,如win下面的文本文件在linux下會出現^M。
總結:vi(vim)教程雖然有比較多的命令,可是隻要勤加練習,相信你會很快的熟練掌握,同時也會給你的工做或學習帶來更高的效率。當若是不知道本身處在什麼模式時能夠按2次Esc鍵便可回到命令模式,會有最後提醒一點:注意大小寫!!!