高效編程:在 IntelliJ IDEA 中使用 VIM
概述
Vim是一個功能強大、高度可定製的文本編輯器; 具體有多強大,我現在還沒體會到(orz)。在日新月異的互聯網時代中,vim 可以算是一個歷史悠久的產物,從誕生到現在都沒有別的編輯器能替代(感興趣可瞭解一下 Emacs)。目前主流的VSCode、Intellij 全家桶和Chrome等,都支持 / 提供了 vim plugin。
學習材料
-
Vim 從入門到精通 :
Github8k 🌟Vim 學習教程 -
簡明 VIM 練級攻略:
陳皓的VIM存活攻略 -
遊戲:VIM 大冒險:通過
遊戲的方式學習VIM
準備工作
vim 功能強大,相信計算機行業的各位大佬都清楚。但是在我們的工作中,沒有vim一樣能夠進行工作,能夠排查問題,能過編輯頁面等。
學習 vim 是一個枯燥且難熬的過程,你需要2周時間的苦練,而不是 3 天熱度。希望大家能夠堅持下來,擺脫 CV工程師 的 title,起碼也得多個h,j,k,l。
附一張超清 VIM 鍵位圖 , 原圖地址:http://cenalulu.github.io/linux/all-vim-cheatsheat/
IDEA 安裝 VIM
IntelliJ IDEA -> Perferences -> Plugins
網絡不好的情況下,可在官網直接下載 Plugin:https://plugins.jetbrains.com/plugin/164-ideavim
VIM 移動命令
初階移動
h,j,k,l:左,下,上,右 移動
0,^,$:行首,行首字母,行尾
gg,G,50G:文件頭,文件尾,跳轉到指定行
演示操作:
h-> j->k->l->0->^->$
進階移動
-
w & W:w右移一個單詞(標點分割),W右移一個字串(空格 / 換行分割) -
b & B:b左移一個單詞(標點分割),B右移一個字串(空格 / 換行分割) -
{ & }:移動到段首,尾部 ,換行符分割 -
Ctrl + u/d:上/下翻頁
演示操作:
w -> b -> W -> B
實際開發中移動操作
比如,查看 41 行的 initialize() 方法的實現。
41G -> 2w -> ⌘+⌥+B
VIM 編輯命令
選中命令
v:可視化模式,通過移動命令, 選中相應的內容。
插入命令
-
i & I:i在光標字符前插入,I在行首插入。 -
a & A:a在光標字符後添加,A在行尾添加。
刪除命令
d+motion:刪除指令
常用操作:
-
v選中後刪除d -
dd:刪除當前行,並把刪除的行存到剪貼板裏 -
db/w:刪除上 / 下一個單詞
操作演示:v -> d -> dd -> db -> dw -> dd
修改命令
c [number] motion:更改類操作符的工作方式跟刪除類是一致。
常用指令:cw 修改當前整個單詞,刪除當前單詞後,編輯正確內容
- 除了上一節所說的
cw,我也可以鍵入c$,用來修改當前字符到行末的所有內容
撤銷命令
-
u撤銷最近的一個修改動作; -
U撤銷當前行上的所有修改。 -
ctrl + R:重放命令 - 回退撤銷操作
複製粘貼命令
-
y [number] motion: 複製命令,常用的有yy複製一行,yw複製下一個單詞,y$複製到行尾。 -
[number] p: 粘貼複製內容 , 可粘貼多次5p
VIM 命令模式
在普通模式下,輸入:即可進入
-
s/executor/asyncExecutor/g:替換當前行所有executor爲asyncExecutor -
:g/^\s*$/d:刪除空行以及只有空格的行 -
%s/#.*//g: 刪除#之後的字符
宏錄製
-
qa把你的操作記錄在寄存器a。 -
於是
@a會 replay 被錄製的宏。 -
@@是一個快捷鍵用來 replay 最新錄製的宏。
示例
在一個只有一行且這一行只有 “1” 的文本中,鍵入如下命令:
-
qaYp<C-a>q→ -
qa開始錄製 -
Yp複製行. -
<C-a>增加 1. -
q停止錄製. -
@a→ 在 1 下面寫下 2 -
@@→ 在 2 正面寫下 3 -
現在做
100@@會創建新的 100 行,並把數據增加到 103.
本文帶大家手把手學習了一波 VIM 的入門教學,通過結合 IDEA,來讓我們在開發過程中,不斷熟悉 VIM的語法,拒絕 Ctrl + C/V 工程師,由現在做起~
關注 Java 補習課 獲取更多優質面試資料
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/Zsfjjtiqx2MXm80fhxIX3g