文字編輯之Vim
阿新 • • 發佈:2020-08-07
一、Vim、Vi文字編輯器
1️⃣:vi: Visual Interface,文字編輯器
2️⃣:文字:ASCII, Unicode
3️⃣:VIM - Vi IMproved
二、Vim、vi的特點
1️⃣:vi/vim是一種純文字編輯器,它不像word可以排版,可以調整字型大小,可以改變字型等等,vi/vim只是一個文字編輯工具,它只能對文字的內容進行操作,比如新增內容、修改內容、刪除內容等等
2️⃣:vi是一個全螢幕的文字編輯器,在編輯文字時它將佔據整個螢幕
三、Vim、Vi的三種編輯模式
1、基本模式
1️⃣:命令模式
2️⃣:編輯模式
3️⃣:末行模式(內建的命令列介面)
2、開啟檔案
vim [OPTION]... filename... +#: 開啟檔案後,直接讓游標處於第#行的行首 +/pattern:開啟檔案後,直接讓游標處於第一個被pattern匹配到的行的行首
3、模式轉換
命令模式 --> 編輯模式 i: insert, 在游標所在處輸入; a: append, 在游標所在處後面輸入; o: 在當前游標所在行的下方開啟一個新行; I:在當前游標所在行的行首輸入; A:在當前游標所在行的行尾輸入; O:在當前游標所在行的上方開啟一個新行; 編輯模式 --> 命令模式 :按ESC鍵(鍵盤最左上角) 命令模式 --> 末行模式 :(Shift+:) 末行模式 --> 命令模式 :按ESC鍵(鍵盤最左上角的)
四、檔案關閉
關閉檔案:在末行模式下 :q 退出 :q! 強制退出,丟棄做出的修改; :wq 儲存退出 :x 儲存退出 :w /PATH/TO/SOMEWHERE :r /PATH/TO/SOMEWHERE
五、游標移動
游標跳轉:在命令模式下 字元間跳轉:h, j, k, l h: 左 j:下 k:上 l:右 單詞間跳轉: w:下一個單詞的詞首 e:當前或下一單詞的詞尾 b:當前或前一個單詞的詞首 #w:以當前游標為起點跳至第#個單詞的詞首 #e:以當前游標為起點跳至第#個單詞的詞尾 #b:以當前游標為起點跳至第#個單詞的詞首 行內跳轉 ^: 跳轉至行首的第一個非空白字元 0: 跳轉至行首 $: 跳轉至行尾 行間跳轉 gg:直接跳轉到第一行的行首 G:直接跳轉到最後一行的行尾 #gg:直接跳轉到第#行(向行首跳轉) #G:直接跳轉到第#行(向行尾跳轉) 翻屏 ctrl+f:向下翻一屏 ctrl+b:向上翻一屏
六、字元編輯
1、命令模式下字元編輯
x: 刪除游標處的字元 #x: 刪除游標處起始的#個字元 xp: 交換游標所在處的字元及其後面字元的位置
2、刪除命令(d)
d: 刪除命令,可結合游標跳轉字元,實現範圍刪除; dd: 刪除游標所在的行 #dd:刪除包括當前游標所在行在內的#行(多行刪除) d$: 刪除到某一行的結尾 d^:刪除到某一行的第一個字元位置(不包括空格或TAB字元) d0:刪除到某一行的開始位置 dw:刪除當前游標所在單詞的詞首到該單詞的結尾位置(刪除某個單詞,游標必須位於單詞的詞首) db:刪除當前游標所在單詞的詞尾該單詞的詞首位置 (刪除某個單詞,游標必須位於單詞的詞尾) //在linux中單詞是指一串字元,以空格隔開;另外有特殊字元也算是一個單詞,例如:= dl:刪除當前字元(與x命令功能相同) 末行模式下d命令的使用 語法:Startadd,Endadd(這裡的StartADD與EndADD是指一個範圍) 示例 1,5d:表示刪除第1到第5行
3、複製、貼上命令(y、p、P)
複製命令(y, yank) yy:複製行 yw 複製一個單詞 y$ 複製至行尾 y^ 複製至行首 #yy: 複製多行 貼上命令(p、P\put, paste) p:小寫p 若刪除或複製的為整行內容,則貼上至游標所在行的下方 若刪除或複製的為非整行,則貼上至游標所在字元的後面 P:大寫p 若刪除或複製的為整行內容,則貼上至游標所在行的上方 若刪除或複製的為非整行,則貼上至游標所在字元的前面
4、替換命令
替換命令:r r#:將當前游標的字元替換為#,這裡的#可以是任何字元 R:替換模式,替換多個字元
5、範圍表示方法
. 游標所在當前行 $ 最後一行 +# 游標所在行往後#行 $-# 倒數第#行 % 全文
6、撤銷編輯(u)
u:撤銷前一次的編輯操作,連線u命令可以撤銷此前的n次編輯操作 #u:直接撤銷此前的#次編輯操作 ctrl+r:還原最近一次的撤銷操作
7、視覺化模式
視覺化模式下可以對選取的內容進行編輯 v:按字元選取內容 V:按矩形塊(行)選取內容
8、拓展
文字之間複製:在末行模式下 :1,5write >> /root/test.txt //將第1行至第5行復制到/root下的test.txt檔案中 或者 先在file1檔案的末行模式下複製: :1,5yy (回車) 然後退出去到另個檔案file2中,直接在命令模式下按:p && P
9、文字查詢
/pattern:從上往下查詢匹配的內容 ?pattern:從下往上查詢匹配的內容 n:從上往下查詢匹配到的內容的下一條 N:從下往上查詢匹配到的內容的下一條
10、查詢並替換
s: 在末行模式下完成查詢替換操作 語法:s/要查詢的內容/替換為的內容/修飾符 修飾符 i: 忽略大小寫 g: 全域性替換;預設情況下,每一行只替換第一次出現 示例 1,5 s/abc/def/g:表示把第一行到第五行的所有abc替換為def
11、末行模式下顯示或取消顯示行號
set nu(number):顯示行號 set nonu(number):取消顯示行號