# 🏆MVP ## 7年ぶり AutoHotkeyプロジェクトの設定見直し 自身の[[プロダクティビティ]]を支える最重要プロジェクトであり、自分が[[Windows]]を使う唯一にして最大の理由、[[🦉Spinal reflex bindings template]]について7年ぶりくらいにすべての設定を見直した。 <div class="link-card"> <div class="link-card-header"> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/> <span class="link-card-site-name">minerva.mamansoft.net</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">📜2024-07-14 Spinal reflex bindings templateの設定リプレイス</p> <p class="link-card-description">📘AutoHotkeyが織りなすNeovimの魅力 を執筆するために 🦉Spinal reflex bindings templateの設定を参照していたら、今は利用していないノイズが結構あることが分かった。</p> </div> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" class="link-card-image" /> </div> <a class="internal-link" data-href="Notes/📜2024-07-14 Spinal reflex bindings templateの設定リプレイス.md"></a> </div> %%[[📜2024-07-14 Spinal reflex bindings templateの設定リプレイス]]%% 今回特に見直したのはキーリマップの設定部分。当初は手探りで頑張ってフレームワークっぽい仕組みを構築していたが、設定を積み重ねていくにつれてだんだん辛くなっていた。 ちょうど [[📘AutoHotkeyが織りなすNeovimの魅力]] を[[Vim駅伝]]の記事として執筆するタイミングでこの辺を見やすくしたかったこともあり、久々に朝カフェ行った勢いと3連休という巡り合わせにも謝意を示して取り組みことにした。大きな改善点は以下2点。 - ドキュメントと実装が完全に一致して把握しやすくなった - 複数のモードを1つの条件式で書けるようになった - 名前を短くすることで条件式が短くなった たとえば以下のコード。色々説明が間違っていたりもするのだが... ```autohotkey ;[NORMAL ]: rキー (コンビネーションキーの場合はR) ;[EDIT ]: 仮想入力モードをスペシャルモードにする ;[RANGE ]: 仮想入力モードをスペシャルモードにする ;[MOUSE ]: r ;[SPECIAL]: 仮想入力モードを標準にする ;[DEBUG ]: 再開 $r:: if (!mode(_MODE.NORMAL)) { if (mode(_MODE.SPECIAL)) { setMode(_MODE.EDIT) } else if (mode(_MODE.DEBUG)) { send {F8} } else { setMode(_MODE.SPECIAL) } } else { if (isSecondKey()) { send R } else { send r } } return ``` 対応後は以下のようになった。 ```autohotkey ;[N] rキー ;[EMR] SPECIALモードに切り替え ;[S] EDITモードに切り替え $r:: if (modes("N")) { send r } else if (modes("EMR")) { setMode(_MODE.SPECIAL) } else if (modes("S")) { setMode(_MODE.EDIT) } return ``` DEBUGモードなど、そもそも削除したモードもあるのだが、それを差し置いてもかなりシンプルで直感的になったと思う。 今回対応した全差分は以下の通り。`Alphabets.ahk`に至っては1648行のコードが898行まで減った。ほぼ半減である。 <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">Comparing b03931c...f9516c9 · tadashi-aikawa/spinal-reflex-bindings-template</p> <p class="link-card-description">This repository is the Autohotkey KeyCustomized Project which is applicable to only mine. - Com ... </p> </div> <img src="https://opengraph.githubassets.com/4042aa34e5ebd895da5e8b8d1c3d9e4c03e84829dccc429e27b3024d0ac75352/tadashi-aikawa/spinal-reflex-bindings-template" class="link-card-image" /> </div> <a href="https://github.com/tadashi-aikawa/spinal-reflex-bindings-template/compare/b03931c...f9516c9"></a> </div> なお、私が[[AutoHotkey]]でキーバインドしている設定は以下のディレクトリ配下だ。 <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">spinal-reflex-bindings-template/keybindings at master · tadashi-aikawa/spinal-reflex-bindings-template</p> <p class="link-card-description">This repository is the Autohotkey KeyCustomi ... </p> </div> <img src="https://opengraph.githubassets.com/4042aa34e5ebd895da5e8b8d1c3d9e4c03e84829dccc429e27b3024d0ac75352/tadashi-aikawa/spinal-reflex-bindings-template" class="link-card-image" /> </div> <a href="https://github.com/tadashi-aikawa/spinal-reflex-bindings-template/tree/master/keybindings"></a> </div> # 🥈RUP ## Silhouetteのロゴ作成 タスクマネジメントとタイムマネジメント可能な非公式な[[Obsidianプラグイン]]、[[🦉Silhouette]]のロゴを作成した。 ![[silhouette.webp|256x256]] ベースは[[DALL-E]]大先生に作成してもらい、一番イメージに近かった画像をベースに加工してロゴっぽくした。[[🦉Silhouette]]のシルエットたるイメージを残しつつ、デキる人のタスクスケジュール感が伝わってくるので気に入っている。[[favicon]]にすると判別がつきにくいディティールではあるが、Webアプリではないためそこは問題ないだろう。 あわせて[[🦉Silhouette]]のREADMEも少し格好よくしてみた。 ![[silhouette.avif]] # 🪙OPA ## NeovimでMarkdownのリストをObsidianのように [[Neovim]]での[[Markdown]]編集環境が強化された。[[markdown-toggle.nvim]]プラグインの導入だ。 <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">GitHub - roodolv/markdown-toggle.nvim: A Neovim plugin that provides a simple and useful set of toggle commands for Markdown.</p> <p class="link-card-description"> ... </p> </div> <img src="https://opengraph.githubassets.com/cd6d95cd50328ae14b780f39cedc4e09722f77df84acb77ab675dfa30b870a16/roodolv/markdown-toggle.nvim" class="link-card-image" /> </div> <a href="https://github.com/roodolv/markdown-toggle.nvim"></a> </div> [[Bluesky]]でたまたま作者の方がポストされているのを発見し、『[[Obsidian]]チックな[[Markdown]]操作』という魅力的なフレーズに惹かれて導入。以前から[[Neovim]]で箇条書きやチェックボックスの切り替えがスマートにできなかったのにモヤモヤしていたので個人的にはドストライクな内容だった。 ただ、私が普段使っている[[Obsidian]]の`Cycle bullet/checkbox`コマンドとは若干挙動が違ったのもあり、せっかくなので気持ちが入っているうちにIssueを作成してみた。 <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">[FR] 'Cycle bullet/checkbox' command · Issue #1 · roodolv/markdown-toggle.nvim</p> <p class="link-card-description">Hi :) Thank you for the wonderful plugin. It's very user-friendly, especially since I regu ... </p> </div> <img src="https://opengraph.githubassets.com/19f4028beb3b1b647c6ef985ee2eae4f7c7685e16818e58a3b60750b222233b0/roodolv/markdown-toggle.nvim/issues/1" class="link-card-image" /> </div> <a href="https://github.com/roodolv/markdown-toggle.nvim/issues/1"></a> </div> そしたら、なんと翌日には返信&対応いただけた! 検討してくれると嬉しいな...くらいだったので嬉しい誤算である。感謝🙏 ![[2024-07-15-markdown-toggle.gif|frame]] *Obsidian likeなリストとチェックボックスの切り替え* 設定の詳細は以下を参照。 <div class="link-card"> <div class="link-card-header"> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/> <span class="link-card-site-name">minerva.mamansoft.net</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">ObsidianのCycle bullet checkboxコマンドのようにリストとチェックボックスを切り替える (markdown-toggle.nvim)</p> <p class="link-card-description">`enableboxcycle`オプションを有効にし、`box_table`を`x`だけにすればよい。</p> </div> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/minerva-image.webp" class="link-card-image" /> </div> <a class="internal-link" data-href="Notes/ObsidianのCycle bullet checkboxコマンドのようにリストとチェックボックスを切り替える (markdown-toggle.nvim).md"></a> </div> %%[[ObsidianのCycle bullet checkboxコマンドのようにリストとチェックボックスを切り替える (markdown-toggle.nvim)]]%% ここでは1コマンドのみを紹介したが、[[markdown-toggle.nvim]]は他にも多くの機能を提供している。[[Markdown]]の編集速度を上げたい方は要チェックだ。 # 🚀Releases - [[🦉OwlMixin]] - [OwlMixin v6.2.4リリース](https://github.com/tadashi-aikawa/owlmixin/releases/tag/v6.2.4) - [[🦉Jumeaux]] - [Jumeaux v5.0.4リリース](https://tadashi-aikawa.github.io/jumeaux/ja/releases/v5/#504) # 👀Reading ## Speeding up the JavaScript ecosystem - Isolated Declarations <div class="link-card"> <div class="link-card-header"> <img src="https://marvinh.dev/favicon-32x32.png" class="link-card-site-icon"/> <span class="link-card-site-name">marvinh.dev</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">Speeding up the JavaScript ecosystem - Isolated Declarations</p> <p class="link-card-description">TypeScript's new isolated declaration feature is a game changer for sharing code among developers. It significantly simplifies the ... </p> </div> <img src="https://marvinh.dev/media/me-twitter.jpg" class="link-card-image" /> </div> <a href="https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-10/"></a> </div> ~~~ JSRを履修したくなってきた https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-10/ ~~~ ## Release v0.43.0 · jesseduffield/lazygit <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">Release v0.43.0 · jesseduffield/lazygit</p> <p class="link-card-description">What's ChangedThanks to all contributors who helped make this release happen! There's a lot of first-time contributors on this release as well so kudos to you all.There's ... </p> </div> <img src="https://opengraph.githubassets.com/dcbce3782e2e49df3a7f38afdcb46659bd151a2eb16c0e7092d1180ebad07223/jesseduffield/lazygit/releases/tag/v0.43.0" class="link-card-image" /> </div> <a href="https://github.com/jesseduffield/lazygit/releases/tag/v0.43.0"></a> </div> ~~~ あとでキャッチアップする https://github.com/jesseduffield/lazygit/releases/tag/v0.43.0 ~~~ ## [FR] 'Cycle bullet/checkbox' command · Issue #1 · roodolv/markdown-toggle.nvim <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">[FR] 'Cycle bullet/checkbox' command · Issue #1 · roodolv/markdown-toggle.nvim</p> <p class="link-card-description">Hi :) Thank you for the wonderful plugin. It's very user-friendly, especially since I regu ... </p> </div> <img src="https://opengraph.githubassets.com/19f4028beb3b1b647c6ef985ee2eae4f7c7685e16818e58a3b60750b222233b0/roodolv/markdown-toggle.nvim/issues/1" class="link-card-image" /> </div> <a href="https://github.com/roodolv/markdown-toggle.nvim/issues/1"></a> </div> ~~~ markdown-toggle.nvim使ってみたら感じイイ感じだった😊 ObsidianだとCycle bullet/checkboxコマンドを使っているので、せっかくだからFRを投稿してみた。 https://github.com/roodolv/markdown-toggle.nvim/issues/1 ~~~ # 📚New Notes - [[2キーバインド]] - [[ObsidianのCycle bullet checkboxコマンドのようにリストとチェックボックスを切り替える (markdown-toggle.nvim)]] - [[Prefixキー]] - [[Vimキーバインド]] - [[doggo]] - [[margin]] - [[markdown-toggle.nvim]] - [[text caseの変換 (Neovim)]] - [[text-case.nvim]] - [[インデントの設定 (EditorConfig)]] - [[プラグインのブランチを指定 (lazy.nvim)]] - [[マクロ (Vim)]] - [[📜2024-07-14 Spinal reflex bindings templateの設定リプレイス]] - [[📝AutoHotkeyで日本語の文字列リテラルが文字化けと判断されて起動失敗する]] - [[📝SnipMateのsnippetsファイルで先頭に半角スペースを入れるスニペットが定義できない]] - [[📝mise failed to parse cache fileエラーになる]] - [[📝pathやrulesが一致しているのにMockoonがダミーデータを返却してくれない]] - [[📰2024年27週 Weekly Report]]