linuxvi編輯命令
Ⅰ 關於linux vi命令
vim命令總結
1.刪除字元
要刪除一個字元,只需要將游標移到該字元上按下"x"。
2.刪除一行
刪除一整行內容使用"dd"命令。刪除後下面的行會移上來填補空缺。
3.刪除換行符
在Vim中你可以把兩行合並為一行,也就是說兩行之間的換行符被刪除了:命令是"J"。
4.撤銷
如果你誤刪了過多的內容。顯然你可以再輸入一遍,但是命令"u" 更簡便,它可以撤消上一次的操作。
5.重做
如果你撤消了多次,你還可以用CTRL-R(重做)來反轉撤消的動作。換句話說,它是對撤消的撤消。撤消命令還有另一種形式,"U"命令,它一次撤消對一行的全部操作。第二次使用該命令則會撤消前一個"U"的操作。用"u"和CTRL-R你可以找回任何一個操作狀態。
6.追加
"i"命令可以在當前游標之前插入文本。
"a"命令可以在當前游標之後插入文本。
"o"命令可以在當前行的下面另起一行,並使當前模式轉為Insert模式。
"O"命令(注意是大寫的字母O)將在當前行的上面另起一行。
7.使用命令計數
假設你要向上移動9行。這可以用"kkkkkkkkk"或"9k"來完成。事實上,很多命令都可以接受一個數字作為重復執行同一命令的次數。比如剛才的例子,要在行尾追加三個感嘆號,當時用的命令是"a!!!"。另一個辦法是用"3a!"命令。3說明該命令將被重復執行3次。同樣,刪除3個字元可以用"3x"。指定的數字要緊挨在它所要修飾的命令前面。
8.退出
要退出Vim,用命令"ZZ"。該命令保存當前文件並退出Vim。
9.放棄編輯
丟棄所有的修改並退出,用命令":q!"。用":e!"命令放棄所有修改並重新載入該文件的原始內容。
10.以Word為單位的移動
使用"w"命令可以將游標向前移動一個word的首字元上;比如"3w"將游標向前移動3個words。"b"命令則將游標向後移動到前一個word的首字元上。
"e"命令會將游標移動到下一個word的最後一個字元。命令"ge",它將游標移動到前一個word的最後一個字元上。、
11.移動到行首或行尾
"$"命令將游標移動到當前行行尾。如果你的鍵盤上有一個鍵,它的作用也一樣。"^"命令將游標移動到當前行的第一個非空白字元上。"0"命令則總是把游標移動到當前行的第一個字元上。鍵也是如此。"$"命令還可接受一個計數,如"1$"會將游標移動到當前行行尾,"2$"則會移動到下一行的行尾,如此類推。"0"命令卻不能接受類似這樣的計數,命令"^"前加上一個計數也沒有任何效果。
12.移動到指定字元上
命令"fx"在當前行上查找下一個字元x(向右方向),可以帶一個命令計數"F"命令向左方向搜索。"tx"命令形同"fx"命令,只不過它不是把游標停留在被搜索字元上,而是在它之前的一個字元上。提示:"t"意為"To"。該命令的反方向版是"Tx"。這4個命令都可以用";"來重復。以","也是重復同樣的命令,但是方向與原命令的方向相反。
13.以匹配一個括弧為目的移動
用命令"%"跳轉到與當前游標下的括弧相匹配的那一個括弧上去。如果當前游標在"("上,它就向前跳轉到與它匹配的")"上,如果當前在")"上,它就向後自動跳轉到匹配的"("上去.
14.移動到指定行
用"G"命令指定一個命令計數,這個命令就會把游標定位到由命令計數指定的行上。比如"33G"就會把游標置於第33行上。沒有指定命令計數作為參數的話, "G"會把游標定位到最後一行上。"gg"命令是跳轉到第一行的快捷的方法。
另一個移動到某行的方法是在命令"%"之前指定一個命令計數比如"50%"將會把游標定位在文件的中間. "90%"跳到接近文件尾的地方。
命令"H","M","L",分別將游標跳轉到第一行,中間行,結尾行部分。
15.告訴你當前的位置
使用CTRL-G命令。"set number"在每行的前面顯示一個行號。相反關閉行號用命令":set nonumber"。":set ruler"在Vim窗口的右下角顯示當前游標位置。
16.滾屏
CTRL-U顯示文本的窗口向上滾動了半屏。CTRL-D命令將窗口向下移動半屏。一次滾動一行可以使用CTRL-E(向上滾動)和CTRL-Y(向下滾動)。要向前滾動一整屏使用命令CTRL-F。另外CTRL-B是它的反向版。"zz"命令會把當前行置為屏幕正中央,"zt"命令會把當前行置於屏幕頂端,"zb"則把當前行置於屏幕底端.
17.簡單搜索
"/string"命令可用於搜索一個字元串。要查找上次查找的字元串的下一個位置,使用"n"命令。如果你知道你要找的確切位置是目標字元串的第幾次出現,還可以在"n"之前放置一個命令計數。"3n"會去查找目標字元串的第3次出現。
"?"命令與"/"的工作相同,只是搜索方向相反."N"命令會重復前一次查找,但是與最初用"/"或"?"指定的搜索方向相反。
如果查找內容忽略大小寫,則用命令"set ignorecase", 返回精確匹配用命令"set noignorecase" 。
18.在文本中查找下一個word
把游標定位於這個word上然後按下"*"鍵。Vim將會取當前游標所在的word並將它作用目標字元串進行搜索。"#"命令是"*"的反向版。還可以在這兩個命令前加一個命令計數:"3*"查找當前游標下的word的第三次出現。
19.查找整個word
如果你用"/the"來查找Vim也會匹配到"there"。要查找作為獨立單詞的"the"使用如下命令:"/the\>"。"\>"是一個特殊的記法,它只匹配一個word的結束處。近似地,"\<"匹配到一個word的開始處。這樣查找作為一個word的"the"就可以用:"/\"。
20.高亮顯示搜索結果
開啟這一功能用":set hlsearch",關閉這一功能:":set nohlsearch"。如果只是想去掉當前的高亮顯示,可以使用下面的命令:":nohlsearch"(可以簡寫為noh)。
21.匹配一行的開頭與結尾
^ 字元匹配一行的開頭。$字元匹配一行的末尾。
所以"/was$"只匹配位於一行末尾的單詞was,所以"/^was"只匹配位於一行開始的單詞was。
22.匹配任何的單字元
.這個字元可以匹配到任何字元。比如"c.m"可以匹配任何前一個字元是c,後一個字元是m的情況,不管中間的字元是什麼。
23.匹配特殊字元
放一個反斜杠在特殊字元前面。如果你查找"ter。",用命令"/ter\。"
24.使用標記
當你用"G"命令從一個地方跳轉到另一個地方時,Vim會記得你起跳的位置。這個位置在Vim中是一個標記。使用命令" `` "可以使你跳回到剛才的出發點。
``命令可以在兩點之間來回跳轉。CTRL-O命令是跳轉到你更早些時間停置游標的位置(提示:O意為older). CTRL-I則是跳回到後來停置游標的更新的位置(提示:I在鍵盤上位於O前面)。
注:使用CTRL-I 與按下鍵一樣。
25.具名標記
命令"ma"將當前游標下的位置名之為標記"a"。從a到z一共可以使用26個自定義的標記。要跳轉到一個你定義過的標記,使用命令" `marks "marks就是定義的標記的名字。命令" 'a "使你跳轉到a所在行的行首," `a "會精確定位a所在的位置。命令:":marks"用來查看標記的列表。
命令delm!刪除所有標記。
26.操作符命令和位移
"dw"命令可以刪除一個word,"d4w"命令是刪除4個word,依此類推。類似有"d2e"、"d$"。此類命令有一個固定的模式:操作符命令+位移命令。首先鍵入一個操作符命令。比如"d"是一個刪除操作符。接下來是一個位移命。比如"w"。這樣任何移動游標命令所及之處,都是命令的作用范圍。
27.改變文本
操作符命令是"c",改變命令。它的行為與"d"命令類似,不過在命令執行後會進入Insert模式。比如"cw"改變一個word。或者,更准確地說,它刪除一個word並讓你置身於Insert模式。
"cc"命令可以改變整行。不過仍保持原來的縮進。
"c$"改變當前游標到行尾的內容。
快捷命令:x 代表dl(刪除當前游標下的字元)
X 代表dh(刪除當前游標左邊的字元)
D 代表d$(刪除到行尾的內容)
C 代表c$(修改到行尾的內容)
s 代表cl(修改一個字元)
S 代表cc(修改一整行)
命令"3dw"和"d3w"都是刪除3個word。第一個命令"3dw"可以看作是刪除一個word的操作執行3次;第二個命令"d3w"是一次刪除3個word。這是其中不明顯的差異。事實上你可以在兩處都放上命令記數,比如,"3d2w"是刪除兩個word,重復執行3次,總共是6個word。
28.替換單個字元
"r"命令不是一個操作符命令。它等待你鍵入下一個字元用以替換當前游標下的那個字元。"r"命令前輟以一個命令記數是將多個字元都替換為即將輸入的那個字元。要把一個字元替換為一個換行符使用"r"。它會刪除一個字元並插入一個換行符。在此處使用命令記數只會刪除指定個數的字元:"4r"將把4個字元替換為一個換行符。
29.重復改動
"."命令會重復上一次做出的改動。"."命令會重復你做出的所有修改,除了"u"命令CTRL-R和以冒號開頭的命令。"."需要在Normal模式下執行,它重復的是命令,而不是被改動的內容,
30.Visual模式
按"v"可以進入Visual模式。移動游標以覆蓋你想操縱的文本范圍。同時被選中的文本會以高亮顯示。最後鍵入操作符命令。
31.移動文本
以"d"或"x"這樣的命令刪除文本時,被刪除的內容還是被保存了起來。你還可以用p命令把它取回來。"P"命令是把被去回的內容放在游標之前,"p"則是放在游標之後。對於以"dd"刪除的整行內容,"P"會把它置於當前行的上一行。"p"則是至於當前行的後一行。也可以對命令"p"和"P"命令使用命令記數。它的效果是同樣的內容被取回指定的次數。這樣一來"dd"之後的"3p"就可以把被刪除行的3 份副本放到當前位置。
命令"xp"將游標所在的字元與後一個字元交換。
32.復制文本(VIM編輯器內復制)
"y"操作符命令會把文本復制到一個寄存器3中。然後可以用"p"命令把它取回。因為"y"是一個操作符命令,所以你可以用"yw"來復制一個word. 同樣可以使用命令記數。如下例中用"y2w"命令復制兩個word,"yy"命令復制一整行,"Y"也是復制整行的內容,復制當前游標至行尾的命令是"y$"。
33.文本對象
"diw" 刪除當前游標所在的word(不包括空白字元) "daw" 刪除當前游標所在的word(包括空白字元)
34.快捷命令
x 刪除當前游標下的字元("dl"的快捷命令)
X 刪除當前游標之前的字元("dh"的快捷命令)
D 刪除自當前游標至行尾的內容("d$"的快捷命令)
dw 刪除自當前游標至下一個word的開頭
db 刪除自當前游標至前一個word的開始
diw 刪除當前游標所在的word(不包括空白字元)
daw 刪除當前游標所在的word(包括空白字元)
dG 刪除當前行至文件尾的內容
dgg 刪除當前行至文件頭的內容
如果你用"c"命令代替"d"這些命令就都變成更改命令。使用"y"就是yank命令,如此類推。
35.編輯另一個文件
用命令":edit foo.txt",也可簡寫為":e foo.txt"。
36.文件列表
可以在啟動Vim時就指定要編輯多個文件,用命令"vim one.c two.c three.c"。Vim將在啟動後只顯示第一個文件,完成該文件的編輯後,可以用令:":next"或":n"要保存工作成果並繼續下一個文件的編輯,命令:":wnext"或":wn"可以合並這一過程。
37.顯示當前正在編輯的文件
用命令":args"。
38.移動到另一個文件
用命令":previous" ":prev"回到上一個文件,合並保存步驟則是":wprevious" ":wprev"。要移到最後一個文件":last",到第一個":first".不過沒有":wlast"或者":wfirst"這樣的命令。可以在":next"和":previous"命令前面使用一個命令計數。
39.編輯另一個文件列表
不用重新啟動Vim,就可以重新定義一個文件列表。命令":args five.c six.c seven.h"定義了要編輯的三個文件。
40.自動存檔
命令":set autowrite","set aw"。自動把內容寫迴文件: 如果文件被修改過,在每個:next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令時進行。
命令":set autowriteall","set awa"。和 'autowrite' 類似,但也適用於":edit"、":enew"、":quit"、":qall"、":exit"、":xit"、":recover" 和關閉 Vim 窗口。置位本選項也意味著 Vim 的行為就像打開 'autowrite' 一樣。
41.切換到另一文件
要在兩個文件間快速切換,使用CTRL-^。
42.文件標記
以大寫字母命名的標記。它們是全局標記,它們可以用在任何文件中。比如,正在編輯"fab1.java",用命令"50%mF"在文件的中間設置一個名為F的標記。然後在"fab2.java"文件中,用命令"GnB"在最後一行設置名為B的標記。在可以用"F"命令跳轉到文件"fab1.java"的半中間。或者編輯另一個文件,"'B"命令會再把你帶迴文件"fab2.java"的最後一行。
要知道某個標記所代表的位置是什麼,可以將該標記的名字作為"marks"命令的參數":marks M"或者連續跟上幾個參數":marks MJK"
可以用CTRL-O和CTRL-I可以跳轉到較早的位置和靠後的某位置。
43.查看文件
僅是查看文件,不向文件寫入內容,可以用只讀形式編輯文件。用命令:
vim -R file。如果是想強制性地避免對文件進行修改,可以用命令:
vim -M file。
44.更改文件名
將現有文件存成新的文件,用命令":sav(eas) move.c"。如果想改變當前正在編輯的文件名,但不想保存該文件,就可以用命令:":f(ile) move.c"。
45.分割一個窗口
打開一個新窗口最簡單的辦法就是使用命令:":split"。CTRL-W 命令可以切換當前活動窗口。
46.關閉窗口
用命令:"close".可以關閉當前窗口。實際上,任何退出文件編輯的命令":quit"和"ZZ"都會關閉窗口,但是用":close"可以阻止你關閉最後一個Vim,以免以意外地整個關閉了Vim。
47.關閉除當前窗口外的所有其他窗口
用命令:":only",關閉除當前窗口外的所有其它窗口。如果這些窗口中有被修改過的,你會得到一個錯誤信息,同時那個窗口會被留下來。
48.為另一個文件分隔出一個窗口
命令":split two.c"可以打開第二個窗口同時在新打開的窗口中開始編輯作為
參數的文件。如果要打開一個新窗口並開始編輯一個空的緩沖區,使用命令:":new"。
49.垂直分割
用命令":vsplit或::vsplit two.c"。同樣有一個對應的":vnew"命令,用於垂直分隔窗口並在其中打開一個新的空緩沖區。
50.切換窗口
CTRL-W h 到左邊的窗口
CTRL-W j 到下面的窗口
CTRL-W k 到上面的窗口
CTRL-W l 到右邊的窗口
CTRL-W t 到頂部窗口
CTRL-W b 到底部窗口
51.針對所有窗口操作的命令
":qall"放棄所有操作並退出,":wall"保存所有,":wqall"保存所有並退出。
52.為每一個文件打開一個窗口
使用"-o"選項可以讓Vim為每一個文件打開一個窗口:
"vim -o one.txt two.txt three.txt"。
53.使用vimdiff查看不同
"vimdiff main.c~ main.c",另一種進入diff模式的辦法可以在Vim運行中操作。編輯文件"main.c",然後打開另一個分隔窗口顯示其不同:
":edit main.c"
":vertical diffpatch main.c.diff"。
54.頁簽
命令":tabe(dit) thatfile"在一個窗口中打開"thatfile",該窗口占據著整個的Vim顯示區域。命令":tab split/new"結果是新建了一個擁有一個窗口的頁簽。以用"gt"命令在不同的頁簽間切換。
Ⅱ LINUX中,Vi編輯器的幾種模式及保存、退出等命令。
一般都把它分為4種模式:
普通模式(Normal
mode):啟動VIM時默認就是這個模式
插入模式(Insert
mode):在普通模式下按i(insert)或a(append)就進入了插入模式
命令行模式(Ex
mode):在普通模式下按
:
即可進入命令行模式,最下一行變成編輯,可以在最下行輸入命令
可視模式(Visual
mode):在普通模式下按v進入可視模式
在命令模式輸入w
filename然後回車則把文件保存為filename,如果之前已經有文件名了就直接輸入w就可以了,輸入q則退出
Ⅲ linux 怎麼使用vi編輯器
給點參考吧
還蠻詳細的
vi文本編輯器的使用
一.vi的模式
命令模式:vi啟動默認進入的模式,可進入輸入模"i",或末行模式(:),除了可以完成命令的功能外,也是後兩種模式的轉換點
輸入模式:即文本輯輯狀態,最後一行顯示"-- INSERT --"提示,按ESC返回到命令模式
末行模式:可完成一些復雜操作,以":"開始,執行完一個末行命令後自動返回命令模式
二.基本使用
1.vi 編輯器的啟動與退出:
(1).使用命令"vi"直接進入編輯環境
(2).在命令模式下輸入":q!",可以強行退出編輯環境,對文件修改不進行保存
(3).以文件名作為"vi"命令的參數時,若存在此文件,則vi可對內容進行編輯,若不存在,打開以參數名命名的空文件
2.文件操作:
(1).打開新文件:在末行模式下":e filename"關閉當前文件並打開新文件,":e! filename 強制關閉當前文件並打開新文件"
(2).讀取文件內容到當前文件:":r filename",讀取的文件內容粘貼到當前文件游標所在行的下面
(3)保存文件:命令為":w [filename]",如果文件已經命名,可直接使用":w"命令的參數,如果沒有命名,第一次保存時需指定文件名作為參數
(4).另存為文件:命令為":w filename",只保存到新文件,而不更新原來文件的內容
(5).退出vi編輯器:退出格式為":q",保存並退出為":wq",強行退出為":q!"
3.游標的移動操作(命令模式下)
(1).游標方向移動:"h"左、"l"右、"k"上、"j"下
(2).翻頁移動:"ctrl+f"前一頁、"ctrl+b"後一頁、"ctrl+u"前半頁、"ctrl+d"後半頁
(3).行內快速跳轉:"^"本行首字元、"$"本行尾字元、"w"後一單詞首字母、"b"前一單詞首字母、"e"後一單詞尾字母;可添加數字組合使用,例如:"3w"後三個單詞首字母、"4b"前4個單詞首字母、"5e"後5個單詞尾字母
(4).文件內行間跳轉:顯示行號":set nu",取消顯示行號":set nonu","1G"跳轉到首行,"G"跳轉到末尾行,"#G"跳轉到第#行
4.編輯操作
(1).進行輸入模式:"i"當前游標處,"a"當前游標後,"A"當前行末,"o"當前行下插入新行,"O"當前行上插入新行,"cw"刪除當前游標到所在尾部字元,"c$"刪除當前游標到行尾的字元,"c^"刪除當前游標(不包括)之前到行首的字元;以上記憶如有困難,可只記"i"從命令模式進入輸入模式,完成編輯後"Esc"退回到命令模式
(2).輸入模式的操作:上下左右方向進行游標移動,"Home/End"定位游標到行首行尾,"Page Up /Down"上下翻頁,"Backspace"左側字元的刪除,"Delete"刪除游標位置的字元
(3).刪除操作:在命令模式下,可用以下命令完成刪除操作,"x"游標處單個字元,"dd"游標所在行,"dw"當前字元到單詞尾(含空格),"de"當前字元到單詞尾(不含空格),"d$"當前字元到行尾,"d^"當前字元到行首,"J"合並當前行與下一行的內容,可添加數字配合使用,例如"3x"當前游標向右3個字元,"2dd"從當前行開始向下兩行文本,"3dw"當前游標向右3個單詞,"2de"當前游標向右兩個單詞(保留一個空格),"5J"合並5行文本
(4).撤銷操作:在命令模式下,"u"取消最近一次操作,可重復使用,"U"取消對當前行進行的所有操作,"Ctrl+R"對"u"產生的撤消進行恢復
(5).復制操作:"yy"整行,"yw"游標到單詞尾,"y$"游標到行尾,"y^"游標到行首;與數字組合使用,"5yy"當前及後續共5行,"3yw"當前游標開始的3個單詞;末行命令":m,ny"m行到n行之間的文本,例如:":100,200y"100行到200的內容
(6).粘貼操作:在命令模式下,使用"p"將緩沖區中的內容粘貼到當前文檔
5.查找與替換操作(末行模式)
(1).自上而下:":/word"查找指定的字元串,"n"查找下一個(自上而下)"N"反向查找下一個(自下而上)
(2).自下而上:":?word"自下而上查找指定字元串,"n"查找下一個(自下而上)"N"反向查找下一個(自上而下)
(3).普通替換:":s/old/new"由s開始,"old"指被替換的字元串,"new"替換成哪個字元串,此命令只替換當前行中第一個匹配的字元串
(4).行內全部替換:":s/old/new/g",當前行內所有匹配的字元串
(5).在行區域內進行替換:":#,#s/old/new/g","#,#"表示兩個行號之間的行區域,例如"3,5"表示第3行到第5行
(6).整個文件內的替換操作:":%s/old/new/g",加%表示整篇文檔,危險,慎用
(7).使用替換確認功能:在原替換命令後加"c"可提供確認功能,例如:":s/old/new/c",":s/old/new/gc",":#,#s/old/new/gc",":%s/old/new/gc";替換命令確認後的提示為"replace with word (y/n/a/q/l/^E/^Y) ?",其中"y"替換,"n"放棄,"a"所有,"q"退出
三、編輯器的多文件操作
1.多文件操作的vi啟動:"vi [file1] [file2] .."後跟多個文件名作為參數即可,第一個參數顯示在屏幕上,其它文件處於編輯後台狀態
2.多文件切換命令:
(1).顯示多文件信息:":args"結果中顯示打開的文件,"[]"內為當前顯示文件
(2).前後切換文件:":next"顯示後一文件,":prev"顯示前一文件,加"!"為強制切換,不保存當前文件
(3).定位首文件和尾文件:":first"定位首文件,":last"定位尾文件
(4).快速文件切換:已經用某個切換命令進行文件切換後,"Ctrl+^"可快速切換到前狀態
Ⅳ linux vi命令的使用方法
一般模式常用操作
【h(或向左方向鍵)】 游標左移一個字元
【j(或向下方向鍵)】 游標下移一個字元
【k(或向上方向鍵)】 游標上移一個字元
【l(或向右方向鍵)】 游標右移一個字元
【[Ctrl] + f】 屏幕向下移動一頁(相當於Page Down鍵)
【[Ctrl] + b】 屏幕向上移動一頁(相當於Page Up鍵)
【[0]或[Home]】 游標移動到當前行的最前面
【[$]或[End]】 游標移動到當前行的末尾
【G】 游標移動到文件的最後一行(第一個字元處)
【nG】 n為數字(下同),移動到當前文件中第n行
【gg】 移動到文件的第一行,相當於"1G"
【n[Enter]】 游標向下移動n行
Ⅳ linux下vi編輯器命令大全
高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的:
:qx 開始記錄宏,並將結果存入寄存器x
q 退出記錄模式
@x 播放記錄在x寄存器中的宏命令
稍微解釋一下,當在normal模式下輸入:qx後,你對文本的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模
式,然後輸入@x對剛才記錄下來的命令進行重復,此命令後可跟數字,表示要重復多少次,比如@x20,可以重復20次。這個在文本的批處理中是非常有用的。
同時編輯多個文件
在vim眾多的插件中,有一個叫minibuffer的插件,就是下面所說的標簽頁功能了,可以支持同時編輯多個文件。
標簽命令
:tabe fn 在一個新的標簽頁中編輯文件fn
gt 切換到下一個標簽頁
gT 切換到上一個標簽頁
:tabr 切換到第一個標簽頁
:tabl 切換到最後一個標簽頁
:tabm [N] 把當前tab移動到第N個tab之後
對,正如你所想像的那樣,跟eclipse, ue等的標簽頁是一個意思!
窗口命令
ctrl+w s 水平分割窗口
ctrl+w w 切換窗口
ctrl+w q 退出當前窗口(由於同時有多個文件,此命令不會影響其他窗口)
ctrl+w v 垂直分割窗口
其他
vim在保存之前不會對文件做實際的修改,只是載入到緩沖區中,對文件的編輯其實是對緩沖區的編輯,直到:w時才會存入物理文件。
:e file 把file載入到新的緩沖區中
:bn 跳轉到下一個緩沖區
:bd 刪除緩沖區(關閉文件)
:sp fn 分割窗口,並將fn載入到新的窗口中
退出編輯器
:w 將緩沖區寫入文件,即保存修改
:wq 保存修改並退出
:x 保存修改並退出
:q 退出,如果對緩沖區進行過修改,則會提示
:q! 強制退出,放棄修改
查找替換
/pattern 向後搜索字元串pattern
?pattern 向前搜索字元串pattern
n 下一個匹配(如果是/搜索,則是向下的下一個,?搜索則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜索整個文件,將所有的old替換為new
:%s/old/new/gc 搜索整個文件,將所有的old替換為new,每次都要你確認是否替換
復制粘貼
dd 刪除游標所在行
dw 刪除一個字(word)
x 刪除當前字元
X 刪除前一個字元
D 刪除到行末
yy 復制一行,此命令前可跟數字,標識復制多行,如6yy,表示從當前行開始復制6行
yw 復制一個字
y$ 復制到行末
p 粘貼粘貼板的內容到當前行的下面
P 粘貼粘貼板的內容到當前行的上面
]p 有縮進的粘貼,vim會自動調節代碼的縮進
"a 將內容放入/存入a寄存器,可以支持多粘貼板
附:比如常用的一個寄存器就是系統寄存器,名稱為+,所以從系統粘貼板粘貼到vim中的命令為"+p,注意此處的+不表示操作符,二十一個寄存器。
移動游標
在vim中移動游標跟其他的編輯器中有很大的區別,不過一旦學會了,就會飛速的在文本中移動了。
h,j,k,l 上,下,左,右
ctrl-f 上翻一頁
ctrl-b 下翻一頁
% 跳到與當前括弧匹配的括弧處,如當前在{,則跳轉到與之匹配的}處
w 跳到下一個字首,按標點或單詞分割
W 跳到下一個字首,長跳,如end-of-line被認為是一個字
e 跳到下一個字尾
E 跳到下一個字尾,長跳
b 跳到上一個字
B 跳到上一個字,長跳
0 跳至行首,不管有無縮進,就是跳到第0個字元
^ 跳至行首的第一個字元
$ 跳至行尾
gg 跳至文件的第一行
gd 跳至當前游標所在的變數的聲明處
[N]G 跳到第N行,如0G,就等價於gg,100G就是第100行
fx 在當前行中找x字元,找到了就跳轉至
; 重復上一個f命令,而不用重復的輸入fx
tx 與fx類似,但是只是跳轉到x的前一個字元處
Fx 跟fx的方向相反
),( 跳轉到上/下一個語句
* 查找游標所在處的單詞,向下查找
# 查找游標所在處的單詞,向上查找
`. 跳轉至上次編輯位置
在屏幕上移動
H 移動游標到當前屏幕上最上邊的一行
M 移動游標到當前屏幕上中間的一行
L 移動游標到當前屏幕上最下邊的一行
書簽
ma 把當前位置存成標簽a
`a 跳轉到標簽a處
編輯
r 替換一個字元
J 將下一行和當前行連接為一行
cc 刪除當前行並進入編輯模式
cw 刪除當前字,並進入編輯模式
c$ 擦除從當前位置至行末的內容,並進入編輯模式
s 刪除當前字元並進入編輯模式
S 刪除游標所在行並進入編輯模式
xp 交換當前字元和下一個字元
u 撤銷
ctrl+r 重做
. 重復上一個編輯命令
~ 切換大小寫,當前字元
g~iw 切換當前字的大小寫
gUiw 將當前字變成大寫
guiw 將當前字變成小寫
>> 將當前行右移一個單位
<< 將當前行左移一個單位(一個tab符)
== 自動縮進當前行
插入模式
i 從當前游標處進入插入模式
I 進入插入模式,並置游標於行首
a 追加模式,置游標於當前游標之後
A 追加模式,置游標於行末
o 在當前行之下新加一行,並進入插入模式
O 在當前行之上新加一行,並進入插入模式
Esc 退出插入模式
可視模式
標記文本
v 進入可視模式,單字元模式
V 進入可視模式,行模式
ctrl+v 進入可視模式,列模式,類似於UE的列模式
o 跳轉游標到選中塊的另一個端點
U 將選中塊中的內容轉成大寫
O 跳轉游標到塊的另一個端點
aw 選中一個字
ab 選中括弧中的所有內容,包括括弧本身
aB 選中{}括弧中的所有內容
ib 選中括弧中的內容,不含括弧
iB 選中{}中的內容,不含{}
對標記進行動作
> 塊右移
< 塊左移
y 復制塊
d 刪除塊
~ 切換塊中內容的大小寫
Ⅵ Linux vi 操作命令
進入vi的命令
vi filename :打開或新建文件,並將游標置於第一行首
vi +n filename :打開文件,並將游標置於第n行首
vi + filename :打開文件,並將游標置於最後一行首
vi +/pattern filename:打開文件,並將游標置於第一個和pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename :打開多個文件,依次進行編輯
移動游標類命令
h :游標左移一個字元
l :游標右移一個字元
space:游標右移一個字元
Backspace:游標左移一個字元
k或Ctrl+p:游標上移一行
j或Ctrl+n :游標下移一行
Enter :游標下移一行
w或W :游標右移一個字至字首
b或B :游標左移一個字至字首
e或E :游標右移一個字至字尾
) :游標移至句尾
( :游標移至句首
}:游標移至段落開頭
{:游標移至段落結尾
nG:游標移至第n行首
n+:游標下移n行
n-:游標上移n行
n$:游標移至第n行尾
H :游標移至屏幕頂行
M :游標移至屏幕中間行
L :游標移至屏幕最後行
0:(注意是數字零)游標移至當前行首
$:游標移至當前行尾
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令
i :在游標前
I :在當前行首
a:游標後
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字元
R:替換當前字元及其後的字元,直至按ESC鍵
s:從當前游標位置處開始,以輸入的文本替代指定數目的字元
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令
ndw或ndW:刪除游標處開始及其後的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其後n-1行
x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從游標開始處向文件尾搜索pattern
?pattern:從游標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示製表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶「」的特別字元
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
最後行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件並退出
:q:退出vi
:q!:不保存文件並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl:將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
"?p:取出寄存器?中的內容並將其放到游標位置處。這里?能是個字母,也能是個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
進入vi
vi test
離開vi
:q! 離開vi,並放棄剛在緩沖區內編輯的內容。
:wq 將緩沖區內的資料寫入磁碟中,並離開vi。
:ZZ 同wq
同wq
:w 將緩沖區內的資料寫入磁碟中,但並不離開vi。
:q 離開vi,若文件被修改過,則會被需求確認是否放棄修改的內容,此指令可和: w 配合使用。
Vi 的操作模式
Vi 提供兩種操作模式:
輸入模式(insert mode)
指令模式(command mode)
當使用者進入vi後,既處於指令模式下,此刻鍵入所有字元皆被視為指令。
輸入模式:a(append) 游標之後加入資料。
A 該行之末加入資料
i (insert) 游標之前加入資料
I 該行之首加入資料
o (open) 新增一行和該行之下供輸入資料
O 新增一行和該行之上供輸入資料
指令模式:B 移至該行第一個字元,若游標在該行第一字元則游標移至上一行第一字元。
b 由游標所在位置之前一個字串的第一個字元
cc 刪除整行,修改整行的內容。
D 以行為單位,刪除游標在內後面的所有字元。
db 刪除該行游標前字元
dd 刪除該行
de 刪除自游標開始後面的字元
d加字元刪除游標所在位置至字元之間的單
E移至該行最後字元,若游標在該行最後字元則游標移至下一行最後字元
e由游標所在位置至該字串的最後一個字元
G 移至該檔案的最後一行
h 向前移一個字元
j 向下移一個字元
k 向上移一個字元
0 移至該行之首
M 移至視窗的中間那行
L 移至視窗的最後一行
l 向後移一個字元
0 由游標所在位置該行的第一個字元
nG 移至該檔案的第n行
n+ 自游標所在位置向後移n行至該行的第一字元
n- 自游標所在位置向前移n行至該行的第一字元
R 進入取代狀態,直到《ESC》為止
s 刪除游標所在字元,並進入取代模式直到《ESC》
S 刪除游標所在之該行資料,並進入輸入模式直到《ESC》
w 由游標所在位置之下一個字串的第一個字元
x 刪除游標所在該字元。
X 刪除游標所在之前一字元。
r 用接於此指令之後的字元取代(replace)游標所在字元
yy yank整行,使游標所在該行復制到記憶體緩沖區
顯示該行之行號、檔案名稱、檔案中最末之行號、游標所在行號占
總行號之百分比
$ 由游標所在位置至該行的最後一個字元。
) 由游標所在位置至下一個句子的第一個字元。
( 由游標所在位置至該句子的第一個字元。
{ 由游標所在位置至該段落的最後一個字元。
} 由游標所在位置至該段落的第一個字元
yank和delete可將指定的資料復制到記憶體緩沖區,而藉有put指令可將緩沖區內的資料復制到熒幕上
例如:搬移一行 :在該行執行dd
游標移至目的地
執行p
復制一行 :在該行執行yy
游標移至目的地
執行p
視窗移動:
視窗往下卷一頁
視窗往上卷一頁
視窗往下卷半頁
視窗往上卷半頁
視窗往下卷一行
視窗往上卷一行
刪除、復制及修改指令介紹:
d(delete)、c(change)和y(yank)這一類的指令在vi 中的指令格式為:
operation+scope=command
(運運算元)(范圍)
運運算元:
d 刪除指令。刪除資料,但會將刪除資料復制到記憶體緩沖區。
y 將資料(字組、行列、句子或段落)復制到緩沖區。
p 放置(put)指令,和d和y配合使用。可將最後delete或yank的資料放置於游標所在位置之行列下。
c 修改(change)指令,類似delete於insert的組合。刪除一個字組、句子等資料,並插入新鍵入的
Ⅶ linux vi如何進入命令模式
1、首先打開linux vi,進入到編輯頁面中,
Ⅷ Linux關於VI的使用,求具體應該輸入的命令
首先要確保linux系統下已經安裝vi編輯器或者vim編輯器
打開終端,輸入vi或者vim就會打開vi編輯器,vi編輯器是非常強大的編輯器
想輸入代碼需要進入插入模式,按i鍵就進入了插入模式,這個時候就可以寫代碼了
寫完代碼後
需要轉換模式shift+:轉換模式後,在終端最下邊會有一行可以輸入命令輸入wq保存,想了解更多可以網上查詢vi編輯器快捷鍵
Ⅸ linux系統中vi編輯器如何使用
建議找一下相關的linux教程,在網路知道上幾句話說不清楚。
vi編輯器是所有Unix及Linux系統下標準的編輯器,它的強 大不遜色於任何最新的文本編輯器,這里只是簡單地介紹一下它的用法和一小部分指令。由於對Unix及Linux系統的任何版本,vi編輯器是完全相同的, 因此您可以在其他任何介紹vi的地方進一步了解它。Vi也是Linux中最基本的文本編輯器,學會它後,您將在Linux的世界裡暢行無阻。
1、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)。
2、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及保存文件
命令行模式下保存並退出:輸入ZZ
在[命令行模式(command mode)]下,按一下[:]冒號鍵進入[Last line mode],例如:
: w filename (輸入 [w filename]將文章以指定的文件名filename保存)
: wq (輸入[wq],存檔並退出vi)
: q! (輸入q!, 不存檔強制退出vi)
:x (執行保存並退出vi編輯器)
3、命令行模式(command mode)功能鍵
1). 插入模式
按切換進入插入模式,按「i」進入插入模式後是從游標當前位置開始輸入文件;
按[a]進入插入模式後,是從當前游標所在位置的下一個位置開始輸入文字;
按[o]進入插入模式後,是插入新的一行,從行首開始輸入文字。
2). 從插入模式切換為命令行模式
按[ESC]鍵。
3). 移動游標
vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母[h]、[j]、[k]、[l],分別控制游標左、下、上、右移一格。
按[ctrl]+[b]:屏幕往「後」移動一頁。
按[ctrl]+[f]:屏幕往「前」移動一頁。
按[ctrl]+[u]:屏幕往「後」移動半頁。
按[ctrl]+[d]:屏幕往「前」移動半頁。
按[gg]:移動到文章的首行。(可能只在Vim中有效)
按[G]:移動到文章的最後。
按[$]:移動到游標所在行的「行尾」。
按[^]:移動到游標所在行的「行首」
按[w]:游標跳到下個字的開頭
按[e]:游標跳到下個字的字尾
按[b]:游標回到上個字的開頭
按[#l]:游標移到該行的第#個位置,如:5l,56l。
Vi還提供了三個關於游標在全屏幕上移動並且文件本身不發生滾動的命令。它們分別是H、M和L命令。
(1)H命令
該命令將游標移至屏幕首行的行首(即左上角),也就是當前屏幕的第一行,而不是整個文件的第一行。利用此命令可以快速將游標移至屏幕頂部。若在H命令之前加上數字n,則將游標移至第n行的行首。值得一提的是,使用命令dH將會刪除從游標當前所在行至所顯示屏幕首行的全部內容。
(2)M命令
該命令將游標移至屏幕顯示文件的中間行的行首。即如果當前屏幕已經充滿,則移動到整個屏幕的中間行;如果並未充滿,則移動到文本的那些行的中間行。利用此命令可以快速地將游標從屏幕的任意位置移至屏幕顯示文件的中間行的行首。例如,在上面屏幕顯示的情況下(不論游標在屏幕的何處),在命令模式下,輸入命令M之後,游標都將移到add這一行的字母a上。同樣值得一提的是,使用命令dM將會刪除從游標當前所在行至屏幕顯示文件的中間行的全部內容。
(3)L命令
當文件顯示內容超過一屏時,該命令將游標移至屏幕上的最底行的行首;當文件顯示內容不足一屏時,該命令將游標移至文件的最後一行的行首。可見,利用此命令可以快速准確地將游標移至屏幕底部或文件的最後一行。若在L命令之前加上數字n,則將游標移至從屏幕底部算起第n行的行首。同樣值得一提的是,使用命令dL將會刪除從游標當前行至屏幕底行的全部內容。
4). 刪除文字
[x]:每按一次,刪除游標所在位置的「後面」一個字元。
[#x]:例如,[6x]表示刪除游標所在位置的「後面」6個字元。
[X]:大寫的X,每按一次,刪除游標所在位置的「前面」一個字元。
[#X]:例如,[20X]表示刪除游標所在位置的「前面」20個字元。
[dd]:刪除游標所在行。
[#dd]:從游標所在行開始刪除#行
5). 復制
[yw]:將游標所在之處到字尾的字元復制到緩沖區中。
[#yw]:復制#個字到緩沖區
[yy]:復制游標所在行到緩沖區。
[#yy]:例如,[6yy]表示拷貝從游標所在的該行「往下數」6行文字。
[p]:將緩沖區內的字元貼到游標所在位置。注意:所有與「y」有關的復制命令都必須與「p」配合才能完成復制與粘貼功能。
6). 替換
[r]:替換游標所在處的字元。
[R]:替換游標所到之處的字元,直到按下[ESC]鍵為止。
7). 恢復上一次操作
[u]:如果您誤執行一個命令,可以馬上按下,回到上一個操作。按多次「u」可以執行多次回復。
8). 更改
[cw]:更改游標所在處的字到字尾處
[c#w]:例如,[c3w]表示更改3個字
9).撤銷更改
[u]:撤銷上一次更改,可以一直按[u],一直撤銷到最舊修改狀態。
[ctrl]+[r]:恢復撤銷的更改,可以一直按該組合鍵達到最新的改變。
10). 跳至指定的行
[ctrl]+[g]列出遊標所在行的行號。
[#G]:例如,[15G],表示移動游標至文章的第15行行首。
4、Last line mode下命令簡介
在使用[last line mode]之前,請記住先按[ESC]鍵確定您已經處於[command mode]下後,再按[:]冒號即可進入[last line mode]。
A) 列出行號
[set nu]:輸入[set nu]後,會在文件中的每一行前面列出行號。
B) 跳到文件中的某一行
[#]:[#]號表示一個數字,在冒號後輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字15,再回車,就會跳到文章的第15行。
C) 查找字元
[/關鍵字]:先按[/]鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按[n]會往後尋找到您要的關鍵字為止。
[?關鍵字]:先按[?]鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按[n]會往前尋找到您要的關鍵字為止。
D) 保存文件
[w]:在冒號輸入字母[w]就可以將文件保存起來。
E) 離開vi
[q]:按[q]就是退出,如果無法離開vi,可以在[q]後跟一個[!]強制離開vi。
[wq]:一般建議離開時,搭配[w]一起使用,這樣在退出的時候還可以保存文件,可以在後面再跟[!]強制保存退出。
[ZZ]:保存並退出vi。
F) 語法加亮
[syntax on]:vi編輯器默認不打開語法加亮功能,打開vi編輯器後在[last line mode]下使用[syntax on]命令即可打開語法加亮功能,此時編輯器會高亮顯示文件中的關鍵字,方便編程使用,用[syntax off]命令可關閉該功能。