高效編程:在IntelliJ IDEA中使用VIM
硬核乾貨分享,歡迎關注【Java補習課】成長的路上,我們一起前行 !
《高可用系列文章》 已收錄在專欄,歡迎關注!
概述
Vim
是一個功能強大
、高度可定製
的文本編輯器; 具體有多強大,我現在還沒體會到(orz
)。在日新月異的互聯網時代中,vim
可以算是一個歷史悠久的產物,從誕生到現在都沒有別的編輯器能替代(感興趣可了解一下 Emacs
)。目前主流的VSCode
、Intellij 全家桶
和Chrome
等,都支持/提供了 vim plugin
。
學習材料
- # Vim 從入門到精通 :
Github
8k 🌟Vim 學習教程
- # 簡明 VIM 練級攻略:
陳皓
的VIM
存活攻略 - # 遊戲:VIM 大冒險: 通過
遊戲
的方式學習VIM
準備工作
vim
功能強大,相信計算機行業的各位大佬都清楚。但是在我們的工作中,沒有vim
一樣能夠進行工作,能夠排查問題,能過編輯頁面等。
學習 vim
是一個枯燥且難熬的過程,你需要2周時間的苦練
,而不是3天熱度。希望大家能夠堅持下來,擺脫 CV工程師
的 title
,起碼也得多個h,j,k,l
。
附一張超清 VIM 鍵位圖 ,原圖地址://cenalulu.github.io/linux/all-vim-cheatsheat/
IDEA 安裝 VIM
IntelliJ IDEA -> Perferences -> Plugins
網絡不好的情況下,可在官網直接下載 Plugin
: //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 補習課
! 如果本篇博客有任何錯誤,請批評指教,不勝感激 !