Linux下编辑器vi/vim的使用介绍
vi編輯器是所有Unix及Linux系統(tǒng)下標準的編輯器。對Unix及Linux系統(tǒng)的任何版本,vi編輯器是完全相同的。
基本上vi可以分為三種狀態(tài),分別是命令模式(commandmode)、插入模式(insert mode)和底行模式(last line mode),各模式的功能為:
命令模式:控制屏幕光標的移動,字符、字或行的刪除,移動復(fù)制某區(qū)段及進入insert mode下,或者到last line mode.
插入模式:只有在insert mode下,才可以做文字輸入,按”Esc”鍵可回到命令行模式。
底行模式:將文件保持或退出vi,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號…等。
打開Terminal,指定到某個目錄下,輸入vi? testVi,即要用vi打開的文件名為testVi,若在此目錄下沒有此文件,則將會自動創(chuàng)建一個空的testVi文件,此時將進入vi全屏幕編輯畫面(注:每行前顯示波浪符號的表示該行為空行)。剛進入vi之后,是處于“命令模式”,要切換到“插入模式”才能夠輸入文字。
由命令模式進入到插入模式編輯文件:在“命令模式”下按一下小寫字母”i”、”a”、”o”均可以進入“插入模式”,這時候就可以開始輸入文字了。
由插入模式或底行模式進入到命令模式:按”Esc”鍵。
由命令模式進入到底行模式:按”:”鍵。
由底行模式進入到插入模式:按一下小寫字母”i”、”a”、”o”均可以進入“插入模式”。
退出vi及保存文件:在底行模式下,輸入:
(1)、w? testVi1 (將testVi修改后的文件保存為testVi1,此時testVi中的內(nèi)容仍為原始內(nèi)容,testVi沒有作任何修改);
(2)、wq ?(保存修改后的testVi文件并退出vi);
(3)、q!(或q)? (不保存修改后的testVi文件退出vi,此時testVi文件的內(nèi)容仍為打開前的原始文件)。
由命令模式進入插入模式時:
(1)、按”i”鍵,是從光標當前位置開始輸入文字;
(2)、按”a”鍵,是從目前光標所在位置的下一個位置開始輸入文字;
(3)、按”o”鍵,在目前光標的下一行插入新的一行,從行首開始輸入文字。
?命令模式下移動光標:
(1)、用小寫字母”k”、 ”j”、”h”、”l”分別控制光標移動到光標上一行、移動到光標下一行、移動到光標左邊一個文字、移動到光標右邊一個文字;
(2)、”Ctrl+b”、”Ctrl+f”分別為顯示上一頁內(nèi)容、下一頁內(nèi)容;
(3)、”Ctrl+u”、”Ctrl+d”分別為顯示上半頁內(nèi)容、下半頁內(nèi)容;
(4)、按數(shù)字0(或”^”)、”$”,分別移動到光標所在行的行首、行尾;
(5)、按”$”,移動到光標所在行的行尾;
(6)、按大寫字母”G”,移動到文件的末尾;若先按一個”數(shù)字”,再按大寫字母”G”,表示光標移動到第”數(shù)字”行首;
(7)、按”w”、”e”,光標跳到下個字(單詞)的字頭、下個字(單詞)的字尾;
(8)、按”b”,光標跳到上個字(單詞)的字頭;
(9)、按”#”,向上搜索當前光標指向的字。
命令模式下刪除文字:
(1)、每按一次小寫字母”x”,刪除光標所在位置的后面一個字符;
(2)、每按一次大寫字母”X”,刪除光標所在位置的前面一個字符;
(3)、連續(xù)按兩次小寫字母”d”,刪除光標所在行。
命令模式下復(fù)制:
(1)、按小寫字母”yw”,將光標所在之處到字尾的字符復(fù)制到緩沖區(qū)中;
(2)、按小寫字母”p”,將緩沖區(qū)內(nèi)的字符粘貼到光標所在位置。
命令模式下恢復(fù)上一次操作:如果你執(zhí)行了一個錯誤的操作,可以按小寫字母”u”恢復(fù)到上一次操作。
命令模式下跳至指定的行:
(1)、按”Ctrl + g”,在當前頁的最后一行顯示出光標所在行的行號;
(2)、按”某個數(shù)字 + G”,表示移動光標至文件的第”某個數(shù)字”行行首。
底行模式下列出行號:輸入”set? nu”,回車后,會在文件中的每一行前面列出行號。
底行模式下跳到文件中指定的行:在冒號(:)后輸入一個數(shù)字,再按回車鍵就會跳到該行了。
底行模式下查找字符:
(1)、先按”/”鍵,再輸入想尋找的字符,如果第一次找的關(guān)鍵字不是你想要的,可以一直按小寫字母”n”鍵會往后(按大寫字母”N”鍵會往前)尋找到你要的關(guān)鍵字為止;
(2)、先按”?”鍵,再輸入你想尋找的字符,如果第一次找的關(guān)鍵字不是你想要的,可以一直按小寫字母”n”鍵會往前(按大寫字母”N”鍵會往后)尋找到你要的關(guān)鍵字為止。
vi的一些設(shè)置(如語句高亮顯示等),參考http://blog.chinaunix.net/uid-10638908-id-2944538.html:
(1)、輸入:vi? ~/.vimrc?;如果沒有則會新建;
(2)、vimrc文件的內(nèi)容為:
syntax on
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set cindent
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,:1s}
set nu
set hlsearch(3)、保存vimrc文件,當再次用vi打開其它文件時,如果提示Sorry, the command is not available in thisversion: syntax enable? Press ENTER ortype command to continue ,則需安裝vim即可,輸入命令為:sudo?apt-get? install? vim ;
(4)、再用vi打開文件時,就會有高亮顯示等相關(guān)特性了。
常用操作匯總:
(1)、顯示行號:切換到命令模式下輸入:$ :set number ?;如果取消行號的顯示,則在命令模式下輸入:$ :set nonumber
(2)、查找指定的關(guān)鍵字AB:切換到命令模式下輸入:$ :/AB ,回車,然后按"N"鍵,則在光標處依次往下查找;如果命令模式下輸入: $ :?AB,回車,然后按"N"鍵,則在光標處依次往上查找;
(3)、統(tǒng)計指定的關(guān)鍵字AB出現(xiàn)的次數(shù),在命令模式下輸入:$ :%s/AB/&/gn ,回車,會顯示總共的匹配個數(shù),按"N"鍵,則光標會依次定位關(guān)鍵字處
(4)、查找所有AB并用CD替換,在命令模式下輸入: $ :%s/AB/CD/g ,回車
(5)、刪除指定代碼段:在命令模式下,按"v"鍵,進入VISUAL模式,然后再按上下左右鍵來選取需要刪除的代碼,選定后,按"d"鍵即可一次性刪除所選定的代碼段。
(6)、跳轉(zhuǎn)到指定行,如跳轉(zhuǎn)到88行,則在命令模式下輸入:$ :88
(7)、撤銷上一步的操作:在命令模式下,輸入:$u
(8)、恢復(fù)上一步被撤銷的操作:在命令模式下,輸入:$ Ctrl+r
(9)、有時用vim打開文件后,文件中的中文字符總是顯示亂碼,解決方法是:通過vim打開vimrc文件,如果沒有vimrc文件,則新建即可,在vimrc文件中加入以下幾行:$ vim ?~/.vimrc
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8(10)、如果想通過vim改變文件的編碼格式,如想調(diào)整a.cpp文件為utf-8,with bom,則先用vim 打開a.cpp,然后在命令行下執(zhí)行:$ set fileencoding=utf-8 ?; $ set bomb ; $ wq ; 如果不想設(shè)置成with bom,則執(zhí)行: $ set nobomb; $ wq;
(11)、復(fù)制單行,則在命令模式下,將光標定位到待復(fù)制的行上,然后按yy鍵,若復(fù)制多行則加數(shù)字+yy鍵,如復(fù)制光標所在行的連續(xù)5行,則按5yy鍵即可。
(12)、粘貼操作,則在命令模式下,然后按p鍵,則將會粘貼到光標所在行的下一行。
(13)、剪切操作,在命令行模式下,按dd鍵,則剪切光標所在的單行,若剪切多行,如連續(xù)5行,則執(zhí)行5dd鍵,dd鍵既可作為剪切也可作為刪除使用;在命令模式下,執(zhí)行p操作,則會將通過dd鍵剪切或刪除的行進行粘貼操作。
(14)、有時在用vim時,不小心使用了office word中Ctrl+S快捷鍵進行保存,結(jié)果導致vim無反應(yīng),其實Ctrl+S在Ubuntu上是鎖定屏幕的快捷鍵,如果要解鎖,使用Ctrl+Q快捷鍵即可。
(15)、默認的vim只能在同一個文件中進行復(fù)制、剪切、粘貼,若想實現(xiàn)在不同的vim或文本間進行復(fù)制、剪切、粘貼,一種方法是安裝vim-gtk,若執(zhí)行: $ vim --version | grep clipboard?顯示+xterm_clipboard則無需安裝vim-gtk,若顯示-xterm_clipboard則需安裝;如下圖所示:
"+2yy :?表示拷貝2行到剪切板;
"+3dd:?表示剪切3行到剪切板;
"+p:?表示粘貼
(16)、使用vim -o file1.cpp file2.cpp,可以以水平窗同時打開兩個文件;使用vim -O file1.cpp file2.cpp,可以以垂直窗口同時打開兩個文件。
(17)、若已用vim打開一個文件,想再此基礎(chǔ)上再打開一個文件,可以在命令模式下執(zhí)行:sp file2.cpp ,則以水平窗口打開;執(zhí)行:vsp file3.cpp,則以垂直窗口打開;若執(zhí)行:e file4.cpp,則會將以打開文件替換為新打開的文件。
(18)、使用vim打開二進制文件,如打開MNIST中的t10k-images.idx3-ubyte,則執(zhí)行: $ vim -b?t10k-images.idx3-ubyte ,加-b參數(shù),以二進制打開,然后在命令模式下輸入:%!xxd -g 1? ,切換到十六進制模式顯示。
(19)、復(fù)制任意長度或行數(shù)的字符,可以在命令模式下執(zhí)行:先按住小寫的"v"鍵,然后按"上,下,左,右"鍵進行選擇,待選定后按小寫的"y"鍵進行復(fù)制,最后按小寫的"p"鍵進行粘貼;若僅是整行的復(fù)制則按大寫的"V"鍵,然后按"上,下"鍵進行選擇,待選定后按"Y"鍵進行復(fù)制,最后按"P"鍵進行粘貼。
(20)、在命令行模式下,按大寫的G,可以快速調(diào)到文件的末尾;按小寫的gg,可以快速跳到文件的開頭。
(21)、搜索帶有N(N>=1)個空格的關(guān)鍵字,如搜索"123? 456",則在命令行模式下,執(zhí)行:/123\s\+456
(22)、取消搜索中的高亮顯示,在命令行模式下,輸入:$ noh
(23)、搜索不區(qū)分大小寫字符串,如搜索"abc",則在命令行模式下,執(zhí)行:/\cabc ;搜索區(qū)分大小寫字符串,則在命令行模式下,執(zhí)行: /\Cabc ;默認搜索是區(qū)分大小寫的
總結(jié)
以上是生活随笔為你收集整理的Linux下编辑器vi/vim的使用介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: OpenSSL简介及在Windows、L
- 下一篇: FFmpeg简介及在vc2010下编译步
