rush/02.spec-hjkl
をテンプレートにして作成
[
Front page
] [
New
|
Page list
|
Search
|
Recent changes
|
Help
]
Start:
* spec [#ta285c40]
** 基本方針 [#q1b2bcc3]
- キー入力のリズムに対応してexpr keymapを使ってキーを置き...
-- つまりキー入力の履歴をみて置き換えの判断をします
- 同じキーの連続入力だけを対象とする
- よく使うキーコンビネーションは変化させない
- 頻度の低い(と思われる)キーコンビネーションに限って変化...
-- 何をよく使うかは個人差があると思うのでユーザーがカスタ...
** mode [#vd3506d4]
- 押し下げたキー(type)とvimに渡すキー(return)。"-"とある...
- 変化するのはtypeに書いてある最後のキー。
- つまり次の表では"hold j"以外は変化せずタイプした通りvim...
- "j"の部分は"k", "w", "B" などにも対応可能
|key type|return|pattern(J)|pattern(E)|command|note|
|j|-|タッ|T|1||
|jj|-|タタッ|TT|2||
|jjj|-|タタタッ|TTT|3||
|hold j|-|タン|H|1H||
|8 + hold j|8j|タン|H|1H|C:vim.v.count1 > 1|
|j + hold j|5j|タタン|TH|2H||
|jj + hold j|10j|タタタン|TTH|3H||
|jjj + hold j|20j|タタタタン|TTTH|4H||
"5", "10", "20" の値はカスタマイズ可能。”キーコンビネーシ...
例:
- jj + hold j と入力した場合
- 最初のjはTと解釈します。return j
- 次のjはTTと解釈します。return j
- 次のjでholdに入りますがholdに入ったことはpluginにはまだ...
- 次のjでholdに入っていたことがわかるのでTTHと解釈します...
- つまり3回"j"で移動した後holdしている限り"10j"で移動しま...
** tap / hold 判定 [#qa0c4727]
同じキーを連続して入力した場合setup で指定した時間間隔を...
- 閾値
-- hold-repeat-interval (t_rep)
-- first-hold-interval-lower(t_hold1)
-- first-hold-interval-upper(t_hold2)
-- tap(t_tap)
- 判定
-- if interval <= t_rep : hold repeat [ R ]
-- elseif t_hold1 <= interval <= t_hold2 : start hold rep...
-- elseif interval <= t_tap : tap [ T ]
-- else : click [ C ]
なお判定式からわかる様に t_rep < interval < t_hold1 はtap...
t_tap < interval はclickに分類されます。
** 支援機能 [#ic0ad232]
- 支援モードに入るとキータイプ解析結果を表示する(float wi...
- メニュー表示(1,2,3で機能を選択)
- 1. hold測定
-- hold を何度か試す。time1,2,3 の統計情報を表示する
-- <esc>でメニューに戻る
- 2. tap測定
-- tapと判定してもらいたいギリギリでゆっくりtapする
-- 統計情報を表示する
- 3. フリーモード
-- 設定値に従ってhold, click などの判定を表示する
-- 統計情報を表示する
- <ESC>で支援モードを抜ける
** キーコンビネーション設定 [#xdc0975e]
設定table。将来はsetupで変更可能とする。
例
pattern_NH = { keymap = {"h", "j", "k", "l"}, prefix = {...
pattern_TH = { keymap = {"h", "j", "k", "l"}, prefix = {...
pattern_TTH = { keymap = {"h", "j", "k", "l"}, prefix = ...
ここで"NH", "TH", "TTH" はmode表の"pattern(E)"に対応する。
** 将来構想 [#rf2fba0c]
- gj + hold j で"gj" 連続
- 8gj + hold j で"8gj" 連続 : 使わない様な気もする
End:
* spec [#ta285c40]
** 基本方針 [#q1b2bcc3]
- キー入力のリズムに対応してexpr keymapを使ってキーを置き...
-- つまりキー入力の履歴をみて置き換えの判断をします
- 同じキーの連続入力だけを対象とする
- よく使うキーコンビネーションは変化させない
- 頻度の低い(と思われる)キーコンビネーションに限って変化...
-- 何をよく使うかは個人差があると思うのでユーザーがカスタ...
** mode [#vd3506d4]
- 押し下げたキー(type)とvimに渡すキー(return)。"-"とある...
- 変化するのはtypeに書いてある最後のキー。
- つまり次の表では"hold j"以外は変化せずタイプした通りvim...
- "j"の部分は"k", "w", "B" などにも対応可能
|key type|return|pattern(J)|pattern(E)|command|note|
|j|-|タッ|T|1||
|jj|-|タタッ|TT|2||
|jjj|-|タタタッ|TTT|3||
|hold j|-|タン|H|1H||
|8 + hold j|8j|タン|H|1H|C:vim.v.count1 > 1|
|j + hold j|5j|タタン|TH|2H||
|jj + hold j|10j|タタタン|TTH|3H||
|jjj + hold j|20j|タタタタン|TTTH|4H||
"5", "10", "20" の値はカスタマイズ可能。”キーコンビネーシ...
例:
- jj + hold j と入力した場合
- 最初のjはTと解釈します。return j
- 次のjはTTと解釈します。return j
- 次のjでholdに入りますがholdに入ったことはpluginにはまだ...
- 次のjでholdに入っていたことがわかるのでTTHと解釈します...
- つまり3回"j"で移動した後holdしている限り"10j"で移動しま...
** tap / hold 判定 [#qa0c4727]
同じキーを連続して入力した場合setup で指定した時間間隔を...
- 閾値
-- hold-repeat-interval (t_rep)
-- first-hold-interval-lower(t_hold1)
-- first-hold-interval-upper(t_hold2)
-- tap(t_tap)
- 判定
-- if interval <= t_rep : hold repeat [ R ]
-- elseif t_hold1 <= interval <= t_hold2 : start hold rep...
-- elseif interval <= t_tap : tap [ T ]
-- else : click [ C ]
なお判定式からわかる様に t_rep < interval < t_hold1 はtap...
t_tap < interval はclickに分類されます。
** 支援機能 [#ic0ad232]
- 支援モードに入るとキータイプ解析結果を表示する(float wi...
- メニュー表示(1,2,3で機能を選択)
- 1. hold測定
-- hold を何度か試す。time1,2,3 の統計情報を表示する
-- <esc>でメニューに戻る
- 2. tap測定
-- tapと判定してもらいたいギリギリでゆっくりtapする
-- 統計情報を表示する
- 3. フリーモード
-- 設定値に従ってhold, click などの判定を表示する
-- 統計情報を表示する
- <ESC>で支援モードを抜ける
** キーコンビネーション設定 [#xdc0975e]
設定table。将来はsetupで変更可能とする。
例
pattern_NH = { keymap = {"h", "j", "k", "l"}, prefix = {...
pattern_TH = { keymap = {"h", "j", "k", "l"}, prefix = {...
pattern_TTH = { keymap = {"h", "j", "k", "l"}, prefix = ...
ここで"NH", "TH", "TTH" はmode表の"pattern(E)"に対応する。
** 将来構想 [#rf2fba0c]
- gj + hold j で"gj" 連続
- 8gj + hold j で"8gj" 連続 : 使わない様な気もする
Page: