標籤(空格分隔): vi 總結linux
vi是幾乎全部類Unix/Linux系統下都默認裝有的經常使用文本編輯工具。本文記錄初學vi的一些小知識。shell
在命令行使用「vi」編輯文檔時,包含通常模式、命令行模式、編輯模式。
使用vi filename
打開文件,就進入通常模式
。vim
通常模式 <-> 命令行模式
在通常模式界面使用符號「:」、「/」、「?」能夠進入命令行模式,反之使用鍵盤左上角的「Esc」按鍵就能夠從命令行模式回到通常模式。app
i:insert,在光標當前處插入 I:Insert,在光標所在行的行首插入,在第一個非空白字符前插入 a:append,在光標所在位置以後的一個符後插入 A:Append,在光標所在行的行尾插入 o:在光標所在行的下面,另起一行插入 O:在光標所在行的上面,另起一行插入 r:replace,替換光標所在位置的那一個字符,只替換一次 R:Replace,不斷替換光標所在位置的字符,每替換字符光標都會日後移動,直到按下「Esc」爲止。
在通常模式下移動光標狀況相對複雜,能夠分爲如下幾種狀況。工具
1)可使用上下左右的箭頭來移動 2)使用字母 h:光標左移一個字符的距離 j:光標向下移動一行 k:光標向上移動一行 l:光標右移一個字符的距離
w:光標日後移動,到達下一個單詞(含標點)的詞首處 W:與w同,忽略標點符號 e:光標往前移動,到達下一個單詞(含標點)的詞尾處 E:與e同,忽略標點符號 b:光標往前移動,達到本單詞(含標點)的詞首。若是當前位子是空白則達到左邊第一個單詞的詞首 B:與b同,忽略標點符號 ge:光標往前移動,到達前一個單詞的詞尾處
符號^(shift+數字鍵6):光標移動到行首 數字0::光標移動到行首 符號$(美圓符號):光標移動到行尾 字符組合「g_」:光標移動到行尾 nh:n爲數字,在當前行往左移動n個字符 nj:n爲數字,向下移動n行 nk:n爲數字,向上移動n行 nl:n爲數字,在當前行往右移動n個字符 N + Enter:n爲數字,向下移動n行
Ctrl + d:向上移動半頁 Ctrl + u:向下移動半頁 Ctrl + f:向上移動一頁 Ctrl + b:向下移動一頁
gg:光標移動到文件第一行的行首 G:光標移動到文件最後一行的行首 nG:n爲數字,光標移動到文件第n行的行首
yy:複製光標所在行整行 nyy:n是數字,複製光標所在行整行及往下的n行 y1G:複製文件的第一行到光標所在行 yG:複製光標所在行到文件的最後一行 y0:複製光標所在行的行首字符到光標所在位置的字符之間的內容 y$:複製光標所在位置的字符到該行行尾字符之間的內容
x:刪除右邊的一個字符,相似鍵盤的delete鍵 X:刪除左邊的一個字符,相似鍵盤的BackSpace鍵 dd:刪除/剪切當前行 ndd:n是數字,刪除/剪切當前行及向下n行的數據 d1G:刪除/剪切文件第一行到光標所在行之間的內容 dG:刪除/剪切光標所在行到文件最後一行之間的內容 d0:刪除/剪切光標所在行行首字符到光標所在字符之間的內容 d$:刪除/剪切光標所在位置的字符到該行的行尾字符之間的內容
p:在光標所在行的下一行粘貼數據 P:在光標所在行的上一行粘貼數據
/word:向下查找字符串「word」 ?word:向上查找字符串「word」 n:重複執行前一個查找操做 N:「反向」執行前一個查找操做,與n相反
r:replace,替換光標所在位置的那一個字符,只替換一次 R:Replace,不斷替換光標所在位置的字符,每替換字符光標都會日後移動,直到按下「Esc」爲止。 「:n1,n2s/old/new/g」:n1和n2是數字,數字n2後的是小寫s。表示把第n1行到第n2行之間的字符串「old」都換成「new」。經常使用「:1,$/old/new/g」 「:n1,n2s/old/new/gc」:做用同上。最後多了個字符「c」,是confirm的首字母,表示每一個操做都會提示確認纔會替換
相似「視圖模式」下的選擇,最讓人以爲新奇的莫過於塊選擇了。命令行
v:字符選擇,結合光標的上下左右使用 V:行選擇,結合光標的行上下移動使用 Ctrl + v:塊選擇,結合光標移動使用
當完成選擇以後,能夠進行刪除、複製、剪切等操做。code
「:w」:保存(必需要有文件寫權限) 「:wq」:保存並退出(必需要有文件寫權限) 「:wq!」:保存並強制退出(必需要有文件寫權限) 「:q」:退出(沒有修改過文件內容) 「:q!」:強制退出(會放棄修改) ZZ:保存而且退出(必需要有文件寫權限) 「:w filename」:另存爲filename文件 「:n1,n2 w filename」:把文件的第n1行到第n2行內容另存爲filename文件
「:r filename」:把文件filename的內容導入到當前文件,插入到光標所在行以後
u:撤銷前一個操做,即放棄前一個操做的更改 小數點「.」:重複執行前一個操做,即再作一次 Ctrl + r:重作前一個操做,能夠這樣理解,先撤銷已作的更改,而後再重複以前的更改。 J:將下一行數據拉到光標所在行以後,這樣至關於剪切下一行後粘貼到該行的行尾,文件行數少1。
「:! command」:在通常模式下,可臨時切換到shell界面執行命令,執行完畢後按下回傳就回到文件內的通常模式下。可用於臨時查看信息等,方便。
「:files」:列出vi打開的全部文件 「:n」:進入下一個被vi打開的文件編輯 「:N」:進入前一個被vi打開的文件編輯
「:sp filename」:水平分割窗口,並打開filename文件 「:vsp filename」:沿垂直方向分割窗口,並打開filename文件 Ctrl + w + j或k:將光標往上或者往下移動到內窗口,進去後就能夠進行常規操做了
保存vi偏好設置文檔
打開文件「vi ~/.vimrc」,經過set來設置,經常使用的有: set nu set ruler set hlsearch set showmode syntax on ...