Skip to content

Instantly share code, notes, and snippets.

@pi314
Last active October 14, 2015 13:33
Show Gist options
  • Save pi314/0f99d91f7ff5f1ae61cf to your computer and use it in GitHub Desktop.
Save pi314/0f99d91f7ff5f1ae61cf to your computer and use it in GitHub Desktop.
The slide needs slide.vim plugin to play
===============
Vim Plugin 簡介
===============
如何自幹一個 Vim Plugin
(我猜 10 分鐘就會結束了)
池昌言 pi314 拍拍
CCCA x SITCON 定期聚 @ 2015/10/14
----
<hide>
===============
Vim Plugin 簡介
===============
# 在場有沒有人用過 Vim?
# 有沒有人喜歡用 Vim?
# 有沒有人自己調過設定檔?
# 有沒有人嘗試過 Vim,但因為太難而感到挫折?
=================
Vim Plugin 能幹嘛
=================
# 提供一些 Key Mapping,幫使用者處理複雜的操作
# 提供一些指令,幫使用者處理複雜的操作
# 管理其他 Plugin(例如 Vundle)
# 管理自己的行事曆
# 查 Yahoo! 字典
# 在 Vim 裡面嵌入一個嘸蝦米輸入法引擎
# 在 Vim 裡面輸入盲人的點字(?)
# 拿來放 slide(?)
=======================
如何寫自己的 Vim Plugin
=======================
# 基本上 Vim Plugin 就只是幫你做苦工
# 想像「如何閉著眼睛用 Vim 做某件事」
# normal! gg
# normal! dd
# let l:line = getline(".")
# call setline(".", "XDDD")
=======================
如何寫自己的 Vim Plugin
=======================
# 把檔案放成這樣的目錄結構
# filetype.vim
# ftplugin/
# plugin/
# autoload/
# README.rst
# 剩下的交給 Vundle 處理
===============
範例:zdict.vim
===============
# zdict 是個能查字典的 Command Line Tool
# 目標:把 zdict 執行的結果顯示在 vim 裡面
# :r !zdict test
# 完成!
# 但一點也不好用:(
===============
範例:zdict.vim
===============
# 基本的設計
# 字典是輔助的資訊,不應該影響到使用者的操作方式
# 獨立一個 Split 顯示,並且要在畫面的右邊
# 留 80 個字元寬度(不含左方的行號)給使用者
# Talk is Cheap, Show Me the Code!
# 產生一個 Split: vnew
# 把 Split 移到右邊: normal! "\<C-w>L"
# 設寬度: vertical resize 20
# 抓 zdict 的輸出: r !zdict test
# 要注意你的游標現在在哪裡
# Demo - zdict.vim
==============
好快就到的結語
==============
# Vim Plugin 其實滿好玩的,特別是寫給自己的 Plugin
# 給曾經遇到挫折的人,或是將要遇到挫折的人:
# Vim 是真的不好調
# 別聽 Vim 信徒說「不要用方向鍵~ 要用 hjkl blablabla」
# 自己用得順手就好,想要更快自然就會去學各種技巧
# 不需要去看「如何把你的 Vim 做成一個強大的 IDE」
# 那樣會把你的 Vim 搞得很亂
# 自己有什麼需求再加就好
# 前提是你得知道自己「想要」什麼
==============
好快就到的結語
==============
# 給想要寫自己的 Plugin 的人:
# **注意安全**
# Vim Script 不是很好的語言
# 如果寫得不開心,至少有八成不是你的問題
# 寫 Plugin 不難,寫出好的 Plugin 很難
# 但不管怎樣爽就好
# **記得寫註解**
# 歡迎來 CCCA 交流、問問題、或是教我們XD
# Vim 的知識太多、太碎,一大堆莫名奇妙的 Option
# 和別人討論是最快能獲得它們的方式
=====
PHONY
=====
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment