關於 vim 與 vim plugin 那些事

最近工作上,因為公司有買 source insight

拿到第一個反應是:能不能把編輯模式改成 vim XDD

因此用 google 查 vim source insight

結果很少文章是怎麼把 source insight 加入 vim mode

反而找到很多 怎麼把 vim 變得很 source insight XDD

果然很 vimer

加上這次要裝的套件有點多

所以找了一個 vim plugin 的管理套件來用

下面會講一下 vim 這個編輯器的一些操作與 plugin 的功用

最後會講一些非常方便的功能

首先講一下 vim 這個編輯器

vim 是一個對初學者非常不友善的編輯器 Orz

還有人P了這張圖片XDDD



但上手後會覺得這東西怎麼那麼方便XDD

傳說中vim的學習曲線是這樣(就是你吃過屎後吃難吃的就沒什麼了)




一開始 vim 有分幾個 mode
  1. INSERT Mode
  2. Command Mode
  3. Last Command Mode
 在終端機輸入 vim 後一開始進入的是Command mode

這邊是用來輸入命令的

有許多方便的指令可以幫助你快速達成目的

例如 shift + v 可以選取一整行 d 可以把選取的刪除

而要輸入文字要按下 i 代表 insert 進入 insert mode

insert 就是你打什麼就輸入什麼

它還可以輸入  ctrl z 這種東西喔

insert mode 按下 esc 會回到 Command Mode

而 Command 中預設的指令其實不一定夠用

因此按下 : 進入 Last Command Mode

這個模式下面就像終端機一個可以輸入一條一條的指令

例如 wq  就是 write and quit 儲存並離開

或是也可以輸入 ! 之後面加上終端機命令 就可以執行終端機的命令

不過很多人常常被困在這裡XDD

下圖是 vim 初學者常見畫面


 我一開使用的時候是把這張圖放在桌面 沒事就看一下,出不去就看一下


而這張其實只有包括常用的而已


再來就是 vim 的插件了

一般安裝插件的方法就是把插件的東西複製到 ~/.vim 下面並把檔案放到指定位置就可以了

但當套件一多就會變得很麻煩

因此有各種套件管理器來幫助我們

今天介紹的是vim-plug這個管理器

安裝方法很簡單

下面節錄github上的其中一種方式


如此一來在下次執行vim的時候就會自動幫你安裝好了

而要安裝的plugin就在plug#begin 跟 plug#end中間加上

Plug "{github}"

之後重開vim 在 last command mode打上PlugInstall就可以安裝好插件了

這個管理器的好處是可以註解說在需要的時候才載入不同plugin

下面分享我的 vimrc

目前一共安裝了7個plugin

實際使用起來效果如下圖



左邊視窗是taglist 能夠顯現出這個檔案中有被ctags紀錄的tag

右邊是nerdtree,可以顯示出開過或目錄下的檔案

下面是srcExpl,可以顯現目前cursor指到的函式或變數所在地的幾行程式

而Trinity是整合這三個功能的插件

另外可以看到主視窗下面有一條炫泡的狀態列可以顯示一些資訊的是airline airline-theme

最後是當文件有變動與修改後在最左邊顯示+與~表示有更動(這是抓git的)是gitgutter

上面這些工具能讓我們用vim快速的瀏覽程式

接下來介紹一些好用的vim指令

當然這都是在 command mode下面

首先先寄幾個單字 (d)elete (c)hange (p)ut (u)ndo (r)edo cop(y)

d 就是刪除目前選取目標(其實是拿到buffer)
c 就是改變選取目標
p 就是把buffer的東西放到
c 就是改變,會把目前東西放到buffer並進入insert mode
u 會回覆上一動作
ctrl + r 會作redo
y 會複製選取目標進入buffer
. 會重複之前的命令(command)

最方便的來了  這些指令可以結合或透過一些連接詞結合

 舉個例子

我今天想要把這個單字改掉輸入別的字

可以在單字上進入命令模式輸入 (c)hange (i)n (w)ord ==>ciw

這樣會將整個單字放到buffer並進入insert模式

又例如我想把""雙引號的東西刪除

可以輸入 (d)elete (i)n (")"  di"

就可以把雙引號裡面的東西刪除

如果不只一個雙引號的東西要刪除的話

可以把游標移到令一個雙引號裡面按下. 重複上一個命令

可以同樣把雙音耗中的刪除

非常方便吧

其實還有很多我不知道的應用

這幾個是我常用的功能

希望大家可以一起來用vim XDDDDD




留言

這個網誌中的熱門文章

[富士行] 富士行源起 與 Day 1 (非登山篇)

[CTF] AIS3 pre-exam 2017 writeup

[日本自由行] 關西畢旅 DAY 1 (part1) 關西機場 X 京都 X 馬堀 X 保津峽 X 愛宕山