要怎麼把 Yes
換成 No
?
標準答案是 ciw 再輸入 "No"。
更快的方法是寫 script 處理,很久以前看到一篇
Toggling yes-no,
把常用組合先定義好,只要一個鍵就能把 Yes
換成 No
,再按一次就換回來,真是聰明啊~
這方法我用了很久,當時改出來的設定如這個 gist。
因為覺得方便,又有蠻多地方想改善,所以打算寫成 plugin。
搜尋 toggle 才發現真多人寫過,不過似乎大同小異,除了
SwapIt.vim:
- 用 visual 選起來,就可以處理含空白的
some words
(原本的實作方式辦不到)。 - 可以把
<H1>example</H1>
變成<H2>example</H2>
(一次換掉前後 tag)。 - 可以吃 omni-completion 的結果,所以不必額外設定,就知道 CSS display block 可以換成 inline、none 等等。
- 其它。
我比較同意 SwapIt 的設計,認定 swap 這個功能,用力加強它。
SwapIt 的問題是實作還未成熟,所以我也 fork 它準備貢獻。
但是送第二個 pull request 前,覺得有點走不下去:
- 繼續改下去,細部的實作幾乎都不一樣。
- 重寫比重構簡單。
- 在使用者立場,我想像的 interface 是另一番面貌,向前相容顯得多餘。
- 我想全權處理所有問題。
另外對 SwapIt 這個名字也有點在意,至少我搜尋的時候就沒想到 swap 這關鍵字。
想起來最適合的字是 Cycle(因為是在一組字中循環,例如 top right bottom left),但是在 GitHub 一搜就發現已經有同名 plugin 了
——zef/vim-cycle——很精簡,程式聰明漂亮,可惜作者太忙比較沒空更新。
結果我的 plugin 還是叫 cycle,這樣好嗎?
我把碰到的困難告訴兩位開發者 Michael Brown 和 Zef,他們都很開放,表示基本上不介意我這麼做(我想還是有點情緒干擾吧); 而雖然大家目標類似,但個人考量的點(有趣的是想法從 coding style 與用法設計就看得出來)還是不容易統合,變成一個專案。
這種情況下,我就先開發再說了,把手上的問題解決。
目前 0.1.0 版本已經是堪用階段:
bootleq/vim-cycle - GitHub
之後會再寫一篇簡易使用說明。
有 0 個意見
☂