27
哎哎呀呀 【濁⽔溪以南限定版】 慢速上⼿ Vim Plugin ⼼得

哎哎呀呀慢速上手 Vim Plugin 心得 @ 2016.08.27

Embed Size (px)

Citation preview

哎哎呀呀【濁⽔溪以南限定版】

慢速上⼿ Vim Plugin ⼼得 😥

今⽇分享

➤ Story ➤ 引⽤我在 Taipei.py 講的投影⽚

➤ 上⼿ VimScript ➤ 引⽤諸多(⼤神的)資料 Orz

➤ Why 哎哎呀呀 ➤ 證明⼀下真的很哎哎呀呀

➤ Vim-CodeQuery ➤ Trace ⼀段 Code

➤ ⼼得

STORY

上⼿ VIMSCRIPT

HOW TO 上⼿ VIMSCRIPT

➤ 慢速

➤ Learn VimScript The Hard Way (有中⽂版)

➤ 時間:⼀⽉

➤ 中速

➤ 讀 Damian Conway ⼤神幫 IBM Developer 寫的⽂章

➤ 時間:⼀天

➤ 快速

➤ 直接讀 rstacruz ⼤神整理的 ⼩抄

➤ 看 c9s ⼤神到 OpenFoundry 的演講 錄影 + 投影⽚

➤ 時間:兩三個⼩時

“恭喜已上⼿ VimScript!

(了嗎︖)

HOW TO 上⼿ VIMSCRIPT

➤ 如果對於 VimScript 超有興趣又有時間

➤ 建議可以考慮慢速上⼿

➤ 其他

➤ 建議可以先快速上⼿後,再先從⾃⼰感興趣的地⽅開始實際寫起,邊寫邊讀 :help 或 google

➤ 表⾯上快速上⼿很快,但還是得實際打打看、改改看、踩踩雷,才會深刻

➤ 如果⾃⼰本身已經累積很多 .vimrc 的內容,學習的過程應該蠻有樂趣的

➤ 「哦!原來這⼀⾏是 …」、「原來問題在 …」

➤ 在有⼀定熟悉程度前,要保持⼀定的學習頻率,不然忘超快

WHY 哎哎呀呀

“有飯粒有真相!

:if 1 | echo "true" | endif

代換 1 ⼤挑戰: 0 ‘123’ ‘abc’ ‘abc123’ ‘123abc’

:echo ‘a’ == ‘A’

猜猜是 0 還是 1

➤ 結果會被 set ignorecase 影響

➤ 所以提供 ==# 與 ==? 的⽅式來比較

autocmd BufRead,BufNewFile *.py echo 'yoyo'

:source ~/.vimrc

:source ~/.vimrc

➤ 要解決重複綁定的問題

➤ 可以⽤ autocmd! 可以清除之前綁定的 autocmd

➤ 建議都⽤ autogroup 包起來

➤ 然後記得加上 autocmd! 在第⼀⾏

伸縮⾃如的驚嘆號⽤法⼤挑戰

autocmd 與 autocmd!

function YourFunction(arg1) 與 function! YourFunction(arg1)

command Save call script#foo()

command! Save call script#foo()

normal G 與 normal! G

set ignorecase 與 set ignorecase!

echo 0 與 echo !0

ls 與 !ls

:w 與 :w!

Global function ⼤寫

Function 內的參數要⽤ a: 開頭來存取

運作時如果出錯,會「繼續執⾏」

(建議裝個 linter)

Vim ⽀援四種 Regex Mode

但是都是 Vim 獨有的 … Orz

:help magic

“族繁不及備載

- 哎哎呀呀

VIM-CODEQUERY