Vim 上手不求人 ( gif 版)

Vim 上手不求人

前言

親愛的猴子們,你們對 Vim 不陌生吧。
Vim 用起來看起來很爽,平時咱們沒少背 Vim 的快捷鍵,不過,你們是知道的,背的學的使用太少,很快就從入門到放棄了。
咱們仍是隻有一臉崇拜的看着 Devops 老哥在 Vim 裏面熟練的敲敲打打。 不過,我最近找到一種學習的方法,不用太多功夫就能把 Vim 玩的 666。 下面,我會將本身學習的辦法和實用小技巧分享給你們,Vim 從入門到上手不求人。vim

Idea + Vim > 2

在咱們平常工做中,會使用 Idea 來寫代碼; 咱們若是能在咱們熟悉的 Idea 裏面用 Vim 來寫代碼,想必上手確定是很是快速的,這也是上一篇文章程序猿划水指南中提到過的刻意練習---咱們經過在 Idea 安裝 Vim 插件來讓本身從溫馨區進入了學習區。
接下來,咱們從最簡單的安裝插件開始,給你們分享 Vim 的使用方式和個人心得體會。編輯器

安裝插件

Preferences->Plugins->Marketplace->在搜索框輸入 Vim
ide

plugin.gif
安裝 IdeaVimExtension 插件之後,能夠在 ~/.ideavimrc裏面修改 vim 的配置。
這裏有個小提示,我發現 Idea2019.3 版本同時安裝 IdeaVimIdeaVimExtension 在重啓之後會報錯。
若是,你也遇到這種狀況了,不要着急,先重啓一次 Idea,而後先安裝 IdeaVim 而後再安裝 IdeaVimExtension 如今,相信插件已經安好了,在 Idea 重啓的時間裏,咱們從最簡單的模式提及吧。

三個模式

衆所周知,Vim 擁有 3 個 Model(模式)分別是:學習

  • Normal Model 用於在窗口編輯和移動,也能夠進行快捷編輯
  • View Model 用於選擇大塊內容的操做(複製、剪切、刪除、替換)
  • Insert Model 用於插入內容

3model.gif

咱們在使用 Vim 編碼時,選擇合適的模式,會達到事半功倍的效果。 下面,咱們來看看進入 Vim 之後,咱們怎麼移動光標的。編碼

快速移動(Normal Model & View Model)

  • 0行頭 $行尾,不少操做後面加 0$ 也是同樣的到行頭和行尾
  • j k上下 h l左右 與箭頭同樣能夠達到目的。熟練之後,咱們就能在高大上的 66 鍵的HHKB上左右騰挪,上下翻飛了。
  • w b 移動下一個或上一個單詞頭上

jkhlwb_move.gif

  • ( )方法(空行)開頭和方法結尾 { }方法(空行)間上下移動

method_move.gif
一開始,你們未免會不太習慣,不過建議你們仍是儘可能使用 Vim 的快捷鍵進行移動。
當熟練之後,你就能夠脫離鼠標的束縛了; 有沒有發現忽然寫代碼快了不少呢!

剪切操做(Normal Model & View Model)

Normal Model 下咱們會有不少便捷的剪切&刪除操做,並不須要到Insert Model中。而且,Vim 中的剪切和刪除是一個用法,只是看你把剪切進去的內容是否粘貼出來。
充分利用 Vim 中各類快捷操做咱們能夠達到快速編輯內容的目的。idea

  • x: 剪切光標選擇的內容,Normal Model 剪切一個字母,View Model 剪切全部選中內容
  • dw:剪切一個詞

替換操做(Normal Model & View Model)

  • Normal Model下,按r而後再按字母,就能用輸入的字母替換選中的字母。
  • p 粘貼剛剛剪切掉的內容,若是在 View Model 下選擇了部份內容,那其實是替換了選中內容。

但是咱們要替換多個地方怎麼辦呢,不用着急。有 2 種辦法,咱們來一個個試試看吧。spa

  • 在 View Model 下選中須要粘貼部分,而後用y進行復制。再使用 View Model 選中須要替換部分的時候經過使用 "0p 進行替換。其中的 0是數字零,這是內容在 Vim 寄存器中的編號,它和棧結構同樣,先進後出。咱們經過改變0便可以粘貼不一樣的

Tip::reg能夠查看相關的全部寄存器內容.net

0p_replace.gif

  • 另一種方式就是在Normal Model下按:進入命令模式,而後在出現的命令行中輸入下列的命令進行替換
:s/from/to - 用from替換當前行第一個to。
:s/from/to/g - 用from替換當前行全部的to。
:a,bs/from/to/g - 用from替換文件a行到b行全部的to複製代碼

line_replace.gif

因爲 Idea 的 Vim 插件對於替換支持的並很差,因此,建議直接在選中的內容上使用 Ctrl+C Ctrl+V 來操做。插件

編輯操做(Normal Model & Insert Model)

  • i: 在光標前插入; I: 在當前行第一個非空字符前插入; gI: 在當前行第一列插入;
  • a: 在光標後插入; A: 在當前行最後插入;
  • o: 在下面新建一行插入; O: 在上面新建一行插入;

insert.gif

行操做(Normal Model)

  • D:剪切從光標到行尾;dd剪切光標所在一行
  • yy複製光標當前一行
  • dj/d↑剪切光標所在和上一行,dk/d↓ 剪切光標所在和下一行。

row_options.gif

一些小技巧

操做相關

  • 按住 shift 後上下移動會更快
  • J能夠把下面一行縮進到當前光標一行
  • ~能夠改變光標選中部份內容的大小寫
  • u是撤銷剛剛的操做,Ctrl+r是重作剛剛撤銷的操做。
  • r+<Enter> 將光標後面內容移動到下面新增的一行
  • 修改()之間的內容 ci( ,剪切()之間的內容 di( 複製()之間的內容 yi(
  • zz 將當前行移動到屏幕中央。

配置相關

  • Vim 還要一些 map 指令,你們能夠把一些指令組合到一塊兒而後寫到 config 文件中。這樣你也會擁有你獨一無二的 Vim 了(具體功能後面可能會寫專門文章介紹)
nnoremap <space>i<space><esc>
nnoremap <enter>i<end><enter><esc>
複製代碼

上面是個人 map 配置,這樣是爲了在Normal Model中能夠用空格鍵和回車鍵來操做內容空格和換行命令行

其餘

  • 將你使用的全部 IDE 和編輯器都安裝上 Vim 插件
  • 把好用的快捷指令放在一個小記事本上,一旦忘記立馬打開查看,來回幾回你就會記住
  • 使用 Vim Vundle 來管理你的 Vim 插件吧,你會發現 Vim 愈來愈好玩的。

只要堅持就必定會勝利

只須要幾天,也只須要幾個業務,你會忽然發現,原來 Vim 用起來也並無那麼難。
另外一方面,對 Vim 熟練 之後,不論是 Idea 仍是 VScode,不論是 Mac 仍是 Linux;對於你來講都是它們都是一個 IDE ,無縫切換,渾然天成
還有,建議你們收藏本網頁,用來操做查詢。 你們發現了其餘更好用的操做套路,必定要與我分享,獨樂樂不如衆樂樂嘛。 最後,把個人快捷鍵記事本分享給你們。

相關文章
相關標籤/搜索