keyevent/13.HH_scheme
をテンプレートにして作成
[
Front page
] [
New
|
Page list
|
Search
|
Recent changes
|
Help
]
Start:
** help [#e95b1bba]
===== keyevent.nvim : color scheme demo =====
HH + HH ( click H, tap H, click H, tap H ) でこの画面を...
click H : click するたびに color scheme 変更
H 長押し : key release でcolor scheme slide show 開始。...
tap H + H 長押し : 逆順でslide show 開始
任意のkey : slide show 終了
Esc : demo 終了
-----
color name : dark
slide show interval : 1234 ms
** 案1 [#v85577f4]
- CTRE の組み合わせ
- key sequence
- hold 中 meta (mac only)
- Break ?
|#|state|key|meta|type|next|type|action|note|
|1|NORMAL|H|0|C|-|single(tan)|vim H||
|2|NORMAL|hhhh|SSSS|CTCT|DEMO|tap-click(tatan-tatan)|demo...
|3|else|<Esc>|<Esc>|C|NORMAL|single(tan)|demo end|close h...
|4|DEMO|h|S|C|-|click(tan)|next color scheme|slide show ...
|5|DEMO|hh|SS|CR|HOLD|hold(taan)|slide show 開始準備|hold...
|6|DEMO|hhh|SSS|CTR|HOLD|tap-hold(tataan)|slide show 逆開...
|7|HOLD|WILD|WILD|E|SLIDE|hold end(release)|start slide s...
|8|HOLD|WILD|WILD|WILD|DEMO|hold end|reset|reset|
|9|SLIDE|WILD|WILD|WILD|DEMO|any(EB)|stop slide show|slid...
** 案2 [#v85577f4]
repeat ___
hold ___
tap | click -----------|------------
key j hw
hist 1 58
hist 2 3
hist 1
-----
seq
type CTTHEC
key hhhh 🔥
meta SSSS x
** key [#ta317906]
key_seq = {
keys = { "h", "h", "h", "h" },
metas = {META.S, META.S, META.S, META.S },
types = { TAP, CLICK, TAP, CLICK }
}
** ai [#s4440ed5]
はい、その方向がかなり良いと思います。
''keyevent.nvim'' のサンプルは「便利なプラグイン集」では...
特に、
- C:click
- T:tap
- H:repeat
- ''nt'' による連打
- キー列
- meta key
- repeat 中のイベント(meta?)
- repeat_end
- (長押し中の ''nr'':hold time)
- (''prev_key'')
などを、**一つの小さな playground で体験できる**のが面白...
*** 例えばこんなデモ [#t13fa7f5]
|操作|動作|見せたいもの|
|---|---|---|
|''H''|Vim の ''H''|通常のキーを壊さない|
|''HH''|Demo help|''nt'' / 連打|
|''M''|カーソルが画面中央付近を移動|click|
|''M'' 長押し|10 repeat ごとにスキン変更|''repeat'', ''nr...
|''MM''|別のものを順番に切替|''nt''|
|''HM''|メッセージ popup|''prev_key'' / key sequence|
|''M'' 長押し→離す|元のスキンに戻す|''repeat_end''|
|''H'' 長押し|''H'' を普通に繰り返す|Vim の通常 repeat と...
この「**同じキーでも、押し方によって意味が変わる**」とい...
---
*** ''M'' は特に良い題材だと思います [#mb86f83f]
ただカーソルを動かすだけだと少し地味なので、
> **M = Magic**
くらいにしてしまって、
M → magic click
MM → magic tap
M hold → magic repeat
とすると、同じキーに3種類のイベントを割り当てられます。
例えば通常の ''M'' では、
● が画面中央付近を少しずつ移動する。
そして ''M'' 長押しでは、
M
repeat 10 → skin 2
repeat 20 → skin 3
repeat 30 → skin 1
...
と、カーソル位置の表示方法を
normal → crosshair → box → target → normal ...
のように変える。
離した瞬間に元へ戻す。
これは実用性ではなく、**「repeat イベントってこういうこと...
---
*** ''MM'' は「別の軸」にすると面白い [#tfde269c]
''M'' の長押しが **時間方向**なら、
''MM'' は **入力回数方向**にすると対比がきれいです。
例えば、
MM
のたびに
●
○
◎
⊙
◉
●
...
のようなカーソルマーカーを順番に変更する。
つまり、
M click
MM tap / nt
M hold repeat
で、**同じ M に対して event type の違いが視覚的に現れる**...
---
*** ''HM'' は「イベント列」のデモ [#a271222f]
これも良いと思います。
例えば、
HM
で
|keyevent.nvim|
||
|H → M|
|key sequence demo|
のような小さな通知を出す。
ここでは単純に ''H'' と ''M'' を個別に見るだけでなく、
prev_key == "H"
key == "M"
という **イベントの文脈**を利用していることを示せます。
---
## そして ''HH'' → help が非常に良い
これは特に好きです。
最初の
H
は完全に Vim の ''H''。
しかし、
HH
なら
keyevent.nvim demo
──────────────────
H Vim H
HH this help
M move magic
MM change marker
M hold change skin
HM popup
...
となる。
つまり **「既存の Vim 操作を保ったまま、tap/sequence を上...
そして ''HHH'' なども将来、
HH help
HHH event monitor
HHHH diagnosis
と拡張できます。
---
## さらに一つ入れるなら「イベント可視化」
これは ''keyevent.nvim'' ならではなので、サンプルとしてか...
例えば右下に小さく
|key: M|
|type: repeat|
|nt: 1|
|nr: 23|
|interval: 83|
|meta: -|
と表示する。
キーを押すたびにリアルタイムで変わる。
これなら、
M
M
M
とタップしたときと、
M────────────
と長押ししたときの違いが目で見えます。
これは「サンプル」というより、**keyevent の実験器**ですね。
---
私は最終的には、
examples/
basic.lua
demo.lua
のように大量のサンプルを並べるより、
**''demo.lua'' 一つで keyevent の性質を遊びながら全部見せ...
くらいが、このプロジェクトには合っていると思います。
特に今回の
> ''H'' → Vimそのまま
> ''HH'' → help
> ''M'' → click
> ''MM'' → tap
> ''M'' hold → repeat
> ''HM'' → sequence
という構成は、**keyevent の API ドキュメントを読まなくて...
End:
** help [#e95b1bba]
===== keyevent.nvim : color scheme demo =====
HH + HH ( click H, tap H, click H, tap H ) でこの画面を...
click H : click するたびに color scheme 変更
H 長押し : key release でcolor scheme slide show 開始。...
tap H + H 長押し : 逆順でslide show 開始
任意のkey : slide show 終了
Esc : demo 終了
-----
color name : dark
slide show interval : 1234 ms
** 案1 [#v85577f4]
- CTRE の組み合わせ
- key sequence
- hold 中 meta (mac only)
- Break ?
|#|state|key|meta|type|next|type|action|note|
|1|NORMAL|H|0|C|-|single(tan)|vim H||
|2|NORMAL|hhhh|SSSS|CTCT|DEMO|tap-click(tatan-tatan)|demo...
|3|else|<Esc>|<Esc>|C|NORMAL|single(tan)|demo end|close h...
|4|DEMO|h|S|C|-|click(tan)|next color scheme|slide show ...
|5|DEMO|hh|SS|CR|HOLD|hold(taan)|slide show 開始準備|hold...
|6|DEMO|hhh|SSS|CTR|HOLD|tap-hold(tataan)|slide show 逆開...
|7|HOLD|WILD|WILD|E|SLIDE|hold end(release)|start slide s...
|8|HOLD|WILD|WILD|WILD|DEMO|hold end|reset|reset|
|9|SLIDE|WILD|WILD|WILD|DEMO|any(EB)|stop slide show|slid...
** 案2 [#v85577f4]
repeat ___
hold ___
tap | click -----------|------------
key j hw
hist 1 58
hist 2 3
hist 1
-----
seq
type CTTHEC
key hhhh 🔥
meta SSSS x
** key [#ta317906]
key_seq = {
keys = { "h", "h", "h", "h" },
metas = {META.S, META.S, META.S, META.S },
types = { TAP, CLICK, TAP, CLICK }
}
** ai [#s4440ed5]
はい、その方向がかなり良いと思います。
''keyevent.nvim'' のサンプルは「便利なプラグイン集」では...
特に、
- C:click
- T:tap
- H:repeat
- ''nt'' による連打
- キー列
- meta key
- repeat 中のイベント(meta?)
- repeat_end
- (長押し中の ''nr'':hold time)
- (''prev_key'')
などを、**一つの小さな playground で体験できる**のが面白...
*** 例えばこんなデモ [#t13fa7f5]
|操作|動作|見せたいもの|
|---|---|---|
|''H''|Vim の ''H''|通常のキーを壊さない|
|''HH''|Demo help|''nt'' / 連打|
|''M''|カーソルが画面中央付近を移動|click|
|''M'' 長押し|10 repeat ごとにスキン変更|''repeat'', ''nr...
|''MM''|別のものを順番に切替|''nt''|
|''HM''|メッセージ popup|''prev_key'' / key sequence|
|''M'' 長押し→離す|元のスキンに戻す|''repeat_end''|
|''H'' 長押し|''H'' を普通に繰り返す|Vim の通常 repeat と...
この「**同じキーでも、押し方によって意味が変わる**」とい...
---
*** ''M'' は特に良い題材だと思います [#mb86f83f]
ただカーソルを動かすだけだと少し地味なので、
> **M = Magic**
くらいにしてしまって、
M → magic click
MM → magic tap
M hold → magic repeat
とすると、同じキーに3種類のイベントを割り当てられます。
例えば通常の ''M'' では、
● が画面中央付近を少しずつ移動する。
そして ''M'' 長押しでは、
M
repeat 10 → skin 2
repeat 20 → skin 3
repeat 30 → skin 1
...
と、カーソル位置の表示方法を
normal → crosshair → box → target → normal ...
のように変える。
離した瞬間に元へ戻す。
これは実用性ではなく、**「repeat イベントってこういうこと...
---
*** ''MM'' は「別の軸」にすると面白い [#tfde269c]
''M'' の長押しが **時間方向**なら、
''MM'' は **入力回数方向**にすると対比がきれいです。
例えば、
MM
のたびに
●
○
◎
⊙
◉
●
...
のようなカーソルマーカーを順番に変更する。
つまり、
M click
MM tap / nt
M hold repeat
で、**同じ M に対して event type の違いが視覚的に現れる**...
---
*** ''HM'' は「イベント列」のデモ [#a271222f]
これも良いと思います。
例えば、
HM
で
|keyevent.nvim|
||
|H → M|
|key sequence demo|
のような小さな通知を出す。
ここでは単純に ''H'' と ''M'' を個別に見るだけでなく、
prev_key == "H"
key == "M"
という **イベントの文脈**を利用していることを示せます。
---
## そして ''HH'' → help が非常に良い
これは特に好きです。
最初の
H
は完全に Vim の ''H''。
しかし、
HH
なら
keyevent.nvim demo
──────────────────
H Vim H
HH this help
M move magic
MM change marker
M hold change skin
HM popup
...
となる。
つまり **「既存の Vim 操作を保ったまま、tap/sequence を上...
そして ''HHH'' なども将来、
HH help
HHH event monitor
HHHH diagnosis
と拡張できます。
---
## さらに一つ入れるなら「イベント可視化」
これは ''keyevent.nvim'' ならではなので、サンプルとしてか...
例えば右下に小さく
|key: M|
|type: repeat|
|nt: 1|
|nr: 23|
|interval: 83|
|meta: -|
と表示する。
キーを押すたびにリアルタイムで変わる。
これなら、
M
M
M
とタップしたときと、
M────────────
と長押ししたときの違いが目で見えます。
これは「サンプル」というより、**keyevent の実験器**ですね。
---
私は最終的には、
examples/
basic.lua
demo.lua
のように大量のサンプルを並べるより、
**''demo.lua'' 一つで keyevent の性質を遊びながら全部見せ...
くらいが、このプロジェクトには合っていると思います。
特に今回の
> ''H'' → Vimそのまま
> ''HH'' → help
> ''M'' → click
> ''MM'' → tap
> ''M'' hold → repeat
> ''HM'' → sequence
という構成は、**keyevent の API ドキュメントを読まなくて...
Page: