新聞中心
Vim(Vi[Improved])編輯器是功能強(qiáng)大的跨平臺(tái)文本文件編輯工具,繼承自Unix系統(tǒng)的Vi編輯器,支持Linux/Mac OS X/Windows系統(tǒng),利用它可以建立、修改文本文件,本篇文章為大家講解一下vim的基本使用方法。

目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、喀什網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
一、vi、vim介紹
(1)基于圖形界面,如gedit、geany等; (2)基于命令行,如nano、vi、joe等;
每個(gè)命令行界面的文本編輯器都有各自不同的快捷鍵,比如nano的保存為CTRL+W,vim的保存為:w;
基于命令行的文本編輯器是必要的,Linux的tty1~tty6都是命令行界面,是打不開圖形界面的文本編輯器的;
vi是每個(gè)Linux Distribution都默認(rèn)安裝的文本編輯器,并且很多軟件的默認(rèn)編輯器都是vi,因此學(xué)習(xí)vi是很必要的;
vim是vi的高級(jí)版本,vi是文本編輯器,而vim應(yīng)該說是程序編輯器,因?yàn)槟軌蛳褚话愕腎DE一樣,根據(jù)文件名載入不同的語法高亮,即顏色區(qū)分,比如java文件會(huì)遵循java的語法高亮;
下面我們就編寫一個(gè)”hello world”的java程序來看看vim的語法高亮; 可以看出vim有很好的語法檢查功能,因?yàn)殛P(guān)鍵字都使用了不同的顏色標(biāo)出; vi有三種模式:
(1)一般模式:進(jìn)入vi的默認(rèn)模式,能夠進(jìn)行復(fù)制、黏貼、刪除等操作;
(2)編輯模式:從一般模式按下‘i’即可進(jìn)入;
(3)命令行模式:從一般模式按下“:”、'?'、'/'即可進(jìn)入;
注意:如果安裝了vim后,輸入vi后也是使用vim編輯器,我們輸入alias后看到“alias vi=’vim’”;
二、vi/vim按鍵
“一般模式”的常用按鍵:
| “一般模式”的常用按鍵 | 按鍵含義 |
|---|---|
| h | 向左 |
| J | 向下 |
| K | 向上 |
| l | 向右 |
| 20h | 向左20個(gè)字符 |
| 20j | 向下20行 |
| 20k | 向上20行 |
| 20l | 向右20個(gè)字符 |
| Page Up | 向上翻頁 |
| Page Down | 向下翻頁 |
| Home | 光標(biāo)移到當(dāng)前行的最左端 |
| End | 光標(biāo)移到當(dāng)前航的最右端 |
| n [空格] | 光標(biāo)向右移動(dòng)n個(gè)字符 |
| N[Enter] | 光標(biāo)向下N行 |
| G | 光標(biāo)移到最后一行 |
| nG | 光標(biāo)移動(dòng)到第n行 |
| gg或1G | 光標(biāo)移動(dòng)到第一行 |
| /word | 向下查找word |
| ?word | 向上查找word |
| n | 如果是/word后使用,則表示向下繼續(xù)查找; 如果是?word后使用,則表示向上繼續(xù)查找; |
| N | 如果是/word后使用,則表示向上繼續(xù)查找; 如果是?word后使用,則表示向下繼續(xù)查找; |
| :n,m/old/new/g | 從第n行到第m行中,將old替換為new |
| :n,$s/old/new/g | 從第n行到最后一行中,將old替換為new |
| u | 類似windows中的CTRL+Z,前一步 |
| x | 向后刪除一個(gè)字符 |
| X | 向前刪除一個(gè)字符 |
| 3x | 向后刪除3個(gè)字符 |
| 3X | 向前刪除3個(gè)字符 |
| dd | 刪除當(dāng)前行 |
| 3dd | 刪除當(dāng)前行開始的3行 |
| yy | 復(fù)制當(dāng)前行 |
| 3yy | 復(fù)制當(dāng)前行開始的3行 |
| p | 黏貼到當(dāng)前光標(biāo)的下一行 |
| P | 黏貼到當(dāng)前光標(biāo)的上一行 |
| CTRL+r | 重做前一個(gè)操作 |
顯示詳細(xì)信息
“命令行模式”的常用按鍵:
| “命令行模式”的常用按鍵 | 按鍵含義 |
|---|---|
| :w | 保存 |
| :q | 退出vim |
| :wq | 保存并退出 |
| :wq! | (在可以轉(zhuǎn)換權(quán)限的情況下)強(qiáng)制保存并退出 |
| :q! | 直接退出不保存 |
| :w filename | 另存為filename |
| :n,m w filename | 將第n行到第m行另存為filename |
| :set nu | 顯示行號(hào) |
| :set nonu | 不顯示行號(hào) |
| :! command | 暫時(shí)離開vim,并執(zhí)行command,執(zhí)行完后再進(jìn)入vim |
| :r filename | 將filename文件的數(shù)據(jù)讀入當(dāng)前文件 |
| :set all | 顯示當(dāng)前vim的環(huán)境配置 |
顯示詳細(xì)信息
三、vim的恢復(fù)機(jī)制
vim正在編輯某個(gè)文件時(shí)都會(huì)同時(shí)存在.file.swp,此文件用來暫存,幫助恢復(fù)文件內(nèi)容,當(dāng)vim正常關(guān)閉此文件時(shí),.filename.swp文件會(huì)消失。 我們看到圖中說明了出現(xiàn)此界面的兩個(gè)原因:
(1)多人同時(shí)編輯此文件:因?yàn)長inux是多用戶的操作系統(tǒng),因此可能兩個(gè)人同時(shí)登陸并編輯此文件,如果A進(jìn)入系統(tǒng)開始編輯1.txt文件,則會(huì)出現(xiàn).1.txt.swp,當(dāng)A還沒編輯完但B也想進(jìn)去編輯時(shí),因?yàn)榇宋募哪夸浿写嬖?1.txt.swp,則就會(huì)出現(xiàn)上圖的界面;
(2)非正常關(guān)閉文件;
圖中最后一行說明了我們此時(shí)可以采取的幾個(gè)動(dòng)作:
(1)o:以只讀方式打開;
(2)R:恢復(fù),即從swp文件中恢復(fù),但是swp文件不會(huì)隨著vim關(guān)閉而刪除,需要手動(dòng)刪除;
(3)d:刪除swp文件;
(4)q:退出vim;
四、vim記錄及默認(rèn)配置文件
/etc/vimrc文件為全局vim配置文件。
1.如果我們用xiazdong賬戶使用vim后,在/home/xiazdong就會(huì)出現(xiàn).viminfo文件,此文件用來作為vim的日志,記錄用戶使用vim打開了什么文件,做了什么操作;
2.如果xiazdong賬戶想要配置vim的默認(rèn)環(huán)境,則可以在/home/xiazdong創(chuàng)建.vimrc,并且配置一些特征,比如顯示行號(hào),語法檢查等;
一般使用如下配置:
set hlsearch
set backspace=2
set autoindent
set nu
set ruler
set showmode
set bg=dark
syntax on
五、Visual Block功能
Visual Block功能可以用于塊復(fù)制。
(1)CTRL+v:開始復(fù)制塊;
(3)y:復(fù)制塊;
(4)p:黏貼塊;
(5)d:刪除塊
VIM的使用方法VIM的使用方法
六、同時(shí)編輯多個(gè)文件
多文件編輯的好處是能夠?qū)⒁粋€(gè)文件的某些內(nèi)容yy后,p到另一個(gè)文件中。 vim file1 file2 即可同時(shí)編輯兩個(gè)文件,但是屏幕中同時(shí)只會(huì)出現(xiàn)一個(gè)文件內(nèi)容,需要進(jìn)行切換。
(1):n:向下切換;
(2):N:向上切換;
(3):files:列出當(dāng)前編輯的所有文件;
七、多窗口編輯
如下圖:一個(gè)界面能夠顯示多個(gè)文件內(nèi)容。
(1):sp:打開當(dāng)前文件;
(2):sp filename:打開filename文件;
(3)CTRL+w+↓:光標(biāo)切換到下一個(gè)窗口;
(4)CTRL+w+↑:光標(biāo)切換到上一個(gè)窗口;
(5):q:關(guān)閉光標(biāo)所在的窗口;
八、編碼問題
可能會(huì)出現(xiàn)亂碼問題,解決方法:保持終端的字符編碼與文件的字符編碼一致!tty1~tty6不支持顯示中文,因此在tty1~tty6中顯示中文必出現(xiàn)亂碼,設(shè)置終端的字符編碼。
編碼轉(zhuǎn)換命令:iconv
iconv -f文件的原本編碼-t文件的新編碼filename -o newfilename
比如有一個(gè)big5編碼的文件:1.big5,要轉(zhuǎn)換成utf8的文件:2.utf8,則iconv -f big5 -t utf8 1.big5 -o 2.utf8
當(dāng)前名稱:詳解vim的基本使用方法
地址分享:http://m.fisionsoft.com.cn/article/cocsidp.html


咨詢
建站咨詢
