當前位置: 妍妍網 > 碼農

IDEA + Vim,竟可以這麽牛逼!!

2024-06-03碼農

掃碼關註 後端架構師 」,選擇 星標 公眾號

重磅幹貨,第一時間送達!

責編:架構君 | 來源:撿田螺的小男孩

上一篇好文:

正文

大家好,我是後端架構師。

本教程並不是單純的 vim 操作介紹,更多的是與 Intellj Idea 進行配合。需要同時具備 Intellj Idea vim 使用基礎的同學學習。

1

簡介

Vim 是一個高度可配置的文字編輯器,旨在高效地建立和更改任何型別的文本。它作為「 vi 」包含在大多數 UNIX 系統和 Apple OS X 中。 Vim 非常穩定,並且正在不斷開發以變得更好。

它的特點包括:

  1. 持久的、多級復原樹

  2. 廣泛的外掛程式系統

  1. 支持數百種程式語言和檔格式

  2. 強大的搜尋和替換

  3. 與許多工具整合

為什麽要在 Intellj Idea 中使用 Vim?在我們學習某一項新技能,或者新的程式語言,新的編程模式。我們應該自問讓我們做出這樣的行為的驅動力是什麽?學習完它之後它能解決你什麽樣的疼點問題。這樣我們學習起來會更有動力一些。

讓我嘗試學習 Vim 的理由:

Mac 平台下 Intellj Idea 的很多的常用的 action 都是需要 command + option 這個組合鍵,從我轉到 Mac 下,就一直很懊惱,個人感覺這個按鍵很反人類。

作為一名伺服端開發同學,還是會經常需要在 linux 伺服器上去修改伺服器的系統設定檔。比如 nginx 配置,這個時候不可避免的需要使用到 vim 編輯器。如果你不熟練 操作起來還是相當的難受的。

Intellj Idea 中安裝了 vim 外掛程式之後。是一個互補的狀態 利用各自的優勢 使得編程更有效率。

2

安裝

Intellj Idea 中 安裝以下三個外掛程式

  • IdeaVim

  • IdeaVim-EasyMotion

  • IdeaVimExtension

  • 發現圖示像上面一樣編程一個小方塊的時候 就代表外掛程式安裝成功

    3

    Vim

    不得不說 vim 的學習成本還是有的,典型的入門很難 入門之後就會愛不釋手。 我這裏對一些基礎操作進行一些簡單的總結和整理。

    練習一:方向鍵聯系 hjkl

    根據我自己的經驗總結下來從原生編輯器過度到 Vim 最不習慣的當屬方向鍵的移動從原本的 方向鍵變成了 hjkl

    這個其實沒有太多好說的 就是需要克服這一關。多練就行。(下圖為 Gif 演示)

    練習二:復制 & 貼上

    CV 大法好,畢竟大家有時候自嘲都是 C V 工程師 😈 所以 復制 貼上 還是需要在第一時間學會,這樣才能更好的 coding 💩。

  • yy 復制當前行

  • p 貼上

  • 練習三:在學多一點點

    在學習一些其他的命令 送出效率。

    y p f h c i

    GIF 中步驟如下:

    1. yy 復制當前行 private String username;

    2. p 將復制的內容進行貼上

    3. f; 跳轉到字元 ; 處,這裏其實就是相當於行位。

    4. h 向左移動一個光標

    5. ciw 刪除當前處的詞,並進入 插入模式

    6. password 輸入 password 完成

    v j d


    GIF 中步驟如下:

    1. V 進入內容選擇模式

    2. kkk 向上移動 3 行,並進行選中

    3. d 刪除選中部份

    塊級刪除「常用」di* da*

    di" 刪除 " 內的內容,個人感覺這個還是非常常用了。也是初步在效率上優於傳統的 intellj idea 的操作方式。如果想要刪除之後馬上進入插入模式 可以使用 ci"

    di( 刪除 ( 內的內容,如果想要刪除之後馬上進入插入模式 可以使用 ci(

    di{ 刪除 { 內的內容,如果想要刪除之後馬上進入插入模式 可以使用 ci{

    各種進入插入模式

  • i 在光標之前,進入插入模式

  • I 在本行開頭,進入插入模式

  • a 在光標之後,進入插入模式

  • A 在本行結尾,進入插入模式

  • o 在本行之後新增一行,並進入插入模式

  • O 在本行之前新增一行,並進入插入模式

  • s 刪除當前字元,並進入插入模式

  • S 刪除當前行中的所有文本,並進入插入模式

  • 在我最開始的學習 vim 的時候只知道 i 進入插入模式。後面才知道還有這麽多種方式。

    如果你真的是切換過來之後 這裏所有的方式都能用到。

    下面是 gif 演示 可以直接跳過

  • a 在光標之後,進入插入模式

  • i 在光標之前,進入插入模式

  • o 在本行之後新增一行,並進入插入模式

  • A 在本行結尾,進入插入模式

  • I 在本行開頭,進入插入模式

  • O 在本行之前新增一行,並進入插入模式

  • 練習四:jump

    不得不說我們使用 vim 更多的就是為了減少滑鼠操作,因為使用滑鼠你的手需要離開鍵盤。

    一來一回 麻煩!!!所以我們需要了解更多光標移動操作

  • [n]f{word} f 用來尋找在 當前行 當前光標後是否存在某個字元 {word} 如果存在則將光標移動過去

  • $ | ^ $ 跳轉到行尾 ^ 跳轉到行首

  • % 括弧匹配跳轉 () [] {}

  • * 跳轉到上一個字元的定位處

  • [n]h/j/k/l 數位加上方向鍵 代表重復執行多少次

  • 2jj 向下移動兩行

  • 10l 向右移動 10 個字元

  • 3kk 向下移動 3 行

  • 20h 向左移動 20 字元

  • G | gg

  • G 移動到最後一行

  • gg 移動到第一行

  • H | M | L

  • H 移動到當前頁的第一行

  • M 移動到編輯器中部

  • L 移動到當前頁的最後一行

  • [n]w 移動到後面 word 的開始位置,前面加上數位 代表重復多少次

  • e 移動到下一個詞語的末尾

  • b 移動到上一個單詞的開頭

  • zz 改變視窗的整體位置,將當前光標所在處 移動到視窗中部

  • 下面是 gif 演示

  • [n]f{word} f 用來尋找在 當前行 當前光標後是否存在某個字元 {word} 如果存在則將光標移動過去。

  • 如果將這裏的 f 改為 F 則是反向尋找

  • $ | ^ $ 跳轉到行尾 ^ 跳轉到行首

  • % 括弧匹配跳轉 () [] {}

  • 練習五 學習一些通用場景

    其他的比較好用的命令

  • zo | zc

  • dt{char}

  • 微信搜尋公眾號:架構師指南,回復:架構師 領取資料 。

    4

    配置

    在安裝了 Vim 之後,其實官方只是給我們了一個基本的架子,能夠實作 Vim 的基本操作。如果你想要用的更加順手,那麽你需要對 Vim 進行自己的個人化配置。 這是一張白紙,它會被書寫成什麽樣子由你自己決定。

    如何對 Idea 中的 Vim 模組進行配置

    在右下角點選 Vim 圖示,然後點選 Open ~/.ideavimrc

    基礎配置

    老規矩,個人感覺對於新手對編輯器進行配置,還是參照社群的常用配置進行使用。當自己對 Vim 更加熟練的時候可以在加入自己的東西

    "語法高亮
    syntax on
    "顯示行號
    set number relativenumber
    "顯示光標所在位置的行號和列號
    set ruler
    set wrap "自動折行
    set shiftwidth=4
    set tabstop=4
    set softtabstop=4
    set expandtab "將tab替換為相應數量空格
    set smartindent
    set backspace=2
    set co=5
    "設定取消備份 禁止臨時檔生成
    set nobackup
    set noswapfile
    " 為IdeaVim外掛程式增加自動切換為英文輸入法的功能,
    " idea 需要安裝 IdeaVimExtension plugin
    set keep-english-in-normal
    "設定匹配模式 類似當輸入一個左括弧時會匹配相應的那個右括弧
    set showmatch
    set clipboard^=unnamed,unnamedplus
    "set laststatus=2 "命令列為兩行
    "set fenc=utf-8 "檔編碼
    "set mouse=a "啟用滑鼠
    "set ignorecase "忽略大小寫
    set cursorline "突出顯示當前行
    "set cursorcolumn "突出顯示當前列
    set fdm=marker

    上面當中比較特別的配置就是

  • 設定 relativenumber 這樣可以看相對行號

  • keep-english-in-normal 這個設定開啟之後可以在進入命令模式之後自動將輸入法切換為英文。這個還是非常推薦設定的,不然每次從 插入模式 切換到 命令模式的時候 如果這個時候是中文輸入法,體驗就極差了

  • set clipboard^=unamed,unnamedplus 共享剪下板,Vim 的剪下板和系統的剪下板是隔離的。設定之後可以共享。

  • Action 配置

    在 Idea 中大部份的操作都可以抽象為一個 Action 比如

  • 檔重新命名 Rename File

  • 重新命名變量 或者 類名 RenameElement

  • 去到介面實作 GotoImplementation

  • 復制 class 參照 CopyReference

  • ...

  • 在 Vim 中可以透過插入命令模式 直接呼叫 action

    上圖中 gif 中演示的就是透過 呼叫 RenameElement Action 重新命名變量。

    初步的介紹完 Intellj Idea action 之後,下面分享我自己目前在用的幾個比較常用的配置,透過快捷鍵 呼叫 action

    "jk結束insert模式
    inoremap jk <ESC>
    let mapleader = '\<space>'
    "Idea action 配置
    " 重命令元素
    nnoremap <Leader>re :action RenameElement<CR>
    nnoremap <Leader>gi :action GotoImplementation<CR>
    nnoremap <Leader>im :action ImplementMethods<CR>
    nnoremap <Leader>rv :action IntroduceVariable<CR>
    nnoremap <Leader>cr :action CopyReference<CR>
    nnoremap <Leader>em :action ExtractMethod<CR>
    nnoremap <Leader>sw :action SurroundWith<CR>

    action list Intellj Idea 中只是的所有的 action 列表

    外掛程式配置

    其實本來 Vim 中的外掛程式體系是非常強大的,但是因為我們是在 Intellj Idea 中使用 Vim 可以利用很多 Intellj Idea 原本的很多功能。目前我個人還沒有發現有很亮眼的外掛程式。所以如果你也正在使用 可以分享一下。

    參考文獻

  • B 站 vim 入門講解:bilibili.com/video/BV1Yt411X7mu

  • 簡明 VIM 練級攻略:coolshell.cn/articles/5426.html

  • learn-vim:github.com/iggredible/Learn-Vim

  • Vim 配置:ruanyifeng.com/blog/2018/09/vimrc.html

  • 你還有什麽想要補充的嗎?

    最後給大家推薦一個ChatGPT 4.0國內網站,是我們團隊一直在使用的,我們對接是OpenAI官網的帳號,給大家打造了一個一模一樣ChatGPT,很多粉絲朋友現在也都透過我拿這種號,價格不貴,關鍵還有售後。

    一句話說明:用官方一半價格的錢,一句話說明:用跟官方 ChatGPT4.0 一模一樣功能,無需魔法,無視封號,不必擔心次數不夠。

    最大優勢:可實作會話隔離!突破限制:官方限制每個帳號三小時可使用40次4.0本網站可實作次數上限之後,手動切換下一個未使用的帳號【相當於一個4.0帳號,同享受一百個帳號輪換使用許可權】

    最後,再次推薦下我們的AI星

    為了跟上AI時代我幹了一件事兒,我建立了一個知識星球社群:ChartGPT與副業。想帶著大家一起探索 ChatGPT和新的AI時代

    有很多小夥伴搞不定ChatGPT帳號,於是我們決定,凡是這三天之內加入ChatPGT的小夥伴,我們直接送一個正常可用的永久ChatGPT獨立帳戶。

    不光是增長速度最快,我們的星球品質也絕對經得起考驗,短短一個月時間,我們的課程團隊釋出了 8個專欄、18個副業計畫

    簡單說下這個星球能給大家提供什麽:

    1、不斷分享如何使用ChatGPT來完成各種任務,讓你更高效地使用ChatGPT,以及副業思考、變現思路、創業案例、落地案例分享。

    2、分享ChatGPT的使用方法、最新資訊、商業價值。

    3、探討未來關於ChatGPT的機遇,共同成長。

    4、幫助大家解決ChatGPT遇到的問題。

    5、 提供一整年的售後服務,一起搞副業

    星球福利:

    1、加入星球4天後,就送ChatGPT獨立帳號。

    2、邀請你加入ChatGPT會員交流群。

    3、贈送一份完整的ChatGPT手冊和66個ChatGPT副業賺錢手冊。

    其它福利還在籌劃中... 不過,我給你大家保證,加入星球後,收獲的價值會遠遠大於今天加入的門票費用 !

    本星球第一期原價 399 ,目前屬於試營運,早鳥價 149 ,每超過50人漲價10元,星球馬上要來一波大的漲價,如果你還在猶豫,可能最後就要以 更高價格加入了 。。

    早就是優勢。 建議大家盡早以便宜的價格加入!

    歡迎有需要的同學試試,如果本文對您有幫助,也請幫忙點個 贊 + 在看 啦!❤️

    在 還有更多優質計畫系統學習資源,歡迎分享給其他同學吧!

    PS:如果覺得我的分享不錯,歡迎大家隨手點贊、轉發、在看。

    最後給讀者整理了一份BAT大廠面試真題,需要的可掃碼加微信備註:「面試」獲取。

    版權申明:內容來源網路,版權歸原創者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除並表示歉意。謝謝!

    END

    最近面試BAT,整理一份面試資料【Java面試BAT通關手冊】,覆蓋了Java核心技術、JVM、Java並行、SSM、微服務、資料庫、數據結構等等。在這裏,我為大家準備了一份2021年最新最全BAT等大廠Java面試經驗總結。

    別找了,想獲取史上最全的Java大廠面試題學習資料

    掃下方二維碼回復面試就好了

    歷史好文:

    掃碼關註後端架構師」,選擇星標公眾號

    重磅幹貨,第一時間送達

    ,你在看嗎?