在命令行窗口下想要打開或者新建並編輯均可使用vi/vim命令。首先介紹一下vi/vim:vi編輯器是全部Unix及Linux系統下標準的編輯器,他就至關於windows系統中的記事本同樣,它的強大不遜色於任何最新的文本編輯器。他是咱們使用Linux系統不能缺乏的工具。因爲對Unix及Linux系統的任何版本,vi編輯器是徹底相同的,學會它後,您將在Linux的世界裏暢行無阻。
vim 具備程序編輯的能力,能夠以字體顏色辨別語法的正確性,方便程序設計;
由於程序簡單,編輯速度至關快速。
vim能夠看成vi的升級版本,他能夠用多種顏色的方式來顯示一些特殊的信息。
vim會依據文件擴展名或者是文件內的開頭信息, 判斷該文件的內容而自動的執行該程序的語法判斷式,再以顏色來顯示程序代碼與通常信息。
vim裏面加入了不少額外的功能,例如支持正則表達式的搜索、多文件編輯、塊複製等等。正則表達式
vi能夠分爲三種狀態,分別是通常模式、編輯模式和命令行模式,各模式的功能區分以下:vim
通常模式:
以vi打開一個文件就直接進入通常模式了(這是默認的模式)。在這個模式中, 你可使用上下左右按鍵來移動光標,你可使用刪除字符或刪除整行來處理文件內容, 也可使用複製、粘貼來處理你的文件數據。windows
編輯模式:
在通常模式中能夠進行刪除、複製、粘貼等的操做,可是卻沒法編輯文件的內容,只有當你按下【i, I, o, O, a, A, r, R】等任何一個字母以後纔會進入編輯模式。這時候屏幕的左下方會出現【INSERT或 REPLACE】的字樣,此時才能夠進行編輯。而若是要回到通常模式時, 則必需要按下【Esc】便可退出編輯模式。編輯器
命令行模式:
輸入【 : / ? 】三個中的任何一個,就能夠將光標移動到最底下那一行。在這個模式中, 能夠提供查找、讀取、存盤、替換字符、離開vi、顯示行號等的動做則是在此模式中完成的!ide
在命令行窗口下使用 ll 命令查看當前目錄全部文件,使用vi/vim若是有則打開編輯,若是沒有則新建編輯工具
使用方法: vi 文本名.擴展名 如 vi hello.txt 則進入hello.txt文件通常模式,只有當你按下【i, I, o, O, a, A, r, R】等任何一個字母以後纔會進入編輯模式。則介紹一下這幾個鍵的功能測試
【i, I】 進入編輯模式:
i 爲【從目前光標所在處插入】
I 爲【在目前所在行的第一個非空格符處開始插入】字體
【a, A】 進入編輯模式(Insert mode):
a 爲【從目前光標所在的下一個字符處開始插入】
A 爲【從光標所在行的最後一個字符處開始插入】spa
【o, O】 進入編輯模式:
o 爲【在目前光標所在的下一行處插入新的一行】
O 爲在目前光標所在處的上一行插入新的一行命令行
【r, R】 進入取代模式:
r 只會取代光標所在的那一個字符一次
R會一直取代光標所在的文字,直到按下 ESC 爲止;
按下【Esc】 退出編輯模式,回到通常模式
通常模式切換到命令行模式可用的按鈕說明
【:w】 保存編輯的內容
【:w!】強制寫入該文件,但跟你對該文件的權限有關
【:q】 在未進行修改的前提下離開vi
【:q!】 不想保存修改強制離開
【:wq】 強制寫入並保存後離開
【:x】 保存後離開
【ZZ】 若文件沒有更動,則不保存離開,若文件已經被更改過,則保存後離開
【:w filename】 將編輯的數據保存成另外一個文件(相似另存)
【:r filename】 在編輯的數據中,讀入另外一個文件的數據。即將【filename】 這個文件的內容加到光標所在行後面。
【:n1,n2 w filename】 將n1到n2的內容保存成filename這個文件。
【:! command】暫時離開vi 到命令行模式下執行command的顯示結果!例如 【:! ls /home】便可在 vi 當中察看/home底下以ls輸出的文件信息!
【:set nu】 顯示行號
【:set nonu】 與 set nu 相反,爲取消行
通常模式可用的按鈕說明
移動光標
【h、j、k、l】,分別控制光標左、下、上、右移一格
按【ctrl+b】屏幕往"後"移動一頁
按【ctrl+f】屏幕往"前"移動一頁
【n<space>】光標向右移動n個字符
【Home】移動到這一行的最前面字符處:0數字,但不能用數字小鍵盤上的數字
【End】 移動到這一行的最後面字符處:$,我測試好像不行
【w】光標跳到下個字的開頭
【e】光標跳到下個字的字尾
【H】 光標移動到這個屏幕的最上方那一行的第一個字符
【M】 光標移動到這個屏幕的中間那一行的第一個字符
【L】光標移動到這個屏幕的最下方那一行的第一個字符
【G】 移動到這個文件的最後一行
【nG】移動到這個文件的第n行(可配合:set nu)
【gg】 移動到這個文件的第一行,至關於1G
【n<Enter>】光標向下移動n行
查找與替換
【/word】 向光標向下尋找一個名稱爲word的字符串
【?word】 向光標向上尋找一個名稱爲word的字符串
【n】 表明重複前一個查找的動做
【N】 與n恰好相反,爲【反向】進行行前一個查找動做
【:n1,n2s/word1/word2/g】 n1與n2爲數字,在第n1與n2行之間查找word1 這個字符串,並將該字符串替換爲word2
【:1,$s/word1/word2/g】 從第一行到最後一行查找word1字符串,並將該字符串替換爲word2
【:1,$s/word1/word2/gc】 從第一行到最後一行查找word1字符串,並將該字符串替換爲word2 ,且在替換前提示用戶確認是否進行替換
刪除、複製與粘貼
【x】 爲向後刪除一個字符 (至關於【del】鍵)
【X】 爲向前刪除一個字符(至關於【backspace】鍵)
【nx】 連續向後刪除n個字符
【dd】 刪除光標所在行
【ndd】 刪除光標所在的向下n行
【d1G】 刪除光標所在行到第一行的全部數據
【dG】 刪除光標所在到最後一行的全部數據
【d$】 刪除光標所在處,到該行的最後一個字符
【d0】 刪除光標所在處,到該行的最前一個字符
【yy】 複製光標所在的那一行
【nyy】 複製光標所在的向下n列
【y1G】 複製光標所在行到第一行的全部數據
【yG】 複製光標所在行到最後一行的全部數據
【y0】 複製光標所在的那個字符到該行行首的全部數據
【y$】 複製光標所在的那個字符到該行行尾的全部數據
【p】將已複製的數據在光標下一行粘貼上
【P】 則爲貼在光標的上一行
【u】 恢復前一個操做
【Ctrl+r】重作上一個操做
【.】 是重複前一個操做