歡迎光臨
每天分享高質量文章

vim三種樣式下的小技巧,提高一半工作效率

來自:Java識堂(微訊號:erlieStar)

1、vim開啟檔案的幾種方式

命令 作用
vim +n filename 開啟檔案,並定位到第n行
vim + filename 開啟檔案,並定位到最後一行
vim +/pattern filename 定位至第一次被pattern匹配到的行的行首

 

https://mp.weixin.qq.com/s/X9VnWCm4hbiqjQb-DUvAvQ

按行或pattern,可以快速開啟到配置檔案錯誤的地方,或者日誌中報錯的地方。

如從監控系統,或者郵件收到報錯資訊時,直接根據時間定位到相應的日誌位置

vim +/"2019-02-17 23:01:49.994" server.log

2、vim的三種樣式

命令樣式(command mode)

 

命令樣式是Vim的預設操作樣式,當使用vim命令開啟一個檔案時,預設進入的就是命令樣式。不管使用者處於何種樣式,只要按下Esc鍵就可使進入命令列樣式

 

編輯樣式(input mode)

 

只有在vim編輯樣式下,才能將鍵盤鍵入的內容輸入到當前開啟的檔案中

 

尾行樣式(last line mode)

 

尾行樣式主要用於儲存檔案或退出Vim,同時也可以設定編輯環境和一些編譯工作,如列出行號(set nu)、尋找字串(/target)等

 

在命令樣式下,使用者按冒號鍵(:)即可進入末行樣式下,此時Vi會在顯示視窗的最後一行顯示一個”:“作為末行樣式的提示符,等待使用者輸入命令

 

三種樣式的切換如下圖

3、命令樣式下的常用命令

游標移動命令

 

上 下 左 右

用鍵盤上的方向鍵也可,看個人習慣,這種方式比較省時間

命令 作用
h
j
k
l

 

行級移動

 

命令 作用
0 移動游標到當前行行首
$ 移動游標到當前行行尾
^ 移動游標到當前行的第一個非空字元
nG或者ngg 移動游標到當前檔案的第n行
:n 移動游標到當前檔案的第n行 (同上)

檔案首尾移動

 

命令 作用
gg 或 :0 移動游標到當前檔案的第一行
G 或 :$ 移動游標到當前未經的最後一行

翻頁

 

命令 作用
Ctrl + b 向前滾動一頁
Ctrl + f 向後滾動一頁
Ctrl + u 向前滾動半頁
Ctrl + d 向後滾動半頁

 

文字編輯命令

 

插入

在命令樣式下按以下按鍵可進入編輯樣式,執行插入操作,具體包括:

命令 作用
a 在當前游標所在字元的後面開始插入
A 在當前游標所在行的行尾開始插入
i 在當前游標所在字元的前面 開始插入
I 在當前游標所在行的行首開始插入
o 從游標當前所在行的下一行處開始插入
O 從游標當前所在行的上一行處開始插入
s 刪除當前游標所在的字元開始插入
S 刪除當前游標所在的行開始插入

 

刪除

 

命令 作用
x 刪除當前游標所在的字元
X 刪除當前游標所在字元的前一個字元
dd 刪除/剪下游標所在的行

 

複製 貼上

 

命令 作用
yw 複製從游標所在位置到當前【單詞結束】部分的內容
yy 複製游標所在【行】的所有字元 (包含換行符)
p 將最後一次刪除或複製操作的文字內容貼上到游標所在字元之【後】
P 將最後一個刪除或複製操作的文字內容貼上到游標當前字元之【前】

 

撤銷 反撤銷

 

命令 作用
u 撤銷最近的一次操作
+ r 恢復最近的一次操作(取消撤銷)

多次執行u 命令可以連續撤銷最近的操作,多次執行Ctrl+r可以連續取消撤銷

查詢命令

 

基本搜尋

在Vim命令樣式下,輸入 / 或 ? 符號就進入了搜尋樣式,/ 用於正嚮往下搜尋,? 用於反嚮往上搜索

命令 作用
n 查詢下一個
N 查詢上一個

 

正則運算式搜尋

為了更好的進行搜尋,Vim支援正則運算式,最基本的正則運算式規則包括:

符號 含義
^ 表示一行的開頭
$ 表示一行的結尾
. 表示任意一個字元
* 匹配0次或n次

 

如查詢行首為test的行,命令樣式下輸入如下即可

 

/^test

4、尾行樣式下的命令

命令 作用
:w 儲存文字
:q 退出vim,沒有修改過檔案
:w! 強制儲存,在root使用者下,檔案只讀也可儲存
:q! 強制退出,所有改動不生效
:wq 儲存並退出
😡 儲存並退出
ZZ 等同於:wq
:set nu 顯示行號
:set nonu‍‍ 不顯示行號
:set readonly 設定只讀

 


●編號720,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

 

運維

更多推薦25個技術類公眾微信

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂