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

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)

分享創造快樂