高效編程:在IntelliJ IDEA中使用VIM

硬核乾貨分享,歡迎關注【Java補習課】成長的路上,我們一起前行 !
《高可用系列文章》 已收錄在專欄,歡迎關注!

概述

Vim是一個功能強大高度可定製的文本編輯器; 具體有多強大,我現在還沒體會到(orz)。在日新月異的互聯網時代中,vim 可以算是一個歷史悠久的產物,從誕生到現在都沒有別的編輯器能替代(感興趣可了解一下 Emacs)。目前主流的VSCodeIntellij 全家桶Chrome等,都支持/提供了 vim plugin

學習材料

準備工作

vim 功能強大,相信計算機行業的各位大佬都清楚。但是在我們的工作中,沒有vim一樣能夠進行工作,能夠排查問題,能過編輯頁面等。

學習 vim 是一個枯燥且難熬的過程,你需要2周時間的苦練,而不是3天熱度。希望大家能夠堅持下來,擺脫 CV工程師title,起碼也得多個h,j,k,l

附一張超清 VIM 鍵位圖 ,原圖地址://cenalulu.github.io/linux/all-vim-cheatsheat/
image.png

IDEA 安裝 VIM

IntelliJ IDEA -> Perferences -> Plugins

網絡不好的情況下,可在官網直接下載 Plugin//plugins.jetbrains.com/plugin/164-ideavim

image.png

VIM 移動命令

初階移動

  • h, j,k,l: 左,下,上,右 移動
  • 0,^,$:行首,行首字母,行尾
  • gg,G,50G:文件頭,文件尾,跳轉到指定行

演示操作:

h-> j->k->l->0->^->$

move.gif

進階移動

  • w & Ww右移一個單詞(標點分割), W右移一個字串(空格/換行分割)
  • b & Bb左移一個單詞(標點分割), B右移一個字串(空格/換行分割)
  • { & }: 移動到段部 , 換行符分割
  • Ctrl + u/d/翻頁

演示操作:

w -> b -> W -> B

move2.gif

實際開發中移動操作

比如,查看41行的 initialize() 方法的實現。

41G -> 2w -> ⌘+⌥+B

move3.gif

VIM 編輯命令

選中命令

  • v:可視化模式,通過 移動命令,選中相應的內容。

select.gif

插入命令

  • i & Ii在光標字符前插入,I在行首插入。
  • a & Aa在光標字符後添加,A在行尾添加。

刪除命令

  • d+motion :刪除指令

常用操作:

  • v 選中後刪除d
  • dd:刪除當前行,並把刪除的行存到剪貼板里
  • db/w:刪除上/下一個單詞

操作演示:
v -> d -> dd -> db -> dw -> dd

delete.gif

修改命令

  • c [number] motion:更改類操作符的工作方式跟刪除類是一致。

常用指令: cw 修改當前整個單詞,刪除當前單詞後,編輯正確內容

update.gif

  • 除了上一節所說的cw,我也可以鍵入c$,用來修改當前字符到行末的所有內容

撤銷命令

  • u 撤銷最近的一個修改動作;

  • U 撤銷當前行上的所有修改。

  • ctrl + R重放命令- 回退撤銷操作

複製粘貼命令

  • y [number] motion : 複製命令,常用的有 yy 複製一行,yw 複製下一個單詞,y$ 複製到行尾。
  • [number] p : 粘貼複製內容 , 可粘貼多次 5p

copy.gif

VIM 命令模式

在普通模式下,輸入:即可進入

  • s/executor/asyncExecutor/g :替換當前行所有 executorasyncExecutor
  • :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.

qa.gif

點關注,不迷路

本文帶大家手把手學習了一波 VIM 的入門教學,通過結合 IDEA,來讓我們在開發過程中,不斷熟悉 VIM的語發,拒絕 Ctrl + C/V 工程師,由現在做起~

好了各位,以上就是這篇文章的全部內容了,我後面會每周都更新幾篇高質量的大廠面試和常用技術棧相關的文章。感謝大夥能看到這裡,如果這個文章寫得還不錯, 求三連!!! 感謝各位的支持和認可,我們下篇文章見!

我是 九靈 ,有需要交流的童鞋可以關注公眾號:Java 補習課! 如果本篇博客有任何錯誤,請批評指教,不勝感激 !

Tags: