以問答的方式學習一下vi的使用,邊看本文邊進行實踐是一種比較有效的學習方式。
一、如何進入vi編輯器?
在系統提示字元(如$、#)下敲入vi <檔名稱>,vi 可以自動幫你載入所要編輯的檔案或是開啟乙個新檔案(如果該檔案不存在或缺少檔名)。進入 vi 後螢幕左方會出現波浪符號,凡是列首有該符號就代表此列目前是空的。
二、關於vi的兩種模式?
vi存在兩種模式:指令模式和輸入模式。在指令模式下輸入的按鍵將做為指令來處理:如輸入a,vi即認為是在當前位置插入字元。而在輸入模式下,vi則把輸入的按鍵當作插入的字元來處理。指令模式切換到輸入模式只需鍵入相應的輸入命令即可(如a,a),而要從輸入模式切換到指令模式,則需在輸入模式下鍵入esc鍵,如果不曉得現在是處於什麼模式,可以多按幾次[esc],系統如發出嗶嗶聲就表示已處於指令模式下了。
三、如果退出vi?
在指令模式下鍵入:q,:q!,:wq或:x(注意:號),就會退出vi。其中:wq和:x是存檔退出,而:q是直接退出,如果檔案已有新的變化,vi會提示你儲存檔案而:q命令也會失效,這時你可以用:w命令儲存檔案後再用:q退出,或用:wq或:x命令退出,如果你不想儲存改變後的檔案,你就需要用:q!命令,這個命令將不儲存檔案而直接退出vi。
四、在指令模式對檔案進行刪除和修改的一些命令?
首先按esc進入指令模式。
x: 刪除游標所在字元,依舊停留在指令模式。
dd :刪除游標所在的列,依舊停留在指令模式。
dw:刪除游標所在字,依舊停留在指令模式。
r :修改游標所在字元,點r 後接著輸入要修正為的字元。
r: 進入取替換狀態,新增文字會覆蓋原先文字,進入替換模式,直到按 [esc] 回到指令模式下為止。
s: 刪除游標所在字元,並進入輸入模式。
s: 刪除游標所在的行,並進入輸入模式。
c :功能和d相同,區別在於完成刪除操作後進入insertmode
cc:也是刪除當前行,然後進入insert mode
五、vi中查詢及替換命令?
/pattern 從游標開始處向檔案尾搜尋pattern
?pattern 從游標開始處向檔案首搜尋pattern
n 在同一方向重複上一次搜尋命令
n 在反方向上重複上一次搜尋命令
% 查詢配對的括號
:s/p1/p2/g 將當前行中所有p1均用p2替代,若要每個替換都向使用者詢問則應該用gc選項
:n1,n2s/p1/p2/g 將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g 將檔案中所有p1均用p2替換
.*^%~$ 在vi中具有特殊含義,若需要查詢則應該加上轉義字元"\"
六、vi中如何進行複製與貼上操作?
首先同樣保證進入指令模式。
yy命令複製當前整行的內容到vi緩衝區
yw複製當前游標所在位置到單詞尾字元的內容到vi快取區,相當於複製乙個單詞
y$複製游標所在位置到行尾內容到快取區
y^複製游標所在位置到行首內容到快取區
#yy例如:5yy就是複製5行
#yw例如:2yw就是複製兩個單詞
如果要複製第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y複製第三行到第五行內容到快取區。
p 將複製的內容貼上在當前游標後面的位置上
七、vi中如何顯示行號?
在末行模式(按esc進入指令模式,輸入:就可進入末行模式),輸入set number.即可顯示行號。
八、幾個不同的從指令模式切換到輸入模式的命令?
a :從游標所在位置後面開始新增資料,游標後的資料隨新增資料向後移動。
a:從游標所在行最後面的地方開始新增資料。
插入 (insert)
i:從游標所在位置前面開始插入資料,游標後的資料隨新增資料向後移動。
i :從游標所在行的第乙個非空白字元前面開始插入資料。
開始 (open)
o :在游標所在行下新增一列並進入輸入模式。
o: 在游標所在行上方新增一列並進入輸入模式。
九、vi中如何恢復誤操作?
u 撤銷最後執行的命令
u 修正之前對該行的操作
ctrl+r redo
十、如何重複上乙個操作?
. (點操作) 重複上一次操作
十一、vi中移動游標的操作?
k 上
h l 左 右
j 下
^ 移動到該行第乙個非空格的字元處
w 向前移動乙個單詞,將符號或標點當作單詞處理
w 向前移動乙個單詞,不把符號或標點當作單詞處理
b 向後移動乙個單詞,把符號或標點當作單詞處理
b 向後移動乙個單詞,不把符號或標點當作單詞處理
( 游標移至句首
) 游標移至句尾
游標移至段落結尾
h 游標移至螢幕頂行
m 游標移至螢幕中間行
l 游標移至螢幕最後行
0 到行首
$ 到行尾
gg 到頁首
g 到頁末
行號+g 跳轉到指定行
n+ 游標下移n行
n- 游標上移n行
ctrl+g 查詢當前行資訊和當前檔案資訊
fx 向右跳到本行字元x處(x可以是任何字元)
fx 向左跳到本行字元x處(x可以是任何字元)
tx 和fx相同,區別是跳到字元x前
tx 和fx相同,區別是跳到字元x後
c-b 向上滾動一屏
c-f 向下滾動一屏
c-u 向上滾動半屏
c-d 向下滾動半屏
c-y 向上滾動一行
c-e 向下滾動一行
nz 將第n行滾至螢幕頂部,不指定n時將當前行滾至螢幕頂部。
十二、vi的選項設定?
all 列出所有選項設定情況
term 設定終端型別
ignorance 在搜尋中忽略大小寫
list 顯示製表位(ctrl+i)和行尾標誌($)
number 顯示行號
report 顯示由面向行的命令修改過的數目
terse 顯示簡短的警告資訊
warn 在轉到別的檔案時若沒儲存當前檔案則顯示nowrite資訊
nomagic 允許在搜尋模式中,使用前面不帶「\」的特殊字元
nowrapscan 禁止vi在搜尋到達檔案兩端時,又從另一端開始
mesg 允許vi顯示其他使用者用write寫到自己終端上的資訊
vi使用詳解
vi n filename 開啟檔案並將游標置於第n行行首 vi filename 開啟檔案並將游標置於行尾 vi pattern filename 開啟檔案並將游標置於匹配模式pattern的第乙個串處 vi r filename 當上次使用vi編輯檔案時系統崩潰使用 r恢復檔案 vi r fil...
vi命令詳解
vi命令的使用 a vi檔名 文字檔案 進入vi後分三種狀態 1.ng表示讓游標到第n行 2.g表示檔案尾 3.1g表示檔案首 4.表示行首 5.表示行尾 6.x表示刪除乙個字元 7.dd表示剪下當前行 8.r表示替換乙個字元 9.cc替換一行 10.c替換從游標到行尾 11.yy表示拷貝行 12....
vi 命令詳解
vi 是visual edit 的縮寫 文字編輯器是所有計算機系統中最常用的一種工具。unix下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多。進入vi的命令。進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔...