在linux中,我用vi編輯的時候,用“u"命令撤銷過一些操作,我想再恢複原來的操作用什麼命令啊?
用的命令是:ctrl + R
vi編輯器中有三種狀態模式
1.命令模式
2.輸入模式
3.末行模式
三種模式間的相互轉換
vi編輯器的啟動與退出
直接進入編輯環境
$?vi
進入編輯環境並打開(新建)文件
$?vi?myfile
退出vi編輯環境
輸入末行命令放棄對文件的修改,並退出編輯器
:q!
文件保存與另存為
保存文件
保存對vi編輯器中已打開文件的修改
:w
另存為文件
將vi編輯器中的內容另存為指定文件名
:w?myfile
退出vi編輯器的多種方法
未修改退出
沒有對vi編輯器中打開的文件進行修改,或已對修改進行了保存,直接退出vi編輯器
:q
保存並退出
對vi編輯器中的文件進行保存並退出vi編輯器
:wq
不保存退出
放棄對文件內容的修改,並退出vi編輯器
:q!
光標的移動和翻頁操作
操作類型光標操作鍵功能
光標移動h向左移動光標
l向右移動光標
k向上移動光標
j向下移動光標
翻頁Ctrl?+?f向前翻整頁
Ctrl?+?b向後翻整頁
Ctrl?+?u向前翻半頁
Ctrl?+?d向後翻半頁
行內快速跳轉
操作鍵功能
^將光標快速跳轉到本行的行首字符
$將光標快速跳轉到本行的行尾字符
w將光標快速跳轉到當前光標所在位置的後一個單詞的首字母
b將光標快速跳轉到當前光標所在位置的前一個單詞的首字母
e將光標快速跳轉到當前光標所在位置的後一個單詞的尾字母
文件內行間快速跳轉
命令功能
:set?nu?在編輯器中顯示行號
:set?nonu?取消編輯器中的行號顯示
1G跳轉到文件的首行
G跳轉到文件的末尾行
#G跳轉到文件中的第#行
進入輸入模式
命令功能
i在當前光標處進入插入狀態
a在當前光標後進入插入狀態
A將光標移動到當前行的行末,並進入插入狀態
o在當前行的下麵插入新行,光標移動到新行的行首,進入插入狀態
O在當前行的上麵插入新行,光標移動到新行的行首,進入插入狀態
cw刪除當前光標到所在單詞尾部的字符,並進入插入狀態
c$刪除當前光標到行尾的字符,並進入插入狀態
c^命令刪除當前光標之前(不包括光標上的字符)到行首的字符,並進入插入狀態
輸入模式的編輯鍵操作
按鍵功能
方向鍵進行上下左右方向的光標移動
Home快速定位光標到行首
End快速定位光標到行尾
PageUp進行文本的向上翻頁
PageDown進行文本的向下翻頁
Backspace刪除光標左側的字符
Del刪除光標位置的字符
刪除操作
命令功能
x刪除光標處的單個字符
dd刪除光標所在行
dw刪除當前字符到單詞尾(包括空格)的所有字符
de刪除當前字符到單詞尾(不包括單詞尾部的空格)的所有字符
d$刪除當前字符到行尾的所有字符
d^刪除當前字符到行首的所有字符
J刪除光標所在行行尾的換行符,相當於合並當前行和下一行的內容
撤消操作
命令功能
u取消最近一次的操作,並恢複操作結果
可以多次使用u命令恢複已進行的多步操作
U取消對當前行進行的所有操作
Ctrl?+?r對使用u命令撤銷的操作進行恢複
複製與粘貼操作
命令功能
yy複製當前行整行的內容到vi緩衝區
yw複製當前光標到單詞尾字符的內容到vi緩衝區
y$複製當前光標到行尾的內容到vi緩衝區
y^複製當前光標到行首的內容到vi緩衝區
p讀取vi緩衝區中的內容,並粘貼到光標當前的位置(不覆蓋文件已有的內容)
字符串查找操作
命令功能
/word從上而下在文件中查找字符串“word”
?word?從下而上在文件中查找字符串“word”
n定位下一個匹配的被查找字符串
N定位上一個匹配的被查找字符串
字符串替換操作
命令功能
:s/old/new?將當前行中查找到的第一個字符“old”?串替換為“new”
:s/old/new/g?將當前行中查找到的所有字符串“old”?替換為“new”
:#,#s/old/new/g?在行號“#,#”範圍內替換所有的字符串“old”為“new”
:%s/old/new/g?在整個文件範圍內替換所有的字符串“old”為“new”
:s/old/new/c?在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認
vi編輯器的在線幫助
使用vi在線幫助需安裝的軟件包
vim-common-6.3.035-3.i386.rpm
vim-enhanced-6.3.035-3.i386.rpm
軟件包在RHEL5的第2張安裝光盤
使用vi在線幫助的兩種方法
在vi編輯器中按“F1”鍵
輸入help末行命令
linux用VI編輯後保存退出命令是什麼啊?
首先需要按ESC鍵回到命令模式;
vi保存文件有不同的選項,對應於不同的命令,你可以從下麵的命令中選擇一個需要的輸入:
*
:wq 保存文件並退出vi
*
:w 保存文件但不退出vi
*
:w file 將修改另外保存到file中,不退出vi
*
:q 不保存文件,退出vi
最後回車即可。
Linux下直接退出vi 的快捷鍵是什麼?
ESC 退出插入模式
shift+:進入低行模式
qw保存退出
q!強製退出
沒有那麼簡單的快捷鍵
linux用vi打開文件後怎麼退出
有很多方法:退出Vi
當編輯完文件,準備退出Vi返回到shell時,可以使用以下幾種方法之一。
在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件後退出,返回到shell;若當前編輯的文件沒被修改過,則Vi直接退出, 返回到shell。
在末行模式下,輸入命令:w
Vi保存當前編輯文件,但並不退出,而是繼續等待用戶輸入命令。在使用w命令時,可以再給編輯文件起一個新的文件名。[例6]
:w newfile
此時Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個已存在的文件,則Vi在顯示窗口的狀態行給出提示信息:
File exists (use ! to override)
此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令
:w! newfile
否則可選擇另外的文件名來保存當前文件。
在末行模式下,輸入命令:q
係統退出Vi返回到shell。若在用此命令退出Vi時,編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:
No write since last change (use ! to overrides)
提示用戶該文件被修改後沒有保存,然後Vi並不退出,繼續等待用戶命令。若用戶就是不想保存被修改後的文件而要強行退出Vi時,可使用命令:q!
Vi放棄所作修改而直接退到shell下。
在末行模式下,輸入命令:wq
Vi將先保存文件,然後退出Vi返回到shell。
在末行模式下,輸入命令:x
該命令的功能同命令模式下的ZZ命令功能相同。
linux vi編輯器光標跳到文件末尾
G跳轉到末行的起始位置是對的,一般我用gg跳轉到行首。
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命令進入文本編輯後怎麼去刪除一行?
光標定位到要刪除的那一行,然後 dd
linux vi保存退出命令(如何退出vi)
首先,要明白有3種模式,命令行模式(ESC進入),插入模式(i進入),底行模式(:進入)。一般編輯完文檔後,先按ESC退出插入模式,然後在底行輸入:x來保存退出。謝謝
關於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命令進入文件後怎麼修改保存
以下是VI有關文件修改與保存的命令:
插入命令
i 在當前位置生前插入
I 在當前行首插入
a 在當前位置後插入
A 在當前行尾插入
o 在當前行之後插入一行
O 在當前行之前插入一行
查找命令
/text查找text,按n健查找下一個,按N健查找前一個。
?text查找text,反向查找,按n健查找下一個,按N健查找前一個。
vim中有一些特殊字符在查找時需要轉義.*[]^%/?~$
:set ignorecase忽略大小寫的查找
:set noignorecase不忽略大小寫的查找
查找很長的詞,如果一個詞很長,鍵入麻煩,可以將光標移動到該詞上,按*或#鍵即可以該單詞進行搜索,相當於/搜索。而#命令相當於?搜索。
:set hlsearch高亮搜索結果,所有結果都高亮顯示,而不是隻顯示一個匹配。
:set nohlsearch關閉高亮搜索顯示
:nohlsearch關閉當前的高亮顯示,如果再次搜索或者按下n或N鍵,則會再次高亮。
:set incsearch逐步搜索模式,對當前鍵入的字符進行搜索而不必等待鍵入完成。
:set wrapscan重新搜索,在搜索到文件頭或尾時,返回繼續搜索,默認開啟。
替換命令
ra 將當前字符替換為a,當期字符即光標所在字符。
s/old/new/ 用old替換new,替換當前行的第一個匹配
s/old/new/g 用old替換new,替換當前行的所有匹配
%s/old/new/ 用old替換new,替換所有行的第一個匹配
%s/old/new/g 用old替換new,替換整個文件的所有匹配
:10,20 s/^/ /g 在第10行知第20行每行前麵加四個空格,用於縮進。
ddp 交換光標所在行和其下緊鄰的一行。
移動命令
h 左移一個字符
l 右移一個字符,這個命令很少用,一般用w代替。
k 上移一個字符
j 下移一個字符
以上四個命令可以配合數字使用,比如20j就是向下移動20行,5h就是向左移動5個字符,在Vim中,很多命令都可以配合數字使用,比如刪除10個字符10x,在當前位置後插入3個!,3a! w 向前移動一個單詞(光標停在單詞首部),如果已到行尾,則轉至下一行行首。此命令快,可以代替l命令。 b 向後移動一個單詞 2b 向後移動2個單詞 e,同w,隻不過是光標停在單詞尾部 ge,同b,光標停在單詞尾部。 ^ 移動到本行第一個非空白字符上。 0(數字0)移動到本行第一個字符上, $ 移動到行尾 3$ 移動到下麵3行的行尾 gg 移動到文件頭。 = [[ G(shift + g) 移動到文件尾。 = ]] f(find)命令也可以用於移動,fx將找到光標後第一個為x的字符,3fd將找到第三個為d的字符。 F 同f,反向查找。 跳到指定行,冒號+行號,回車,比如跳到240行就是 :240回車。另一個方法是行號+G,比如230G跳到230行。 Ctrl + e 向下滾動一行 Ctrl + y 向上滾動一行 Ctrl + d 向下滾動半屏 Ctrl + u 向上滾動半屏 Ctrl + f 向下滾動一屏 Ctrl + b 向上滾動一屏 撤銷和重做 u 撤銷(Undo) U 撤銷對整行的操作 Ctrl + r 重做(Redo),即撤銷的撤銷。 刪除命令 x 刪除當前字符 3x 刪除當前光標開始向後三個字符 X 刪除當前字符的前一個字符。X=dh dl 刪除當前字符, dl=x dh 刪除前一個字符 dd 刪除當前行 dj 刪除上一行 dk 刪除下一行 10d 刪除當前行開始的10行。 D 刪除當前字符至行尾。D=d$ d$ 刪除當前字符之後的所有字符(本行) kdgg 刪除當前行之前所有行(不包括當前行) jdG(jd shift + g) 刪除當前行之後所有行(不包括當前行) :1,10d 刪除1-10行 :11,$d 刪除11行及以後所有的行 :1,$d 刪除所有行 J(shift + j)刪除兩行之間的空行,實際上是合並兩行。 拷貝和粘貼 yy 拷貝當前行 nyy 拷貝當前後開始的n行,比如2yy拷貝當前行及其下一行。 p 在當前光標後粘貼,如果之前使用了yy命令來複製一行,那麼就在當前行的下一行粘貼。 shift+p 在當前行前粘貼 :1,10 co 20 將1-10行插入到第20行之後。 :1,$ co $ 將整個文件複製一份並添加到文件尾部。 正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字符,再按y即可複製 ddp交換當前行和其下一行 xp交換當前字符和其後一個字符 剪切命令 正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字符,再按d即可剪切 ndd 剪切當前行之後的n行。利用p命令可以對剪切的內容進行粘貼 :1,10d 將1-10行剪切。利用p命令可將剪切後的內容進行粘貼。 :1, 10 m 20 將第1-10行移動到第20行之後。 退出命令 :wq 保存並退出 ZZ 保存並退出 :q! 強製退出並忽略所有更改 :e! 放棄所有修改,並打開原來文件。 轉載請注明出處句子大全網 » 在linux中,我用vi編輯的時候,