rush/03.spec-hold
をテンプレートにして作成
[
Front page
] [
New
|
Page list
|
Search
|
Recent changes
|
Help
]
Start:
* Spec Hold [#cef65b46]
- タタン、タタン、タタンで加速
- タン、タン、タンで減速
- タタタタタンで最初から爆速
- 20タンでも最初から爆速、タタン、タン、も有効
- rush-count は廃止
** rush.nvim内部処理仕様 [#w4f4a4b0]
- keymap.set で置き換えたkeymapを監視する。置き換えるキー...
-- <C-f>, "gj" などはまだ実験していない
- key K を長押しする操作を<hold-K>と表記する
- 同時にon_keyで置き換えていないkey eventを監視する。(<C-...
- keymap.set で登録した関数が呼び出されるたびにrush event...
- rush eventの内容
-- 発生時間(vim.loop.hrtime)
-- 押されたkey
-- 連打開始直前に押されたキー(なければ"")
-- vim_count:連打開始時のvim.v.count
-- 前回key eventからの時間間隔(最初のkey evetの場合はvim...
- rush eventの種類
-- tap: 前と同じキーが短時間(おおよそinterval.rep以内)に...
--- 同一キー連打回数ntを提供する。連打開始はclickになるの...
-- start: キーを押し込んだ最初のeventはtap|clickだが2番目...
--- start2がよいか?
-- repeat: キーを押し込んだ後3番目以降のkey eventはrepeat...
--- hold時間を提供する。hold時間とはhold開始からの経過時...
--- repeat回数nrを提供する。repeat回数とはhold中に発生し...
-- click: その他のkey event。連打でない場合、時間をおいて...
-- repeat-end: hold終了event。repeatからinterval.rep経過...
- 具体例
-- しばらく時間をおいてから"jjk<hold-k>"と連続タイプした...
-- click-j(1,0), tap-j(2,0), tap-k(1,0), tap-k(2,0), star...
-- 括弧は(nt,nr)
利用例(アイデア)
- rush eventの内容をみてreturnする文字列や振る舞いを自由...
- 例、j<hold-j>の場合
-- click-j(1,0), tap-j(2,0), start-j(2,2), repeat-j(2,3),...
-- nr!=0なら return "2j" とする
- 例、<hold-j>の場合
-- nr!=0なら return vim_count .. "j" とする
- 例、n,<hold-n>の場合
-- nr!=0なら 検索履歴表示
- 例、j,kの場合
-- return <esc>
- 例、j,<hold-k>の場合
-- return "", 女子高生とのチャットゲーム開始
- &color(,orange){<hold-j><hold-j><hold-j> と<hold-j>を繰...
- &color(,orange){勝手に加速しない。加速度合いを制御でき...
- &color(,orange){Ctrlキーを押すたびに遅くなるとか};
End:
* Spec Hold [#cef65b46]
- タタン、タタン、タタンで加速
- タン、タン、タンで減速
- タタタタタンで最初から爆速
- 20タンでも最初から爆速、タタン、タン、も有効
- rush-count は廃止
** rush.nvim内部処理仕様 [#w4f4a4b0]
- keymap.set で置き換えたkeymapを監視する。置き換えるキー...
-- <C-f>, "gj" などはまだ実験していない
- key K を長押しする操作を<hold-K>と表記する
- 同時にon_keyで置き換えていないkey eventを監視する。(<C-...
- keymap.set で登録した関数が呼び出されるたびにrush event...
- rush eventの内容
-- 発生時間(vim.loop.hrtime)
-- 押されたkey
-- 連打開始直前に押されたキー(なければ"")
-- vim_count:連打開始時のvim.v.count
-- 前回key eventからの時間間隔(最初のkey evetの場合はvim...
- rush eventの種類
-- tap: 前と同じキーが短時間(おおよそinterval.rep以内)に...
--- 同一キー連打回数ntを提供する。連打開始はclickになるの...
-- start: キーを押し込んだ最初のeventはtap|clickだが2番目...
--- start2がよいか?
-- repeat: キーを押し込んだ後3番目以降のkey eventはrepeat...
--- hold時間を提供する。hold時間とはhold開始からの経過時...
--- repeat回数nrを提供する。repeat回数とはhold中に発生し...
-- click: その他のkey event。連打でない場合、時間をおいて...
-- repeat-end: hold終了event。repeatからinterval.rep経過...
- 具体例
-- しばらく時間をおいてから"jjk<hold-k>"と連続タイプした...
-- click-j(1,0), tap-j(2,0), tap-k(1,0), tap-k(2,0), star...
-- 括弧は(nt,nr)
利用例(アイデア)
- rush eventの内容をみてreturnする文字列や振る舞いを自由...
- 例、j<hold-j>の場合
-- click-j(1,0), tap-j(2,0), start-j(2,2), repeat-j(2,3),...
-- nr!=0なら return "2j" とする
- 例、<hold-j>の場合
-- nr!=0なら return vim_count .. "j" とする
- 例、n,<hold-n>の場合
-- nr!=0なら 検索履歴表示
- 例、j,kの場合
-- return <esc>
- 例、j,<hold-k>の場合
-- return "", 女子高生とのチャットゲーム開始
- &color(,orange){<hold-j><hold-j><hold-j> と<hold-j>を繰...
- &color(,orange){勝手に加速しない。加速度合いを制御でき...
- &color(,orange){Ctrlキーを押すたびに遅くなるとか};
Page: