漢数字もインクリメント、デクリメントしたい。

mondayというプラグインがある。

monday - Lets you use ctrl-a and ctrl-x on names of months and weekdays : vim online

MondayをTuesdayに、TuesdayをWednesdayに…と出来て、その逆もできる。

monday.vim : Ctrl-a、Ctrl-xで曜日、月をループ (+他の用途への応用) — 名無しのvim使いVimのC-aで月、火、水、木、キン肉マン!!!を実現する - Qiitaにカスタマイズの方法が書いてあって、一を二に、二を三に…できそうだった。

元々のコードではpluginのファイルに直接

call <SID>AddPair('月', '火')
call <SID>AddPair('火', '水')

のように記述するしかなかったので、

nmap <C-a> <Plug>(monday-increase)
nmap <C-x> <Plug>(monday-decrease)

call monday#add_word_pair('一', '二')
call monday#add_word_pair('二', '三')
call monday#add_word_pair('三', '四')
call monday#add_word_pair('四', '五')
call monday#add_word_pair('五', '六')
call monday#add_word_pair('六', '七')
call monday#add_word_pair('七', '八')
call monday#add_word_pair('八', '九')

のように、vimrcから設定できるようにしたのがこちら。

tmsanrinsha/monday: Lets you use ctrl-a and ctrl-x on names of months and weekdays

ただ、単独の一、ニはインクリメントできるが、一回、二回のように単語に含まれる形になってしまうと、内部で<cword>などを使っているせいでうまく動かない。

vital-coaster/switch.vim at master · osyo-manga/vital-coasterを参考にして、一から作り直したほうがいいかも。

類似のプラグイン

osyo-manga/vim-trip: Smart <C-a>/<C-x>

hoge-1の上で<C-a>を打ったときhoge-1(通常はhoge0)にしてくれる。

作者による記事
col-sm-3 みたいなときにマイナスを無視してインクリメント・デクリメントする Vim プラグインつくった - Secret Garden(Instrumental)

AndrewRadev/switch.vim: A simple Vim plugin to switch segments of text with predefined replacements

trueをfalseなどにしてくれる等がある。

(続)Vimでマクロを使わず、縦横の連番を作成する(文脈に合わせてステップ数を変える) - Qiita

横方向にインクリメントしたりする設定(マクロは内部で使ってると思うんだけどなぁ)。

deris/vim-rengbang: vim plugin for sequencial numbering with pattern

連番をつくるプラグイン

tpope/vim-speeddating: speeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more

日付をインクリメントできるプラグイン

Big Sky :: 意外と知られていないvimのtips(CTRL-AやCTRL-Xで日付をインクリメント/デクリメント)