iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
2

vim是vi所衍生出來的,所謂的vi是Visual的簡寫;而vim則是Vi Imporved,換言之就是進階版的vi。

為什麼要用vim

  1. 進到遠端server編輯設定檔、hotfix code的時候就沒有IDE能用了(真的要用也不是不行,但要先設定一堆東西,就麻煩),身為後端必須學會。
  2. 所有的類Unix系統都有內建vi文字編輯器,其他編輯器則不一定會有。
  3. 許多linux的指令都預設vim作為文字編輯介面。
  4. 手能不離開鍵盤就完成所有操作就是帥。

vim的三種模式

命令模式:一開啟vim就會進入這個模式、按esc進入

動作:游標移動、取代、複製、貼上、刪除

插入模式:按i/I、a/A、o/O、r/R進入:

動作:插入、取代
i:從下個字插入
a:從上個字插入
o:從下一行插入
O:從上一行插入
r:插入的字取代游標前的字

底線模式:按:、/、?進入

動作:搜尋、存檔、退出、其他額外功能
命令模式可以切到插入或底線模式,也可從插入模式或底線模式切回命令模式,但插入模式不能直接切換到底線模式,反之亦然。

移動

上:↑ = k
下:↓ = j
左:← = h
右:→ = l
在前面加上數字可以直接跳n行,例如:5j => 往下5行
句首:0
句尾:$
第一行:H
最後一行:L

選取、複製、剪下、貼上

以下動作都要先進入命令模式:
選取整行:大V
一字一字選取:小v
區塊選取:ctrl + v
複製:y
剪下(刪除):d
貼上:p
移動到文件開頭:gg
移動到文件尾巴:shift + g
游標以下全部選取:vG
游標以下全部刪除:dG
全選:ggvG
若要整行刪除,不必先整行複製再刪除,可以直接dd刪除整行;
要複製貼上的話,也不用三個指令,直接按ppy即可。

復原、重複

復原:u
回復上個動作:ctrl + r

搜尋、取代

進入指令模式
取代::%s/被取代的字串/取代後的字串/g
搜尋:/[要搜尋的字串]

存檔(先按:進入底線模式)

離開不存檔:q
存檔不離開:w
存檔+離開:wq或x

以上後面加上'!'可以強制執行。

自動完成

要啟動自動完成這個功能,先去.vimrc這個檔案更改他的設定:

$vim ~/.vimrc

在檔案中加入這行

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

注意:這邊必須一字不漏的照著打,一個空格都不能多

接著按:wqx存檔
開啟要編輯的檔案,輸入:

:set omnifunc=phpcomplete#CompletePHP

之後要自動完成一些保留字時,只要按下ctrl+x+o就會出現選單讓你選擇想被自動完成的字囉

顯示行號

一般來說,用vim開啟檔案是不會顯示行號的,這時候在底線模式輸入
:set nu
就能顯示出行號了。
但若只在底線模式下指令,他只有這回會出現行號,如果想讓顯示行號變成預設,
同樣要$vim ~/.vimrc進入設定檔,然後加上set nu


上一篇
Day 9 PHP基礎語法(四):函式
下一篇
Day 11 淺談物件導向 (一):class與method
系列文
後端基礎PHP+Mysql & Laravel 30日養成計畫36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
mlck970677
iT邦新手 5 級 ‧ 2019-12-31 13:20:31

看完這4個理由,我得到了一個結論...簡單來說就是想耍帥嘛!~=3=

阿寶 iT邦新手 5 級 ‧ 2020-02-17 14:19:11 檢舉

可以這麼說啦XDD

我要留言

立即登入留言