哎哎呀呀【濁⽔溪以南限定版】
慢速上⼿ Vim Plugin ⼼得 😥
今⽇分享
➤ Story ➤ 引⽤我在 Taipei.py 講的投影⽚
➤ 上⼿ VimScript ➤ 引⽤諸多(⼤神的)資料 Orz
➤ Why 哎哎呀呀 ➤ 證明⼀下真的很哎哎呀呀
➤ Vim-CodeQuery ➤ Trace ⼀段 Code
➤ ⼼得
HOW TO 上⼿ VIMSCRIPT
➤ 慢速
➤ Learn VimScript The Hard Way (有中⽂版)
➤ 時間:⼀⽉
➤ 中速
➤ 讀 Damian Conway ⼤神幫 IBM Developer 寫的⽂章
➤ 時間:⼀天
➤ 快速
➤ 直接讀 rstacruz ⼤神整理的 ⼩抄
➤ 看 c9s ⼤神到 OpenFoundry 的演講 錄影 + 投影⽚
➤ 時間:兩三個⼩時
“恭喜已上⼿ VimScript!
(了嗎︖)
HOW TO 上⼿ VIMSCRIPT
➤ 如果對於 VimScript 超有興趣又有時間
➤ 建議可以考慮慢速上⼿
➤ 其他
➤ 建議可以先快速上⼿後,再先從⾃⼰感興趣的地⽅開始實際寫起,邊寫邊讀 :help 或 google
➤ 表⾯上快速上⼿很快,但還是得實際打打看、改改看、踩踩雷,才會深刻
➤ 如果⾃⼰本身已經累積很多 .vimrc 的內容,學習的過程應該蠻有樂趣的
➤ 「哦!原來這⼀⾏是 …」、「原來問題在 …」
➤ 在有⼀定熟悉程度前,要保持⼀定的學習頻率,不然忘超快
: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!
Global function ⼤寫
Function 內的參數要⽤ a: 開頭來存取
運作時如果出錯,會「繼續執⾏」
(建議裝個 linter)
Vim ⽀援四種 Regex Mode
但是都是 Vim 獨有的 … Orz
:help magic