安裝
建議用 Vundle 裝 → Bundle 'bootleq/vim-cycle'
。
不然就用老方法,把所有檔案放到 runtimepath(預設在 ~/.vim)即可。
檔案在 https://github.com/bootleq/vim-cycle
簡易設定
要特別做的只有「哪些字能 cycle」設定,否則預設的字很少。
把 doc 287-341 行的範例 加進 vimrc,再視需要修改就可以了,應該很容易看懂。
進階選項再看 doc。
用途,例子
預設會加一個快速鍵 <Leader>a,其中 <Leader> 預設是 \ 所以實際是按 \a。
(註:用 a 是取 Advance、Add 的 a,類似預設的 CTRL-A 功能)
按 <Leader>a 會把目前游標上的字換成下一個,以下舉例說明;若有特別標示,表示游標位置。
-
true
→false
true 會變 false,false 會變 true;光這樣就很方便了。 -
Yes
→No
大小寫會自動保持。 -
+
→-
-
==
→!=
-
可是
→可否
特殊符號和中文都可以 cycle。 -
Sunday
→Monday
→Tuesday
→Wednesday
→Thursday
→Friday
→Saturday
→Sunday
typo 的機率降低了。 -
Rails Metal
→Thrash
→Technical Death
即使游標在空白上,也能試著搜尋關鍵字。 -
$li.addClass('foo')
→$li.removeClass('foo')
- jQuery element Attributes
-
position: 'upperLeft'
→position: 'upperRight'
- MooTools Element.Position
-
:render_with_me
→:render_without_me
- Rails alias_method_chain
處理串在一起的字,實用性增加不少。 -
<em>example</em>
→<strong>example</strong>
HTML 標籤的開始/關閉標記可以一起 cycle。 -
「例子」
→『例子』
→(例子)
成對的關鍵字可以一起 cycle。
不過目前未支援頭尾相同的 pair,例如"例子"
。
另外在 <Leader>a 前可以加 [count],例如 2\a 會 cycle 到第二個的候選,
Monday
就會變成 Wednesday
而不是 Tuesday
。
還有在 visual mode 也可以用 <Leader>a,這樣就不會自動搜尋關鍵字,而是直接用選取的字來 cycle,遇到混淆時可以試試。
有 4 個意見
很好用啊,我把它映射到 C-a/x 上了。为什么 CycleFallback{Next,Prev} 没有在文档写出来呢?
Fallback 我還沒有仔細測試過,確實該來補一下。
我是中文用户,很喜欢这个功能。可是由于说明都是英文,其中提到的“组”的功能我不大明白,是否能够将帮助的 doc 翻译成中文?
目前我只是简单的将要替换的部分,都写在了 plugin 的 cycle.vim 之中。不过由于包含中文,因此要将它改为 utf-8 格式才不会乱码。
謝謝使用,我會再寫一篇中文介紹 group 的設定;但是 doc 我就不想多維護一份中文的了。
建議的方式是在你的 .vimrc 設定如下:
https://github.com/bootleq/vim-cycle/blob/4f3f7c025c135c1b3ca73e93413ca46a388e9be4/doc/cycle.txt#L319-345
這樣會比直接改 plugin 好管理。
☂