11# dial.nvim
22
3- ** NOTICE: 本プラグインはまだ開発段階であり、事前告知なくインターフェースが変更となることがあります。**
4-
5- ## 旧バージョン (v0.2.0) を使っていた人へ
6-
7- 2022/02/20 に v0.3.0 がリリースされ、既存のインターフェースとの互換性がなくなりました。
8- 以前のバージョン向けの設定を行っていた方は、[ TROUBLESHOOTING.md] ( ./TROUBLESHOOTING_ja.md ) を参考に再設定を行ってください。
9-
103## 概要
114
125[ Neovim] ( https://github.com/neovim/neovim ) の数値増減機能を拡張する Lua 製プラグイン。
1811
1912* 数値をはじめとする様々なものの増減
2013 * n 進数 (` 2 <= n <= 36 ` ) の整数
14+ * 小数
2115 * 日付・時刻
2216 * キーワードや演算子など、所定文字列のトグル
2317 * ` true ` ⇄ ` false `
5044本プラグインを有効にするには、いずれかのキーに以下のような割り当てを行う必要があります。
5145
5246``` vim
53- nmap <C-a> <Plug>(dial-increment)
54- nmap <C-x> <Plug>(dial-decrement)
55- nmap g<C-a> g <Plug>(dial-increment)
56- nmap g<C-x> g <Plug>(dial-decrement)
57- vmap <C-a> <Plug>(dial-increment)
58- vmap <C-x> <Plug>(dial-decrement)
59- vmap g<C-a> g <Plug>(dial-increment)
60- vmap g<C-x> g <Plug>(dial-decrement)
47+ nnoremap <C-a> <Plug>(dial-increment)
48+ nnoremap <C-x> <Plug>(dial-decrement)
49+ nnoremap g<C-a> <Plug>(dial-g -increment)
50+ nnoremap g<C-x> <Plug>(dial-g -decrement)
51+ xnoremap <C-a> <Plug>(dial-increment)
52+ xnoremap <C-x> <Plug>(dial-decrement)
53+ xnoremap g<C-a> <Plug>(dial-g -increment)
54+ xnoremap g<C-x> <Plug>(dial-g -decrement)
6155```
6256
6357または Lua 上で以下のように設定することもできます。
7569vim .keymap .set (" n" , " g<C-x>" , function ()
7670 require (" dial.map" ).manipulate (" decrement" , " gnormal" )
7771end )
78- vim .keymap .set (" v " , " <C-a>" , function ()
72+ vim .keymap .set (" x " , " <C-a>" , function ()
7973 require (" dial.map" ).manipulate (" increment" , " visual" )
8074end )
81- vim .keymap .set (" v " , " <C-x>" , function ()
75+ vim .keymap .set (" x " , " <C-x>" , function ()
8276 require (" dial.map" ).manipulate (" decrement" , " visual" )
8377end )
84- vim .keymap .set (" v " , " g<C-a>" , function ()
78+ vim .keymap .set (" x " , " g<C-a>" , function ()
8579 require (" dial.map" ).manipulate (" increment" , " gvisual" )
8680end )
87- vim .keymap .set (" v " , " g<C-x>" , function ()
81+ vim .keymap .set (" x " , " g<C-x>" , function ()
8882 require (" dial.map" ).manipulate (" decrement" , " gvisual" )
8983end )
9084```
@@ -132,28 +126,22 @@ nmap <Leader>a "=mygroup<CR><Plug>(dial-increment)
132126また、 Lua 上で以下のように記述すれば expression register を使わずにマッピングを設定できます。
133127
134128``` lua
135- vim .keymap .set (" n" , " <Leader>a" , require (" dial.map" ).inc_normal (" mygroup" ), { noremap = true } )
129+ vim .keymap .set (" n" , " <Leader>a" , require (" dial.map" ).inc_normal (" mygroup" ))
136130```
137131
138132expression register などでグループ名を指定しなかった場合、` default ` グループにある被加数がかわりに用いられます。
139133
140134### 設定例
141135
142- ``` vim
143- lua << EOF
136+ ``` lua
144137local augend = require (" dial.augend" )
145138require (" dial.config" ).augends :register_group {
146139 default = {
147140 augend .integer .alias .decimal ,
148141 augend .integer .alias .hex ,
149142 augend .date .alias [" %Y/%m/%d" ],
150143 },
151- typescript = {
152- augend.integer.alias.decimal,
153- augend.integer.alias.hex,
154- augend.constant.new{ elements = {"let", "const"} },
155- },
156- visual = {
144+ only_in_visual = {
157145 augend .integer .alias .decimal ,
158146 augend .integer .alias .hex ,
159147 augend .date .alias [" %Y/%m/%d" ],
@@ -162,14 +150,21 @@ require("dial.config").augends:register_group{
162150 },
163151}
164152
165- -- VISUAL モードでの被加数を変更する
166- vim.keymap.set("v", "<C-a>", require("dial.map").inc_visual("visual"), {noremap = true})
167- vim.keymap.set("v", "<C-x>", require("dial.map").dec_visual("visual"), {noremap = true})
168- EOF
153+ -- Use `only_in_visual` group only in VISUAL <C-a> / <C-x>
154+ vim .keymap .set (" x" , " <C-a>" , function ()
155+ require (" dial.map" ).manipulate (" increment" , " visual" , " only_in_visual" )
156+ end )
157+ vim .keymap .set (" x" , " <C-x>" , function ()
158+ require (" dial.map" ).manipulate (" decrement" , " visual" , " only_in_visual" )
159+ end )
169160
170- " 特定のファイルタイプでのみ有効にする
171- autocmd FileType typescript lua vim.api.nvim_buf_set_keymap(0, "n", "<C-a>", require("dial.map").inc_normal("typescript"), {noremap = true})
172- autocmd FileType typescript lua vim.api.nvim_buf_set_keymap(0, "n", "<C-x>", require("dial.map").dec_normal("typescript"), {noremap = true})
161+ require (" dial.config" ).augends :on_filetype {
162+ typescript = {
163+ augend .integer .alias .decimal ,
164+ augend .integer .alias .hex ,
165+ augend .constant .new { elements = {" let" , " const" } },
166+ },
167+ }
173168```
174169
175170## 被加数の種類と一覧
0 commit comments