命令
描述vi filename
如果filename存在,則開啟;否則會建立乙個新檔案再開啟
vi -r filename
以唯讀模式(只能檢視不能編輯)開啟現有檔案
view filename
以唯讀模式開啟現有檔案
例如,使用 vi 編輯器建立乙個新檔案並開啟
$vi testfile|~
~~~~
"testfile" [new file]
豎線(|)代表游標的位置;波浪號(~)代表該行沒有任何內容。如果沒有 ~,也看不到任何內容,那說明這一行肯定是有空白字元(空格、tab 縮排、換行符等)或不可見字元。
進一步了解 vi 之前先來了解一下 vi 的工作模式,vi 有三種工作模式:
1.普通模式
由shell進入vi編輯器時,首先進入普通模式。在普通模式下,從鍵盤輸入任何字元都被當作命令來解釋。普通模式下沒有任何提示符,輸入命令後立即執行,不需要回車,而且輸入的字元不會在螢幕上顯示出來。
普通模式下可以執行命令、儲存檔案、移動游標、貼上複製等。
2.編輯模式
編輯模式主要用於文字的編輯。該模式下使用者輸入的任何字元都被作為檔案的內容儲存起來,並在螢幕上顯示出來
3.命令模式
命令模式下,使用者可以對檔案進行一些高階處理。儘管普通模式下的命令可以完成很多功能,但要執行一些如字串查詢、替換、顯示行號等操作還是必須要進入命令模式。
注意:有些教程中稱有兩種工作模式,是把命令模式合併到普通模式。
工作模式切換:
一般在命令模式下退出 vi 編輯器。
退出命令說明q
如果檔案未被修改,會直接退回到shell;否則提示儲存檔案
q!強行退出,不儲存修改內容
wqw 命令儲存檔案,q 命令退出 vi,合起來就是儲存並退出
zz儲存並退出,相當於 wq,但是更加方便
退出之前,你也可以在 w 命令後面指定乙個檔名,將檔案另存為新檔案,例如:
w filename2
將當前檔案另存為 filename2。
為了不影響檔案內容,必須在普通模式(按兩次 esc 鍵)下移動游標。使用下表中的命令每次可以移動乙個字元:
命令描述
k向上移動游標(移動一行)
j向下移動游標(移動一行)
h向左移動游標(移動乙個字元)
l向右移動游標(移動乙個字元)
當然,還有很多其他命令來移動游標,不過記住,一定要在普通模式(按兩次 esc 鍵)下。
命令說明
0 或$
將游標定位在一行的末尾。
w定位到下乙個單詞。
b定位到上乙個單詞。
(定位到一句話的開頭,句子是以 ! . ? 三種符號來界定的。
)定位到一句話的結尾。
移動到段落結束。&&&&&&&&&
[[回到段落的開頭處。&&&&&&&&&&
]]向前移到下乙個段落的開頭處。&&&&&&&&&&n1g
移動到檔案第一行。
g移動到檔案最後一行。
ng移動到檔案第 n 行。
:n移動到檔案第 n 行。
h移動到螢幕頂部。
nh移動到距離螢幕頂部第 n 行的位置。
m移動到螢幕中間。
l移動到螢幕底部。
nl移動到距離螢幕底部第 n 行的位置。
:xx 是乙個數字,表示移動到行號為 x 的行。
有一些控制命令可以與 ctrl 鍵組合使用,如下:
命令描述
ctrl+d
向前滾動半屏
ctrl+f
向前滾動全屏
ctrl+u
向後滾動半屏
ctrl+b
向後滾動整屏
ctrl+e
向上滾動一行
ctrl+y
向下滾動一行
ctrl+i
重新整理螢幕
命令描述
i在當前游標位置之前插入文字
i在當前行的開頭插入文字
a在當前游標位置之後插入文字
a在當前行的末尾插入文字
o在當前位置下面建立一行
o在當前位置上面建立一行
下面的命令,可以刪除檔案中的字元或行:
命令說明
x刪除當前游標下的字元
x刪除游標前面的字元
dw刪除從當前游標到單詞結尾的字元
d^刪除從當前游標到行首的字元
d$刪除從當前游標到行尾的字元
d刪除從當前游標到行尾的字元
dd刪除當前游標所在的行
可以在命令前面新增乙個數字字首,表示重複操作的次數,例如,2x 表示連續兩次刪除游標下的字元,2dd 表示連續兩次刪除游標所在的行。
建議各位讀者多加練習上面的命令,再進一步深入學習。
如果你希望對字元、單詞或行進行修改,可以使用下面的命令:
命令描述
cc刪除當前行,並進入編輯模式。
cw刪除當前字(單詞),並進入編輯模式。
r替換當前游標下的字元。
r從當前游標開始替換字元,按 esc 鍵退出。
s用輸入的字元替換當前字元,並進入編輯模式。
s用輸入的文字替換當前行,並進入編輯模式。
vi 中的複製貼上命令:
命令描述
yy複製當前行
nyy複製n行
yw複製乙個字(單詞)
nyw複製n行
p將複製的文字貼上到游標後面
p將複製的文字貼上到游標前面
下面的一些命令雖然看起來有些古怪,但是會讓你的工作更有效率,如果你是 vi 重度使用者,就了解一下吧。
命令說明
j將當前行和下一行連線為一行
<<
將當前行左移乙個單位(乙個縮排寬度)
>>
將當前行右移乙個單位(乙個縮排寬度)
~改變當前字元的大小寫
^gctrl+g組合鍵可以顯示當前檔名和狀態
u撤銷對當前行所做的修改
u撤銷上次操作,再次按 『u』 恢復該次操作
:f以百分號(%)的形式顯示當前游標在檔案中的位置、檔名和檔案的總行數
:ffilename 將檔案重新命名為 filename
:wfilename 儲存修改到 filename
:efilename 開啟另乙個檔名為 filename 的檔案
:cddirname 改變當前工作目錄到 dirname
:e #
在兩個開啟的檔案之間進行切換
:n如果用 vi 開啟了多個檔案,可以使用 :n 切換到下乙個檔案
:p如果用 vi 開啟了多個檔案,可以使用 :n 切換到上乙個檔案
:n如果用 vi 開啟了多個檔案,可以使用 :n 切換到上乙個檔案
:r file
讀取檔案並在當前行的後邊插入
:nr file
讀取檔案並在第 n 行後邊插入
如果希望進行全檔案搜尋,可以在普通模式(按兩次 esc 鍵)下輸入 / 命令,這時狀態列(最後一行)出現"/"並提示輸入要查詢的字串,回車即可。
/ 命令是向下查詢,如果希望向上查詢,可以使用 ? 命令。
這時,輸入 n 命令可以按相同的方向繼續查詢,輸入 n 命令可以按相反的方向繼續查詢。
搜尋的字串中可以包含一些有特殊含義的字元,如果希望搜尋這些字元本身,需要在前面加反斜槓()。
字元說明
^匹配一行的開頭
.匹配乙個字元
*匹配0個或多個字元
$匹配一行的結尾
[ ]匹配一組字元
如果希望搜尋某行中的單個字元,可以使用 f 或 f 命令,f 向上搜尋,f 向下搜尋,並且會把游標定位到匹配的字元。
也可以使用 t 或 t 命令:t 命令向上搜尋,並把游標定位到匹配字元的前面;t 命令向下搜尋,並把游標定位到匹配字元的後面。
set 命令可以對 vi 編輯器進行一些設定。使用 set 命令需要進入命令模式。
命令說明
:set ic
搜尋時忽略大小寫。
:set ai
設定自動縮排(自動對齊)
:set noai
取消自動縮排(自動對齊)。
:set nu
顯示行號。
:set sw
設定縮排的空格數,例如,將縮排空格數設定為4::set sw=4。
:set ws
:set wm
設定自動換行,例如,設定距離邊際2個字元時換行::set wm=2 。
:set ro
將檔案型別改為唯讀。
:set term
輸出終端型別。
:set bf
忽略輸入的控制字元,如 bel(響鈴)、bs(退格)、cr(回車)等。
切換到命令模式,再輸入 ! 命令即可執行 linux 命令。
例如,儲存檔案前,如果希望檢視該檔案是否存在,那麼輸入
:! ls
即可列出當前目錄下的檔案。
按任意鍵回到 vi 編輯器。
切換到命令模式,再輸入 s/ 命令即可對文字進行替換。語法為:
:s/search/replace/g
search 為檢索的文字,replace 為要替換的文字,g 表示全域性替換。
原文閱讀
你不知道的Console命令
1 2 3 7 8 14 15 最常用的就是console.log了。console上述的集中度支援printf的佔位符格式,支援的佔位符有 字元 s 整數 d或 i 浮點數 f 和物件 o 佔位符作用 s字串 d or i 整數 f 浮點數 o 可展開的dom o列出dom的屬性 c根據提供的cs...
你不知道的 和
開發中,編寫有一定逼格的 是每個程式猿都追求的。經常用來判斷的符號 和 也經常用來定義變數哦,你知道嗎?邏輯與 在有乙個運算元不是布林值的情況下,就不一定返回布林值。比如以下情況 1 第乙個運算元是物件,返回第二個數 var myinfo console.log myinfo 2 輸出22 第二個運...
你不知道的box shadow
我們可以僅使用乙個div利用shadow配合animation實現很多豐富的效果 github 求 必需。水平陰影的位置。允許負值。v shadow 必需。垂直陰影的位置。允許負值。blur 可選。模糊距離。spread 可選。陰影的尺寸。color 可選。陰影的顏色。請參閱 css 顏色值。ins...